操作系统: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 – 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