GNU小本无线上网-BCM4312驱动安装

来源:Linuxeden 作者:c-aries
  
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 原文链接

好文,顶一下
(15)
93.8%
文章真差,踩一下
(1)
6.2%
------分隔线----------------------------


把开源带在你的身边-精美linux小纪念品
无觅相关文章插件,快速提升流量