Kernel
為什麼載入的模組不是設備的驅動程序?
我嘗試編譯一個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
我在編譯之前選擇使用的驅動程序被稱為*ATH9K
andATH9K_HTC
,所以我不確定它為什麼在wlan
*這裡,並且偏移量全為零有點奇怪。另外,這是輸出中唯一的一項,我猜所有其他本機模組都直接編譯到核心中,而不是外部編譯。有很多事情看起來不太正確,但我不確定問題到底出在哪裡,任何建議都將不勝感激。
我終於讓它工作了,事實證明 Atheros 設備需要將 .fw 韌體文件放在正確的目錄中才能工作,我注意到這是因為每次插入 wifi 卡時 dmesg 都會顯示載入韌體失敗消息的錯誤。我還嘗試將驅動程序綁定到@nobody 建議的設備,但我不確定這是否有效,綁定後驅動程序未顯示在設備文件夾中。