相信很多朋友都使用ubuntu系统,多数时候,我们都不会使用有线连接来上网,而且不是每台计算机安装好ubuntu后都可以使用wifi的,因此有很多人因为在ubuntu下不能使用wifi而放弃来使用ubuntu系统。本文就介绍一下如何在ubuntu 13.10系统(我的机器为几年前买的学生本lenovo g450,受性能和配置限制,因此我装的32位ubuntu 13.10系统)上安装broadcom无线网卡驱动,供希望学习linux系统都朋友参考。
下载
首先,要安装无线网卡驱动,得先知道机器的无线网卡型号,这个型号可以通过硬件检测工具检测出来,也可以通过linux命令检测出来,下面是检测命令:
<a href="http://my.oschina.net/itblog/blog/221818#">?</a>
1
<code>lspci -vv | </code><code>grep</code> <code>network</code>
打开终端,将下载好的无线网卡驱动程序(我下载都版本为:hybrid-portsrc_x86_32-v5_100_82_112.tar.gz)解压到指定都文件夹,这里我放在用户目录下:
2
3
4
<code>cd</code> <code>~</code>
<code>mkdir</code> <code>hybrid_wl_driver </code>
<code>cd</code> <code>hybrid_wl_driver</code>
<code>tar</code> <code>xzf hybrid-portsrc_x86_32-v5_100_82_112.</code><code>tar</code><code>.gz</code>
编译
和其他网络上都过程一样,接下来是make
<code>make</code> <code>clean (optional)</code>
<code>make</code>
这个过程中,会出现以下问题:
错误一:
错误原因:没有指定的头文件
解决办法:到指定的文件中,注释掉这一行(从上图看是src/wl/sys/wl_linux.c文件第43行,可以用vi编辑,也可以用gedit编辑)。
<code>vi</code> <code>+43 src</code><code>/wl/sys/wl_linux</code><code>.c</code>
按下i进入vi的插入模式后,将第43行注释掉,如图:
按下esc进入vi的命令模式,按下:wq保存退出。再次使用make命令,此时会出现第二个问题:
错误二:
错误原因:错误都引用ndo_set_multicast_list,这个变量未定义
解决办法:到指定的文件中(从上图看是src/wl/sys/wl_linux.c文件第388行),将ndo_set_multicast_list替换成ndo_set_rx_mode即可。保存后,继续使用make命令,此时会出现第三个问题:
错误三:
解决办法:到指定文件中(从上图看是src/wl/sys/wl_linux.c文件)注释掉第3181~3188行即可。如下图:
修改前
修改后
之后再使用make命令,此时会成功。
配置
将生成的wl.ko文件拷贝到内核中指定的驱动文件夹中:
<code>sudo</code> <code>cp</code> <code>wl.ko </code><code>/lib/modules/</code><code>`</code><code>uname</code> <code>-r`</code><code>/kernel/net/wireless/</code>
载入这个模块:
<code>sudo</code> <code>depmod</code>
<code>sudo</code> <code>modprobe wl</code>
将跟本驱动有冲突的模块删除并加入黑名单。如果存在下面的驱动,必须手动删除他们,否则就不用执行下面的命令:
5
6
7
8
<code>lsmod | </code><code>grep</code> <code>"b43\|ssb\|bcma\|wl"</code>
<code>rmmod b43</code>
<code>rmmod ssb</code>
<code>rmmod bcma</code>
<code>rmmod wl</code>
<code>sudo</code> <code>echo</code> <code>"blacklist ssb"</code> <code>>> </code><code>/etc/modprobe</code><code>.d</code><code>/blacklist</code><code>.conf</code>
<code>sudo</code> <code>echo</code> <code>"blacklist bcma"</code> <code>>> </code><code>/etc/modprobe</code><code>.d</code><code>/blacklist</code><code>.conf</code>
<code>sudo</code> <code>echo</code> <code>"blacklist b43"</code> <code>>> </code><code>/etc/modprobe</code><code>.d</code><code>/blacklist</code><code>.conf</code>
如果出现以下错误:
bash: /etc/modprobe.d/blacklist.conf: 权限不够
解决办法:手动打开
<code>sudo</code> <code>gedit </code><code>/etc/modprobe</code><code>.d</code><code>/blacklist</code><code>.conf</code>
添加以下内容到文件:
<code>blacklist ssb</code>
<code>blacklist bcma</code>
<code>blacklist b43</code>
安装
<code>sudo</code> <code>modprobe lib80211 </code>
<code>sudo</code> <code>insmod wl.ko</code>
此时,无线网卡的指示灯应该开始闪烁,系统也开始搜索附近存在的wifi了。
为了下次开机可以自动打开无线网卡驱动,可以将这个模块设为开机自启动:
<code>sudo</code> <code>echo</code> <code>modeprobe wl >> </code><code>/etc/rc</code><code>.</code><code>local</code>
如果下次开机没有自动打开无线网卡驱动,再把配置和安装部分重新做一遍即可(注意在安装的时候切换到驱动程序所在文件夹下)。
好了,驱动安装完成,最后来比较一下安装前后无线网卡的情况:
安装前
安装后