·· / ·– ·· ·-·· ·-·· / ·–· · ·-· ··· ·· ··· - / ··- -· - ·· ·-·· / ·· / ·– ·· -·
相信安装无线网卡驱动是许多linux初学者遇到的一个棘手的问题。Ubuntu默认使用开源网卡驱动,比如针对broadcom网卡,有b43、brcm80211等开源驱动,如果显卡型号适配,那么恭喜你,在安装时你就可以连接至无线网络,但如果不适配,就要手动安装无线网卡驱动。尤其是现在的许多超薄本、变形本和PC平板二合一没有传统网线插口(RJ45接口),安装无线网卡驱动就会变得更加棘手。
使用软件源的驱动
如果你在安装后无法连接无线网但能连上有线网,那么恭喜你,使你的电脑连上无线网络只需要简单的两步:
一、更改软件源
打开“设置”,选择“软件和更新”,然后更改“下载至”的站点为合适的站点(图中以中科大的源为例)。选择合适的服务器后,系统会提示更新索引,确定即可。
二、使用已有的附加驱动
在系统设置中打开“软件与更新”面板,进入“附加驱动”选项卡,如果软件源设置正确,则一般能搜到对应的无线网卡驱动,安装之就可以了。
如果电脑连不上有线网
但如果你的电脑不幸的没有RJ45接口,一种解决方案是购买USB转RJ45外置网卡,然后按照上一种方法安装附加驱动。但仔细一想,如果是在windows下遇到这种问题,我们一般会到无线网卡的官网下载对应的驱动,然后用U盘拷贝到系统上安装,ubuntu下能不能也这样做呢?答案是肯定的。这里以安装broadcom 802.11无线网卡驱动为例,介绍这种解决方案。
这种方案也可以针对完全没有有线网的情况。
一、配置本地软件源
相比于windows下驱动的“一键安装”,ubuntu安装驱动的一个主要挑战就是处理好编译驱动时所需的依赖包。如果电脑连不上有线网,连接不上在线的软件源,就要去手动安装这些依赖,而依赖包往往又会有它自己的依赖,所以这会是一项相当麻烦的工作。好在ubuntu考虑到了这种情况。还保留有安装ubuntu的iso文件吗?它们不止可以用来安装系统,还可以像winpe那样用来维护系统或充当本地软件源!我们可以用这个iso文件来安装依赖。
首先我们要挂载这个iso文件,按Cirl+Alt+T打开终端,输入
sudo mount -o loop -t iso9660 /…/ubuntu_trusty.iso /media/cdrom/
其中的/…/ubuntu_trusty.iso是iso文件所在的路径,要根据自己的实际情况来修改。
然后用apt-cdrom命令来添加这个源:
sudo apt-cdrom -m -d /media/cdrom add
接着输入
sudo gedit /etc/apt/sources.list
在打开的文本编辑器中删除除了包含deb cdrom以外的所有行,保存(一定要注意备份)。
最后更新源的索引。
sudo apt-get update
二、安装依赖
安装dkms。
sudo apt-get install dkms
三、安装无线网卡驱动
首先,要先下载对应无线网卡驱动的deb安装包(可以通过电脑上的windows系统,也可以通过手机)。这里给出broadcom闭源无线网卡驱动wl的下载地址:http://mirrors.kernel.org/ubuntu/pool/restricted/b/bcmwl/bcmwl-kernel-source_6.30.223.248%2bbdcom-0ubuntu8_amd64.deb ,也可以使用ubuntu中文论坛上的下载地址:http://forum.ubuntu.org.cn/download/file.php?id=183385 。
下载好文件后,把文件拷贝到~(你的用户目录)目录下。然后输入
cd
sudo dpkg -i bcmwl*
进行完这一步以后,应该就可以看见有可用的无线网络的提示了。
进阶:手动编译并使用专有驱动(需有线网)
如果想要练手,或熟悉系统操作,可以通过这个方法。首先要在broadcom官网http://www.broadcom.com/support/802.11下载好官方驱动。
一、准备安装环境
1、首先,因为下载下来的是源代码,需要编译器来编译。
按Cirl+Alt+T打开终端,输入
sudo apt-get install build-essential linux-headers-generic
sudo apt-get build-dep linux
安装好所需编译器。
2、因为Broadcom Linux hybrid wireless driver会和一部分已有的驱动(b43, brcmsmac, bcma, ssb)冲突,当它们存在时将不能正常运行,所以要禁用它们。
在终端输入
lsmod | grep “brcmsmac|b43|ssb|bcma|wl”
如果在返回信息中有显示其中的任何一个,就要删除之。
在终端输入
sudo rmmod b43sudo rmmod brcmsmacsudo rmmod ssbsudo rmmod bcmasudo rmmod wl
这样来删除这些模块。
3、为了防止以后其中的某个不听话的模块死而复生,我们还需要把它们列入黑名单。
输入
sudo gedit /etc/modprobe.d/blacklist.conf
在打开的文件最后一行加入下面内容,来给它们打上黑名单。
blacklist ssb
blacklist bcma
blacklist b43
blacklist brcmsmac
4、下面是关键,我之前装显卡驱动时就是在这一步上卡了好久。
光是在文件中加入黑名单列表还不够,必须更新当前的ramfs(内存文件系统?这个我真的没有什么研究)。linux系统下的好多操作之后都要执行下面的一步。
输入
sudo cp /boot/initrd.img-`uname -r\` /home/initrd.img-\`uname -r\`
来备份initrd.img
输入
sudo update-initramfs -u
来更新initrd.img
接着重启电脑,使刚才的操作生效。
二、解压并编译安装文件
1、打开终端,cd到/home (如果说刚打开终端就不用进行这一步了,终端打开后默认就定位在这个文件夹)
输入
mkdir hybrid_wl
cd hybrid_wl
把你下载的.gz格式的驱动程序放到/home/hybrid_wl下,把它重命名成hybrid.tar.gz (重命名是为了下面输入方便)
2、在终端输入 tar xzf hybrid.tar.gz 以解压gz文件
继续输入
make clean
make
是的,这两个指令没有参数。。。等操作完成后,在hybrid_wl文件夹下应该已经生成了一个wl.ko文件,它就是无线网卡的驱动模块了!
3、这个驱动使用的是cfg80211 API ,所以还要在终端继续输入
make API=CFG80211
至此,无线网卡驱动的编译就结束了。
三、激活驱动模块
1、在激活无线网卡驱动模块之前,还需要激活一个安全模块,ubuntu系统使用的是lib80211
在终端中输入
sudo modprobe lib80211
2、在终端中输入
sudo insmod wl.ko
激动人心的时刻到来了!输完这项指令后无线网卡驱动模块被激活,看看你的右上角,是不是已经能够搜到附近的热点了? ;)
四、设置无线网卡驱动开机自启动
经过上面的操作之后,我们已经成功的激活了驱动,但是,注意但是,还有最后一步要走。那就是设置驱动模块开机自启动。
输入
sudo cp wl.ko /lib/modules/
uname -r
/kernel/drivers/net/wireless //把wl.ko拷到加载模块的文件夹
sudo depmod -a //分析模块的相依性,供modprobe在安装模块时使用
输入
sudo gedit /etc/rc.local
在打开的文件exit 0上面一行加入
modeprobe wl保存退出
这样驱动就可以开机自启动了。
总结
包括无线网卡驱动的安装在内,与windows相比,linux下的许多看似本应简单的操作会变得不简单,也许是安装的困难,也许是安装后的枯燥配置,这就需要我们耐住性子,一步一步寻找解决方案。渐渐地,我们会在这个过程体会到linux的自由之美。