GNU/Linuxer使用Google解决软件安装问题是家常便饭,可是这次,我被Google害惨了T-T
我部小本的硬件参数:
$ lspci | grep -i network 08:00.0 Network controller: Broadcom Corporation BCM4312 802.11b/g (rev 01) $ lspci -n | grep -i "^08:00.0" 08:00.0 0280: 14e4:4315 (rev 01) $ |
无线网卡为broadcom公司的BCM4312,设备ID为14e4:4315
Google能搜到大量这样的句子:
"Broadcom有提供Windows版本的网卡驱动安装文件,但是没有提供Linux版本的。
为了能够在Linux下使用该无线网卡,可以通过ndiswrapper工具来安装使用Windows版本
的驱动。"
讲述Broadcom未提供该款无线网卡GNU/Linux版的驱动,然而,我半天后竟然发现Broadcom官网已经提供该款驱动的源代码和安装说明了!
误导我的两篇文章:
1. LINUX下安装无线网卡驱动(以BCM4312为例)
网址: http://www.linuxhobby.com/2007/10/ndiswrapper-wireless-drives/
讲述如何使用ndiswrapper,下载Windows下的驱动,模拟起来,在GNU/Linux下运行。
2. [已解决] 本本内置的 broadcom 4312 b/g 无线网卡,如何驱动?
网址: http://[由于linux_sir关键词被屏蔽,请在这里填入linux_sir的网址]/bbs/lastpostinthread347170.html
讲述重新编译内核,下载旧的驱动源代码,使用b43-fwcutter安装firmware(专有驱动)
总结教训如下:
1. 以后安装软件要先到相关的官网查看软件最新版本,看是否有提供GNU/Linux版的安装包。
2. 建议Google将新的文章和网友认为成功的好的例子提前,这次我Google到的内容,新的文章好的例子严重滞后,走了很多弯路。我们的搜索引擎还有待成长啊:(
BCM4312 Broadcom官网提供的GNU/Linux下最新最好的驱动安装方法如下
参考文章:
1. Broadcom官网驱动下载,含安装方法说明
网址: http://www.broadcom.com/support/802.11/linux_sta.php
2. 安装Broadcom 4312 无线网卡驱动
网址: http://www.linuxhobby.com/2009/07/broadcom-43xx-drivers/
安装步骤:
1. 卸载冲突模块
$ sudo rmmod b43 $ sudo rmmod ssb $ sudo rmmod wl |
2. 屏蔽冲突模块
# echo "blacklist ssb" >> /etc/modprobe.d/blacklist # echo "blacklist b43" >> /etc/modprobe.d/blacklist |
3. 编译安装
$ pwd ~/download/bcm4312 $ ls README.txt hybrid-portsrc-x86_32-v5.10.91.9.3.tar.gz $ mkdir hybrid $ tar xf hybrid-portsrc-x86_32-v5.10.91.9.3.tar.gz -C hybrid $ cd hybrid/ $ ls Makefile lib src $ make KBUILD_NOPEDANTIC=1 make -C /lib/modules/`uname -r`/build M=`pwd` make[1]: Entering directory `/usr/src/linux-headers-2.6.26-2-686' LD /home/c-aries/download/bcm4312/hybrid/built-in.o CC [M] /home/c-aries/download/bcm4312/hybrid/src/wl/sys/wl_linux.o CC [M] /home/c-aries/download/bcm4312/hybrid/src/wl/sys/wl_iw.o CC [M] /home/c-aries/download/bcm4312/hybrid/src/shared/linux_osl.o LD [M] /home/c-aries/download/bcm4312/hybrid/wl.o Building modules, stage 2. MODPOST 1 modules WARNING: modpost: missing MODULE_LICENSE() in /home/c-aries/download/bcm4312/hybrid/wl.o see include/linux/module.h for more information CC /home/c-aries/download/bcm4312/hybrid/wl.mod.o LD [M] /home/c-aries/download/bcm4312/hybrid/wl.ko make[1]: Leaving directory `/usr/src/linux-headers-2.6.26-2-686' $ uname -r 2.6.26-2-686 $ sudo cp -rf wl.ko /lib/modules/2.6.26-2-686/kernel/drivers/net/wireless/ $ sudo depmod $ sudo modprobe wl $ |
4. 检测是否安装成功
$ lsmod | grep wl wl 1269312 0 ieee80211_crypt 5124 2 ieee80211_crypt_tkip,wl // bios设置无线可用,打开无线开关 $ sudo iwconfig lo no wireless extensions. eth0 no wireless extensions. eth1 IEEE 802.11bg ESSID:"" Nickname:"" Mode:Managed Frequency:2.412 GHz Access Point: Not-Associated Bit Rate:54 Mb/s Tx-Power:32 dBm Retry min limit:7 RTS thr:off Fragment thr:off Power Managementmode:All packets received Link Quality=5/5 Signal level=0 dBm Noise level=0 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0 ppp0 no wireless extensions. $ // 行了,已经可以看到无线网卡的eth1 :) |
* 一些无线上网的命令
参考文章: http://www.linux-wiki.cn/index.php/%E6%97%A0%E7%BA%BF%E7%BD%91%E5%8D%A1%E9%85%8D%E7%BD%AE
1. 列出周围环境中的无线网络
$ sudo iwlist scan |
2. 假设要连接到网络"test",假设使用eth1
$ sudo iwconfig eth1 essid "test" // 如网络已加密,则用 $ sudo iwconfig eth1 essid "test" key "你的密码" |
3. 启动无线网卡
$ sudo ifconfig eth1 up |
4. 使用dhclient获得IP地址
$ sudo dhclient eth1 |
这样,就能带着GNU小本,到图书馆,麦当劳wifi上网了:)
时间:2009-12-06 17:43
来源:Linuxeden
作者:c-aries
原文链接