本文转载自 http://feifie.blog.51cto.com/6678694/1318691
操作系统:ubuntu 12.04
网卡: fast 迅捷150m无线usb网卡驱动安装 ar9271的芯片组
首先:lsusb 查看自己插上的无线网卡是什么芯片组的,我的就是ar9271的。
下面介绍下具体的安装流程:
需要固件,htc_9271.fw(以前的是ar9271.fw,现在的新版本是htc_9271.fx)
1.下载最新的compat-wireless:
http://linuxwireless.org/en/users/Download/stable/
2.下载htc.9271.fw
http://wireless.kernel.org/download/htc_fw/
3.将htc_9271.fw文件复制到/lib/firmware/目录下面,如果有,就可以直接跳过。
4.tar fxvj compat-wireless-3.6
5.进入解压得到的文件夹,
#./scripts/driver-select ath9k_htc
6.编译驱动
#make
7.安装驱动
#make install
8.挂载模块
modeprobe -l ath9k_htc
9.reboot
10.iwconfig 回车后如果出现wlan0,那么恭喜你基本上是能用了。
iwconfig wlan0 power on 打开无线网卡电源
iwconfig wlan0 up 启动无线网卡
如果一切顺利的话,到第九步就可以了,如果不顺利的话,各种问题。下面说说我遇到的问题
第六步 #make的时候直接报错
/lib/firmware/compat-drivers-3.8-1/include/linux/compat-3.4.h:43:21: error: redefinition of ‘kmalloc_array’
/usr/src/linux-headers-3.2.0-4-common/include/linux/slab.h:243:21: note: previous definition of ‘kmalloc_array’ was here
/lib/firmware/compat-drivers-3.8-1/include/linux/compat-3.4.h:104:20: error: redefinition of ‘eth_hw_addr_random’
/usr/src/linux-headers-3.2.0-4-common/include/linux/etherdevice.h:165:20: note: previous definition of ‘eth_hw_addr_random’ was here
make[5]: *** [/lib/firmware/compat-drivers-3.8-1/compat/main.o] 错误 1
make[4]: *** [/lib/firmware/compat-drivers-3.8-1/compat] 错误 2
make[3]: *** [_module_/lib/firmware/compat-drivers-3.8-1] 错误 2
make[2]: *** [sub-make] 错误 2
make[1]: *** [all] 错误 2
make[1]: Leaving directory `/usr/src/linux-headers-3.2.0-4-686-pae'
make: *** [modules] 错误 2
这个错误是这样的,网上也没有什么合适的解答,只好自己设法弄。
/lib/firmware/compat-drivers-3.8-1/include/linux/compat-3.4.h:43:21: error: redefinition of ‘kmalloc_array’
/usr/src/linux-headers-3.2.0-4-common/include/linux/slab.h:243:21: note: previous definition of ‘kmalloc_array’ was here
这两行的资料说明这俩文件里面的kmalloc_array 重复定义了,好吧,注释掉一个就可以了(即打开文件把里面的函数注释掉),虽然编译的时候有警告,但是还是通过了,一切ok,别的重复定义的也是这样,直接注释掉就可以了。最好注释掉网卡驱动本身的,别注释掉linux内核的。目前只能这样了,如果哪位有更好的方法,欢迎分享。
下面是发现别人的记录,觉得有用,就抄袭了一下,原作老兄如果不愿意,请留言(*^__^*) 嘻嘻……
值得一提的问题:
如果重启后看不到 wlan0 ,用 dmesg | grep -e ath -e wlan 看下是不是有错误。
usb 1-1: ath9k_htc: Firmware �C ar9271.fw not found(我的opensuse显示的是htc_9271.fw not found,那就在下面的网址中找htc_9271.fw即可)
如果是这个not found错误,那说明你没有把 ar9271.fw 拷贝到 /lib/firmware 下面。
ar9271.fw(或htc_9271.fw) 的来源,可以直接到 下载,不过只能通过raw 下载,否则下载的文件大小都是0字节的。用 raw 连接下载需要更改文件名。
还有一种安全一点办法就是上面用到的 git 命令,把所有的 fw 都下下来,这样就不用当心下载错什么问题,就是用的时间稍长些。
参考资料:
http://my.oschina.net/u/147624/blog/56052
http://www.rover12421.com/2010/10/06/tl-wn722n-driver-installed-on-the-bt4-r1.html