本文轉載自 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 – 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