bcm43xx驱动指南

一直听说b43的驱动已经很好了,以前自己试过许多次,但是没有成功,过了快一年了,总算有心情重新折腾一下了,发现真的和某个人说的一样,linux对驱动的支持已经相当不错了!

把自己的经验和网上看到的东西好好总结了一下,和大家分享!希望能让这折腾这方面的朋友少走一些弯路!

linuxboy_007原创,作者保留所有权利,转载请注明出处!

本文是一篇关于使用真正的linux方式驱动nx6325上的 bcm4311(具体型号: pci.product_id = 17170 (0x4312) pci.subsys_product_id = 4961 (0x1361)
pci.subsys_vendor_id = 4156 (0x103c) 如果你的bcm4311也符合一下参数,那么本文也适合你 )的简要的说明。本文的中的内核版本是2.6.25如果你的内核版本低于它,请先升级内核!

如果你希望使用NDISWRAPPER驱动你的网卡,那么请参阅其官方网站上的说明!

如果你的英文很好,那么作者建议你直接参考官网上的说明:
http://linuxwireless.org/en/users/Drivers/b43

首先,需要对新手说明几件事:
1)linux在内核版本2.6.17-rc2起就已经加入了对bcm43xx网卡自己的无线网络驱动模块,直到我写本文的时候,内核已经升级到了2.6.26这意味着非常多的bcm43xx芯片组已经得到了支持。

2)linux内核中已经有了相应驱动并不意味着你装一个包含有驱动新内核就可以立刻使用你的无线网卡!要驱动网卡,你需要把合适的固件放到/lib/firmware下。

3)不要以为iwlist scan没有执行扫描就认为你的网卡无法驱动!linux方式的驱动和ndiswrapper驱动是不同的!如果使用linux方式的驱动需要保证/lib/firmware中有合适固件的情况下,开启NetworkManager服务,由该服务驱动无线网卡。

好了,我们开工!

先到http://linuxwireless.org/en/users/Drivers/b43/devices 看看有那些确定能驱动的网卡。重要的是后三列:PCI Product、PCI Subvendor 、PCI Subsystem;它们分别代表了产品ID、生产商ID、子系统ID

现在,看看自己的无线网卡是不是在此列:
# lshal
找到 pci.product=“你的网卡品牌”的一段,我的是:
udi = '/org/freedesktop/Hal/devices/pci_14e4_4312'
info.linux.driver = 'b43-pci-bridge' (string)
info.parent = '/org/freedesktop/Hal/devices/pci_1002_5a38' (string)
info.product = 'BCM4312 802.11a/b/g' (string)
info.subsystem = 'pci' (string)
info.udi = '/org/freedesktop/Hal/devices/pci_14e4_4312' (string)
info.vendor = 'Broadcom Corporation' (string)
linux.hotplug_type = 2 (0x2) (int)
linux.subsystem = 'pci' (string)
linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:06.0/0000:30:00.0' (string)
pci.device_class = 2 (0x2) (int)
pci.device_protocol = 0 (0x0) (int)
pci.device_subclass = 128 (0x80) (int)
pci.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:06.0/0000:30:00.0' (string)
pci.product = 'BCM4312 802.11a/b/g' (string)
pci.product_id = 17170 (0x4312) (int)
pci.subsys_product_id = 4961 (0x1361) (int)
pci.subsys_vendor = 'Hewlett-Packard Company' (string)
pci.subsys_vendor_id = 4156 (0x103c) (int)
pci.vendor = 'Broadcom Corporation' (string)
pci.vendor_id = 5348 (0x14e4) (int)


刚才所说的:
PCI Product对应pci.product_id
PCI Subvendor对应 pci.subsys_vendor_id
PCI Subsystem对应pci.subsys_product_id

按照以上关系回到刚才的列表中去寻找你的无线网卡。如果没有你的网卡,那么很遗憾,你的网卡很可能无法被正确驱动。但是你仍然可以试一试,有一定可能会成功!

现在你需要找到你的网卡在windows下的驱动程序(一般笔记本的官网上都有)。我的是:bcmwl564.sys(我的系统是64位的,32位的应该是:bcmwl5.sys)
执行下列命令:
# bcm43xx-fwcutter -i bcmwl564.sys
看看你的无线网卡驱动版本,我的是:
version : 4.100.15.5
如果你的驱动版本比这个低,但是主版本号仍然为4,或者你的驱动版本高于此版本但是低于或者等于4.150.10.5,那么恭喜你,你有极大可能完美的驱动你的网卡!
=================
备注:
这里说明一下bcm43xx-fwcutter这个工具:
它是一个用于主版本号为3的驱动的固件提取器(b43-fwcutter用于版本4),这里之所以用它是因为它能够分析出许多驱动的版本号,如果你的系统里没有它,那么请使用如下命令自己构建:
wget http://bu3sch.de/b43/fwcutter/bcm43xx-fwcutter-006.tar.bz2
tar xjf bcm43xx-fwcutter-006.tar.bz2
cd bcm43xx-fwcutter-006
make
cd ..
=================

现在下载并构建最新的b43-fwcutter:
wget http://bu3sch.de/b43/fwcutter/b43-fwcutter-011.tar.bz2
tar xjf b43-fwcutter-011.tar.bz2
cd b43-fwcutter-011
make
cd ..

然后下载最新的linux驱动:
wget http://mirror2.openwrt.org/sources/broadcom-wl-4.150.10.5.tar.bz2
这个包的driver目录里包含很多驱动,本文中提到并且成功使用的只有一个,如果你的网卡不能驱动,你可以自己多尝试几个。

现在把驱动的固件摘取出来,并且放入 /lib/firmware(一般系统都应该在这个目录,要是你的系统比较特别,请参阅系统文档)
执行以下命令:
export FIRMWARE_INSTALL_DIR="/lib/firmware"
tar xjf broadcom-wl-4.150.10.5.tar.bz2
cd broadcom-wl-4.150.10.5/driver
sudo ../../b43-fwcutter-011/b43-fwcutter -w "$FIRMWARE_INSTALL_DIR" wl_apsta_mimo.o
====================
备注:
wl_apsta_mimo.o 就是驱动程序本身(版本为4.150.10.5)
====================

好了,现在开启NetworkManager服务!
# service NetworkManager start
不同的系统有不同的方法,请自行开启。
如果你的gnome桌面的右上角没有出现两个小圆点的图标,请键入:
nm-applet&

没有错的话,无线网络已经开始工作了,可以看到面板上的无线指示灯亮起。

到此,任务完成!

顺便说一句:
我本来使用ndiswrapper驱动网卡,而现在可以看到感知道的信号强度比原来多了20%,呵呵!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值