|
ubuntu早就有了的东西,arch在2.6.17发布后,也总算有了,虽然实际效果还差得有点远。
要使用bcm43xx原生驱动,除了内核需要2.6.17版本外,还需要一份firmware。我用的是wl_apsta.o,自己google一下就能找到。
还需要安装一个叫bcm43xx-fwcutter的包,直接pacman即可。
pacman -S bcm43xx-fwcutter
bcm43xx-fwcutter wl_apsta.o
mkdir /lib/firmware
mv *.fw /lib/firmware
modprobe bcm43xx之后,iwconfig就能看到新添加的设备了。在modprobe之前,记得先移除ndiswrapper。
如果系统中有多块网卡,可能需要指定一下bcm43xx的设备名。在/etc/udev/rules.d中新建一个文件,如80-network.rules,写入如下内容:
KERNEL=="eth*", SYSFS{address}=="xx:xx:xx:xx:xx:xx", NAME="wlan0"
那一串xx是网卡的mac地址,不知道的可以cat /sys/class/net/ethX/address看一下。我将bcm43xx的设备名指定为wlan0,跟ndiswrapper的风格一样。
如果建立的udev规则,modprobe -r再modprobe一下。因为要使用wpa,我用的是net profiles的方式配置网卡。在/etc/network-profiles中新建一个文件,如bcm,包含如下内容:
DESCRIPTION="bcm43xx"
INTERFACE=wlan0
IFOPTS="dhcp"
ESSID=XXX
USEWPA="yes"
WPAOPTS="-D wext"
在这里我遇到了一个问题,以前使用ndiswrapper时,/etc/wpa_supplicant.conf中必须设置ap_scan=2才能正常进行验证,但bcm43xx必须将其设置为1。arch的netcfg似乎并没有提供设置不同wpa_supplicant.conf的手段,这个以后再想办法吧。
这是我的wpa_supplicant.conf,供参考:
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=wheel
ap_scan=1
network={
scan_ssid=1
ssid="XXX"
psk=XXXXXX
key_mgmt=WPA-PSK
proto=WPA
}
搞定以后,在命令行执行netcfg bcm,没报错就ok了。在/etc/rc.conf中写一句NET_PROFILES=(bcm),还有MODULES=里加入bcm43xx,开机会自动配置bcm43xx。
最后,虽然配置方面没遇到什么问题,可实际效能方面原生驱动还是让人有点失望。随便找了一个大文件copy一下,bcm43xx的速度大概只有550KB/s,而ndiswrapper则有1.2MB/s左右。
想起什么以后再加。 |
|