I tried to compile an Android 8 kernel to contain a driver for TP-Link TL-WN722N USB Wi-Fi card for a smartphone, the kernel is flashed successfully, but when I plug the Wi-Fi card via OTG to the phone, it's not recognised by software.

Here are some debugging I have done:

The Wi-Fi card is showing in lsusb -t output, but no driver binding to it.

I can see the module is loaded in /proc/modules and lsmod:

wlan 5801121 0 - Live 0x00000000000000 (O)

The driver I have picked using make menuconfig before compile was called ATH9K and ATH9K_HTC, so I am not sure why it's wlan here, and the offset being all zeros is a bit weird. Also, this is the only item in the output, I guess all other native modules are compiled directly into the kernel, not externally.

There are many things look not very right, but I'm not sure where actually is the problem, any suggestions will be appreciated.

  • When you type lsusb, you see IDs. Driver needs to be registered for the particular ID. Maybe your driver does not recognize the ID of your device.
    – nobody
    Aug 20, 2020 at 5:40

1 Answer 1


I finally got it working, it turns out the Atheros device requires a .fw firmware file to be placed in right directory to work, I noticed this because an error of loading firmware failed message shows in dmesg every time I plug in the wifi card. I also tried to bind driver to device like @nobody suggested, but I'm not sure if that's working, the driver is not showed in the device folder after binding.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .