在Ubuntu 10.04,如果是Ralink的无线网卡,可能会发生可以连接上不加密或者TKIP的无线网络,却不能连接上CCMP的无线网。这由于系统自带的RT2870sta的驱动存在Bug。系统自带了2870sta和3070sta驱动,所以在加载的时候很容冲突,因此要把其他不用的加入blacklist或干脆直接删除,但我的系统原先的3070sta工作不太正常,被我一怒之下删掉了,那就只能自己动手编一个了。9.10的时候就折腾过,许久了记不清了,这回又折腾一会,以免下次再麻烦,谨以短文记之。
1. 将rt2870sta放入黑名单,即 blacklist rt2870sta
gedit /etc/modprobe.d/blacklist.conf
在文件末尾添加如下几行
blacklist rt2800usb
blacklist rt2x00lib
blacklist rt2x00usb
blacklist rt2870sta
2. 下载Ralink为2.6内核chipset 3070准备驱动http://www.ralinktech.com/support.php?s=2
(我所用的是RT3070_LinuxSTA_V2.3.0.1_20100208.tar.gz2)
解压。编译。
手动加载内核,发现失败,错误提示:
insmod: error inserting './rt3070sta.ko': -1 Unknown symbol in module
[ 721.216901] rt3070sta: module license 'unspecified' taints kernel.
[ 721.217589] rt3070sta: Unknown symbol usb_alloc_urb
[ 721.218137] rt3070sta: Unknown symbol usb_free_urb
[ 721.219813] rt3070sta: Unknown symbol usb_register_driver
[ 721.221132] rt3070sta: Unknown symbol usb_put_dev
[ 721.221601] rt3070sta: Unknown symbol usb_get_dev
[ 721.222507] rt3070sta: Unknown symbol usb_submit_urb
[ 721.224638] rt3070sta: Unknown symbol usb_control_msg
[ 721.226185] rt3070sta: Unknown symbol usb_deregister
[ 721.228401] rt3070sta: Unknown symbol usb_kill_urb
[ 721.228849] rt3070sta: Unknown symbol usb_buffer_free
[ 721.230824] rt3070sta: Unknown symbol usb_buffer_alloc
3. 在sudo make install的时候有一个小问题,提示错误
cp: cannot stat `~/ralink/RT3070_LinuxSTA_V2.3.0.1_20100208/RT3070STA.dat': No such file or directory
解决办法很直接:cp RT2879STA.dat RT3070STA.dat,然后sudo make install