固件的下载见博客末尾。
有一个TP-Link的WN821N的USB无线网卡,查到UbuntuPC上面用lsusb看了看:
内核支持
在内核中搜索lsusb输出的设备VID与PID,可以看到是有支持的,直接在内核中配置即可:
这个是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中,可以在这个页面看到里面的内容:
可以看到这里面有2个固件(ar9170-1.fw与ar9170-2.fw),但是我们应该用哪个呢?或者使用哪几个呢? 我们可以不管这些直接将这2个都拷贝到系统中去。但是当我拷贝进去(/lib/firmware)之后,发现驱动依然提示找不到固件:
因此说明这个固件,要么内容不对,要么我们放的位置不对,要么还缺少文件。
对此问题,linux wireless的wiki中提到的right place:
即为/lib/firmware下面。
我在Yocto中添加了linux-firmware(参考我的博客:Yocto tips (11): Yocto如何往最终的rootfs中添加软件)之后,发现确实是在这个位置:
且根据Yocto中的信息,我们可以看到这里面有三个,和前面相比,多了一个,因此,我们再一次尝试,将这三个都放进去,然后拔插USB Wifi,发现就可以了:
固件下载
到我的我的资源中下载:AR9170 (支持TP Link WN821N ) Linux 固件 firmware