恰逢周末得空,看着角落的笔记本(2个月前给它重装成CentOS6.5后,由于没有网络连接,一直失宠到现在), 决定完成之前剩下的工作,给它尝尝鲜,用个Wi-Fi。
我们都知道,Wi-Fi = 无线网卡+无线网卡驱动,作为笔记本,无线网卡是必须的,所以接下来重点就是无线网卡驱动的安装。所以你认为,接下来,我会讲怎么安装无线网卡驱动是么?哈哈哈,怎么可能这么没难度~~~~~~好吧,没错,我就是要讲怎么给没网的笔记本装驱动~~~~(>_<)~~~~。等一等,大家不要走,其实重点是要给大家推荐一个无网络情况下安装软件的好方法—使用iso镜像作为yum源进行安装。且听我细细说来~
可用资源
这里说一下,我开始这项工作前所有的可用资源:
- CentOS6.5 desktop笔记本一台(Broadcom无线网卡)
- 可上网台式机一枚(无线)
- U盘一枚
- CentOS6.5镜像文件一份
- 家用路由器一只(连着入户网线)
基于以上,确定我的整个安装流程应该是这个样子的:
台式机上下载无线网卡驱动->通过U盘拷贝至笔记本上->解压驱动文件并编译->加载驱动,连接无线->完成。
确定方案后,我就动手开始花了整整一下午且内心小崩溃x次、大崩溃x次的无线网卡驱动安装之旅~
PS:只对前言说的使用iso镜像作为yum源安装软件的方法感兴趣的可直奔【喜大普奔:使用iso镜像作为yum源安装内核开发包及gcc】章节。
小崩溃: Linux下U盘挂载不上
首先,确定下载什么型号的无线网卡驱动,笔记本上查看以下信息:
可以看到,我的无线网卡型号是BCM4312,所以接下来就是在台式机上下载这个型号的无线网卡驱动并拷入U盘。
PS:Broadcom 官网下载无线网卡下载地址http://www.broadcom.com/support/802.11,根据自己网卡的型号下载合适的驱动包。
然后将U盘插入笔记本,fdisk -l查看笔记本已识别到,但是df -h查看并未自动挂载;所以这里需要我自己手动挂载一下。
mount /dev/sdc4 /mnt/usb #挂载U盘
但是没挂载成功,报错了:mount:you must specify the filesystem type
网上查了一下原因,是由于我的U盘是NTFS系统,但是Linux系统不认识。所以问题来了,我需要把U盘格式化成linux系统认识并且windows也能认识的系统(不然怎么从windows上拷贝文件呢),最终确认是fat32文件系统。由于我的windows系统只能将U盘格式为NTFS及exFat,所以这里直接在linux系统上格式化。
#sudo mkfs -V -t vfat /dev/sdc4 #格式化U盘为vfat格式
格式化完成后,再重复前面的动作,从windows中拷贝驱动至U盘。这次将U盘插入linux系统后,系统识别后自动挂载了U盘,桌面弹出U盘文件夹。
小崩溃:无线网卡驱动解压出错
U盘挂载成功后,进入U盘挂载目录下,解压无线网卡驱动,可素又出错了~
tar xvfz hybrid-portsrc-x86_64-v5.10.91.9.3.tar.gz
提示如下错误:cannot change ownership to uid 1000.gid 1000;operation not permitted…
大概原因是由于在该目录下没有权限,所以将驱动文件拷贝至/home/download目录下,并解压至/usr/local/src/hybrid-wl目录下。
大崩溃:缺编译环境,没内核开发包及gcc
解压驱动文件后,接着就是使用make命令编译驱动文件,可素这里出现了问题:
切换到出错目录下查看是由于链接出问题了,手动做了链接但是失败了。查看对应内核目录下为空导致手动创建链接失败。(不要说在这个目录下手动创建一个对应文件夹,这是不可行的,为什么?因为编译的时候会用到这个目录下对应的东西,可是手动创建的下面什么都没有;还有一点,我试过,失败了╮(╯▽╰)╭)
这个问题是由于系统没有安装内核开发包,同时我也怀疑编译工具gcc应该也没有,试了一下,果不其然。然后问题来了,我需要自己离线安装内核开发包kernel-devel及编译工具gcc,这真是一个极不聪明的做法,因为这两个工具安装肯定有超级多的依赖,然后我的一个一个的去下下来进行安装,想想都醉了~
大崩溃:缺少拨号上网rp-pppoe软件
没有编译环境,简直是晴天霹雳。然后,我开始想要另辟蹊径,通过有线连接网络然后下载安装编译环境。想来想去,又没多的网线,只好把路由器上的入户网线拔来插笔记本上,可素连接网络失败~缺少拨号上网软件。
使用yum -y install rp-pppoe 命令就可以安装成功,可是问题是,笔记本没网络啊~又回到当初的问题上了。
喜大普奔:使用iso镜像作为yum源安装内核开发包及gcc
由于前面一系列离线安装失败,让我对再次通过下载rp-pppoe离线安装包产生了抵触情绪,我开始思考,当初安装linux系统时,为了节约时间,直接选择安装minimal desktop,其实还有很多其他版本,会不会像安装一些软件时,简单版不会安装内核开发包但是完整版就会有呢?所以我是不是需要升级一下我的linux系统呢?带着这个疑问,又开始找度娘,朝着这个方向找啊找,竟然真让我找着一个好方法-使用iso镜像作为yum源安装软件。
由于安装CentOS6.5的iso镜像文件中有内置一些安装包,利用这些内置安装包来装内核开发包及gcc(目测有它们的安装包),应该可以自动解决依赖问题(不然镜像文件装出来的完整版系统功能就不能用啦)。
step1:挂载iso镜像文件
迅速将iso拷入优盘,并自动挂载到Linux系统上。
由于之前想着要升级linux系统,所以用UtraISO将镜像文件写入U盘里。也可以直接拷贝镜像文件,只是还需要挂载一下ISO文件,因为使用yum安装时,linux不会自动解压iso文件导致找不到安装包。
mount -o loop / CentOS-xxx-bin-DVD.iso /media/xxx #手动挂载镜像文件
PS:如果你是通过光盘安装的系统,也可以通过该光盘来安装。方法与下面步骤类似。
step2:修改yum源
提前查看了一下镜像文件下有kernel-devel及gcc的rpm安装包,心里有底了。
接下来就是将yum源指向镜像文件。
vi修改 /etc/yum.repos.d/Centos-Media.repo 文件的内容。修改文件前最好备个份,毕竟安装之后我们需要改回原来的配置。
step3: 使CentOS-Media.repo文件生效
yum的配置文件系统默认使用的是CentOS-Base.repo文件,通过修改CentOS-Base.repo文件名为CentOS-Base.repo.bak使其失效,从而使系统使用CentOS-Media.repo文件.
然后,就是见证奇迹的时刻。
Happy Ending
编译环境安装成功了,接下来就回到流程的第三步,编译文件。接下来没出现什么错误,直接上图,不说话。(废话说了太多啦~)
目录下成功生成wl.ko文件。这里编译的时候可能有的童鞋使用make还是会报错,可以通过以下命令来解决:
# make clean #清空之前编译的残留文件 # make API=CFG80211或者 make API=WEXT #驱动会用到的cfg80211 API或Wext API
然后拷贝wl.ko至无线网卡驱动文件夹下:
卸载系统默认的无线驱动(不然会与新驱动冲突),并将它们加入黑名单:
使用iwlist eth1 scanning 搜索周围的无线网络。如果能搜到,就表示网卡工作正常。此时界面上已经可以看到无线连接,直接通过界面即可连接无线;
成功了,太开森了~(在安装过程中拍照留念的照片,看过来)
到这里,你认为结束了吗。错,还需要设置开机自动加载无线网卡驱动模块,不然每次开机后需要自己手动加载无线驱动。
# cp wl.ko /lib/modules/`uname -r`/kernel/drivers/net/wireless # depmod -a # echo modeprobe wl >> /etc/rc.local
然后reboot系统,验证一下,无线网卡驱动可以自动加载,直接连接无线网络成功。至此,终于让linux用上了wifi,然后可以随心所欲的使用yum下载软件啦~(记得把之前yum源配置文件改回来哟)
写在最后
虽然以上文档内容讲述的是CentOS6.5下安装broadcom4312无线网卡驱动,但是其他版本系统或无线网卡型号的安装过程也是类似的;俗话说,世界上没有完全相同的两片叶子,当然也不会有完全适合你的一篇解决文章,所以安装过程中遇到各种不同的问题,还需要我们自己多动手找找解决方法。自己动手,丰衣足食~
如果您需要了解更多内容,可以
加入QQ群:570982169、486207500
直接询问:010-68438880-8669