8723BU USB-WIFI模塊調試過程
本人的硬件平臺是RK3399 內核版本LINUX4.4 Android 6.
一:先調試底層 kernel
- 8723BU模塊
因爲當時RK平臺支持很多RTL WIFI 芯片,本人買了8723BU 和 8188EU 均調試成功,只調試了WIFI 模塊 因爲項目對Bt沒需求,所以只調試了WIFI部分功能。
2.WIFI驅動一般平臺支持的WIFI驅動 在 kernel/driver/net/wireless/下面,若同志沒有相關的驅動或原來的驅動不太行 可下載我調試過的代碼
鏈接:https://download.csdn.net/download/qq_42233843/11657530
- 若在Android平臺上使用USB模塊,應該先把驅動調通 在逐漸向上開發。
驅動已經有了,那麼直接在當前驅動make嗎? 如果make成功那就行,如果不行那就大部分是腳本文件的問題而不是驅動代碼的問題。
一般要注意幾個mk文件。
驅動當前目錄下的MakeFile
自己寫一個自己平臺的條件 如上圖。
主要根據自己平臺進行配置。
注意的參數有
ARCH 你的系統是32還是64位的
CROSS_COMPILE 選擇你的編譯器 注意編譯器要和你編譯平臺代碼的編譯器一致 不懂可以看你編譯kernel的編譯器選擇那個。
KSRC: 你平臺的kernel路徑
這幾個一定要填對 不然編譯會報錯 又或者 編出來的驅動無法使用。
- 接下來是config文件的設置 讓驅動編譯進內核 就無需自己手動掛載了。
有幾個一定要勾選的選項
在kernel目錄下輸入 make menuconfig
在Networking support > wireless 下
在 Device Driver > Netwirk device support > Wireless Lan > Rockchip Wireless Lan Support
這些就比較容易懂 ,不懂的話可以現在學會如何設置,如何看,簡單的說就是看Kconfig文件
選完之後 進入kernel目錄下 make編譯你的kernel。編譯的過程中看是否有編譯到你的驅動文件上。若沒有編譯到自己檢查問題出在哪,可能就是mk文件或者kconfig文件沒有正確。
- DTS 很簡單 改一下型號,藍牙不用的可以屏蔽掉
以上是kernel層的設置
一些可能用到的命令
ifconfig -a 看是否出現wlan0網口
cat /proc/net/wireless 看是否有網口出現 這裏可以檢驗你的驅動是否正確,出現wlan0 應該就是成功了。
二: Android層
當時只需要修改一個文件就可以再界面上打開wifi按鈕上連接wifi了,可惜。
修改一下一個文件在device/rockchip/common/wifi_bt_common.mk ,RK平臺是這個,其他的平臺可能在Boardconfig.mk。
修改如下:
編譯system後,燒寫,測試結果。
以上是調試過程中的筆記,方便自己回憶 也方便大家觀看。