Kernel

為什麼載入的模組不是設備的驅動程序?

  • August 21, 2020

我嘗試編譯一個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我在編譯之前選擇使用的驅動程序被稱為*ATH9Kand ATH9K_HTC,所以我不確定它為什麼在wlan*這裡,並且偏移量全為零有點奇怪。另外,這是輸出中唯一的一項,我猜所有其他本機模組都直接編譯到核心中,而不是外部編譯。

有很多事情看起來不太正確,但我不確定問題到底出在哪裡,任何建議都將不勝感激。

我終於讓它工作了,事實證明 Atheros 設備需要將 .fw 韌體文件放在正確的目錄中才能工作,我注意到這是因為每次插入 wifi 卡時 dmesg 都會顯示載入韌體失敗消息的錯誤。我還嘗試將驅動程序綁定到@nobody 建議的設備,但我不確定這是否有效,綁定後驅動程序未顯示在設備文件夾中。

引用自:https://unix.stackexchange.com/questions/605375