Yocto i.MX6 (TQIMX6) (02) : USB Wifi (TP-Link WN821N等设备)AR9170的Linux内核支持与固件使用

说明

固件的下载见博客末尾。

Wifi模块

有一个TP-Link的WN821N的USB无线网卡,查到UbuntuPC上面用lsusb看了看:

Yocto i.MX6 (TQIMX6) (02) : USB Wifi (TP-Link WN821N等设备)AR9170的Linux内核支持与固件使用_第1张图片


内核支持

在内核中搜索lsusb输出的设备VID与PID,可以看到是有支持的,直接在内核中配置即可:

Yocto i.MX6 (TQIMX6) (02) : USB Wifi (TP-Link WN821N等设备)AR9170的Linux内核支持与固件使用_第2张图片

这个是Linux社区对这个USB Wifi的支持,在这个Menuconfig选项的help中的网站里面很多东西都已经无法下载了。

支持的设备

使用AR9170的设备有如下这些(来源于这个网页):

Vendor
[all] 3Com AVM  Actiontec Airlive  Arcadyan Atheros Cace  D-Link H3C  IO-Data NEC Netgear  Planex Proxim  Sphairon TP-LINK WNC  Z-Com Zydas  Zyxel
Product USB Vendor
[all] 0x0409 0x04bb  0x057c 0x0586  0x07d1 0x083a 0x0846  0x0ace 0x0cde  0x0cf3 0x1435 0x1668  0x1b75 0x2019  0xcace
USB Product
[all] 0x0023 0x0026  0x0027 0x0249  0x02b4 0x0300 0x0326  0x0804 0x093f  0x1001 0x1002 0x1010  0x1011 0x1200  0x1221 0x3417 0x3a09  0x3a0f 0x3c10  0x5304 0x8401 0x8402  0x9001 0x9010  0x9040 0x9170 0xf522
MaxPower
[all] 500mA
3Com Dual Band 802.11n USB 0x0cf3 0x1010  
Actiontec 802AIN Wireless N 0x1668 0x1200  
Airlive X.USB 11a/b/g/n 0x1b75 0x9170  
Arcadyan WN7512 0x083a 0xf522  
Atheros 9170 0x0cf3 0x9170  
Atheros TG121N 0x0cf3 0x1001  
AVM FRITZ!WLAN USB Stick N 0x057c 0x8401  
AVM FRITZ!WLAN USB Stick N 2.4 0x057c 0x8402  
Cace Airpcap NX 0xcace 0x0300  
D-Link DWA-130 D 0x07d1 0x3a0f  
D-Link DWA-160 A1 0x07d1 0x3c10  
D-Link DWA-160 A2 0x07d1 0x3a09  
H3C Dual Band 802.11n USB 0x0cf3 0x1011  
IO-Data WNGDNUS2 0x04bb 0x093f  
NEC WL300NU-AG 0x0409 0x02b4  
NEC WL300NU-G 0x0409 0x0249  
Netgear WN111 v2 0x0846 0x9001  
Netgear WNA1000 0x0846 0x9040  
Netgear WNDA3100 (v1) 0x0846 0x9010 500mA
Planex GWUS300 0x2019 0x5304  
Proxim ORiNOCO 802.11n USB 0x1435 0x0804  
Sphairon Homelink 1202 0x0cde 0x0027  
TP-LINK TL-WN821N v2 0x0cf3 0x1002 500mA
WNC Generic 11n USB Dongle 0x1435 0x0326  
Z-Com UB81 BG 0x0cde 0x0023  
Z-Com UB82 ABG 0x0cde 0x0026  
Zydas ZD1221 0x0ace 0x1221  
Zyxel NWD271N 0x0586 0x3417  

寻找固件

根据内核KConfig中的help信息,我们知道可以去这个页面查找帮助与相关固件,但是当你真正的进去后就会发现这个页面的固件根本就无法下载了,很多信息也已经无效且让人误解,我在花了大量的时间尝试摸索之后,终于找到了对应的固件与固件需要被存放的位置。

固件下载

linux的固件都放在了linux-firmware repo中,可以在这个页面看到里面的内容:

Yocto i.MX6 (TQIMX6) (02) : USB Wifi (TP-Link WN821N等设备)AR9170的Linux内核支持与固件使用_第3张图片

可以看到这里面有2个固件(ar9170-1.fw与ar9170-2.fw),但是我们应该用哪个呢?或者使用哪几个呢? 我们可以不管这些直接将这2个都拷贝到系统中去。但是当我拷贝进去(/lib/firmware)之后,发现驱动依然提示找不到固件:

Yocto i.MX6 (TQIMX6) (02) : USB Wifi (TP-Link WN821N等设备)AR9170的Linux内核支持与固件使用_第4张图片

因此说明这个固件,要么内容不对,要么我们放的位置不对,要么还缺少文件。


固件应该放在哪里

对此问题,linux wireless的wiki中提到的right place:


Yocto i.MX6 (TQIMX6) (02) : USB Wifi (TP-Link WN821N等设备)AR9170的Linux内核支持与固件使用_第5张图片


即为/lib/firmware下面。

我在Yocto中添加了linux-firmware(参考我的博客:Yocto tips (11): Yocto如何往最终的rootfs中添加软件)之后,发现确实是在这个位置:



且根据Yocto中的信息,我们可以看到这里面有三个,和前面相比,多了一个,因此,我们再一次尝试,将这三个都放进去,然后拔插USB Wifi,发现就可以了:

Yocto i.MX6 (TQIMX6) (02) : USB Wifi (TP-Link WN821N等设备)AR9170的Linux内核支持与固件使用_第6张图片


固件下载

到我的我的资源中下载:AR9170 (支持TP Link WN821N ) Linux 固件 firmware  

AR9170 (支持TP Link WN821N ) Linux 固件 firmware  


你可能感兴趣的:(ARM,Wi-Fi,yocto,Freescale,TQIMX6Q)