Ubuntu 15.10下安装broadcom无线网卡驱动

来源:互联网 发布:c语言开发实战宝典pdf 编辑:程序博客网 时间:2024/04/30 09:20

更新:我在这篇文章中加入了离线安装网卡驱动的方法。

众所周知,NOI竞赛使用的是noi linux系统,为了提前适应比赛环境,我选择了安装ubuntu 15.10(安装最新版是为了能在生活学习中更多的使用之,等一段时间后再换回noi linux)。遇到的第一个棘手的问题就是无线网卡驱动问题。希望这篇文章能帮助那些初识ubuntu系统的新手、OIer,能帮助你们,至少少走一些弯路。。。注意,这篇文章要求安装前要有网络连接(还是要先插网线啊),如果没有网络连接请参考我的这篇文章。

更改软件源

作为蒟蒻,我一开始并没有注意软件源带来的问题,光是知道在终端下面有个神奇的apt-get,我用它get到了完美的fpc,没有发现任何问题。直到安装无线网卡驱动时,问题才真正暴露出来。一开始我在附加驱动里找到了无线网卡驱动,可是安装失败了,我以为是附加驱动本身的问题,于是又去装broadcom官网的驱动。我在终端下安装 build-up-essential,下载的时候提示有个别文件访问不到,但最后显示安装成功了,我也就没理会报错。驱动源代码也编译成功了,但是,注意但是。。。编译出来的wl.ko根本就不能用!后来才发现,前面附加驱动不能安装,和获得build-up-essential时出现的问题,其根源就在于软件源不对。Ubuntu默认的服务器是“中国的服务器”,一定要把它改成阿里云或163(我用这两个映像服务器的速度最快)等具体的服务器。可以参考教程更改软件源。

使用已有的附加驱动

如果为实用性考虑的话,最简单的方法是使用附加驱动。在系统设置中打开“软件与更新”面板,进入“附加驱动”选项卡,如果软件源设置正确,则一般能搜到对应的无线网卡驱动,安装之就可以了。

安装使用专有驱动

如果想要练手,或熟悉系统操作,可以通过这个方法。在broadcom官网http://www.broadcom.com/support/802.11下载好官方驱动,下面是我通过http://www.broadcom.com/docs/linux_sta/README_6.30.223.271.txt得到的安装方法。
一、准备安装环境
1、首先,因为下载下来的是源代码,需要编译器来编译。
按Cirl+Alt+T打开终端,输入

sudo apt-get install build-essential linux-headers-genericsudo 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、为了防止以后其中的某个不听话的模块死而复生,我们还需要把它们列入黑名单。
broadcom官网给出的指令是

sudo echo "blacklist ssb" >> /etc/modprobe.d/blacklist.confsudo echo "blacklist bcma" >> /etc/modprobe.d/blacklist.confsudo echo "blacklist b43" >> /etc/modprobe.d/blacklist.confsudo echo "blacklist brcmsmac" >> /etc/modprobe.d/blacklist.conf

但我在实际操作时系统提示没有权限,所以我用一个有sudo权限的gedit(linux下文本编辑器)来进行编辑。
输入

sudo gedit /etc/modprobe.d/blacklist.conf

在打开的文件最后一行加入下面内容,来给它们打上黑名单。

blacklist ssbblacklist bcmablacklist b43blacklist 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保存退出
这样驱动就可以开机自启动了。

下个周就要期末考试了,寒假开始之时就是OI冲刺之时,明天暴风雪,希望我去参加四川绵阳冬令营的同学不要因此耽误了行程,也祝愿山东省的OIer RP++勇夺佳绩!

0 0
原创粉丝点击