为什么加载的模块不是设备的驱动程序?

为什么加载的模块不是设备的驱动程序?

我尝试编译 Android 8 内核以包含用于智能手机的 TP-Link TL-WN722N USB Wi-Fi 卡的驱动程序,内核已成功刷新,但是当我通过 OTG 将 Wi-Fi 卡插入手机时,它是无法被软件识别。

以下是我所做的一些调试:

Wi-Fi 卡显示在lsusb -t输出中,但没有与其绑定的驱动程序。

我可以看到模块已加载/proc/modules并且lsmod

wlan 5801121 0 - Live 0x00000000000000 (O)

我在编译之前选择使用的驱动程序make menuconfig被称为ATH9KATH9K_HTC,所以我不确定为什么会这样wlan在这里,偏移量全为零有点奇怪。另外,这是输出中的唯一项目,我猜所有其他本机模块都直接编译到内核中,而不是外部编译。

有很多事情看起来不太正确,但我不确定问题到底出在哪里,任何建议将不胜感激。

答案1

我终于让它工作了,事实证明 Atheros 设备需要将 .fw 固件文件放置在正确的目录中才能工作,我注意到这一点是因为每次插入 wifi 卡时,dmesg 中都会显示加载固件失败消息的错误。我还尝试将驱动程序绑定到设备,如 @nobody 建议的那样,但我不确定这是否有效,绑定后驱动程序不会显示在设备文件夹中。

相关内容