在openwrt brcm63xx优雅地安装broadcom wl无线驱动

原生的openwrt在63xx设备上自带的是b43驱动,而(据说)博通官方的wl驱动要比社区的b43要稳定一些。

我个人的使用感受是b43好像是不能中继的(至少我当年在DB120、10.03.1系统上测试不成功),以及流量大时cfg80211会占用很大的cpu,挂下载的时候延迟会飙到2000ms,有时还会断线,总之是各种不爽,后来不得不插一个tplink的usb供电小ap才稳定下来。

最近终于折腾好了wl驱动,发现如果是挂迅雷、连接数多的情况下延迟同样会飙高,但总算没掉线,迅雷限制连接数的话就没有任何问题。个人感受比以前好一些。

下面说优雅地安装方法。官方wiki有提到wl驱动,但说的不仔细,如果按照wiki上说的只是安装一个kmod-brcm-wl的话,恭喜上当。

经过很多次失败的配置,最后对imagebuider中profile的阅读,笔者发现wl驱动至少需要安装3个包:
kmod-brcm-wl:内核驱动
wlc:wl的uci客户端,安装后才能在/etc/config/wireless中设置参数
nas:用于无线加密,如果不安装,会出现无线信号,但是连不上

如果有洁癖,想删掉原来的b43,可以移除以下所有包(测试发现opkg不会优雅地autoremove没有被依赖的包),注意顺序为反依赖顺序,不可随意改变:
kmod-b43
kmod-bcma
kmod-mac80211
kmod-crypto-arc4
kmod-crypto-aes
kmod-crypto-core
kmod-cfg80211
iw
wpad-mini

最后重启系统。重启系统的目的是运行wlunbind脚本,取消b43与pci什么的绑定,否则wl驱动将无法启动。如果dmesg中有这个原因启动失败的消息,可以尝试/etc/init.d/wlunbind boot。

如果/etc/config/wireless中没有出现wl设备,可尝试wifi detect写入配置。

至此,wl无线应当可以正常工作。

20150703 Edit: BB固件将wireless放到了netifd中,造成启动路由器以及重启network服务不会自动执行wifi up。建议装AA固件。

Leave a Reply

Your email address will not be published. Required fields are marked *