一 目的
安装无线网卡驱动。安装完ubuntu14.04,发现无线不能使用。
ifconfig -a查看所以网卡信息,发现并未发现无线网卡,那就手动安装吧。
二 下载网卡驱动
首先,需要知道需要什么网卡驱动。通过lspci可以查看网卡的型号。我的笔记本使用的是BCM4312,去官网下载:http://www.broadcom.com/support/802.11
下载得到hybrid-v35-nodebug-pcoem-6_30_223_271.tar.gz
三 编译/安装
解压得到hybrid-v35-nodebug-pcoem-6_30_223_271
进入该目录:
make
得到wl.ko
sudo make install
该命令的作用是把wl.ko拷贝到/lib/modules/`uname-r`/kernel/drivers/net/wireless/目录下。
四 安装模块
安装之前必须卸载一些冲突的模块。
sudo rmmod b43
sudo rmmod ssb
sudo rmmod wl
屏蔽冲突模块,阻止其在启动时被加载
sudo su
echo "blacklist b43" >> /etc/modprobe.d/blacklist.conf
echo "blacklist bssb" >> /etc/modprobe.d/blacklist.conf
安装wl.ko
sudo insmod wl.ko
查看效果
ifconfig -a
出现了无线网卡。
五 开机启动
重启,无线网卡没有被安装。
经过反复试验,发现每次开机后ssb模块都会被自动加载,虽然写入了黑名单,但是不起作用。虽然wl也被加载了,但是有了ssb,网卡不能被安装。
自己写个脚本,开机启动该脚本。内容就是开机后先卸载ssb和wl,然后再安装wl。
脚本内容如下:
#! /bin/sh
sudo rmmod ssb
sudo rmmod wl
sudo insmod /lib/modules/`uname -r`/kernel/drivers/net/wireless/wl.ko
将该脚本加上可执行权限:
chmod +x start_wl.sh
拷贝到/usr/bin目录下,在/etc/rc.local文件内加入/usr/bin/start_wl.sh。
重启,无线网卡成功启动!
六 问题
系统升级后,无线网卡再次不管用了。重新编译/安装到升级后的内核目录下。
sudo insmod wl.ko报错:
insmod: ERROR: could not insert module wl.ko: Unknown symbol in module
dmesg查看报错情况
wl: Unknown symbol cfg80211_scan_done (err 0)
。。。 。。。
显然是没有找到该函数,应该是依赖cfg80211模块。
sudo modprobe cfg80211
再次:sudo insmod wl.ko
没有出现之前的错误,成功!
参考文章:
http://blog.163.com/njut_wangjian/blog/static/165796425201211523617781/
http://stackoverflow.com/questions/26995715/insmod-error-could-not-insert-module-rtl8723be-ko-unknown-symbol-in-module