CPU:RK3288
系統(tǒng):Android 5.1
注:RK3288系統(tǒng),目前 Android 5.0 Kernel 3.10 SDK 支持 Braodcom,Realtek 等 WiFi BT 模塊
各個 WiFi BT 模塊已經(jīng)做到動態(tài)兼容,Android 上層不再需要像以前一樣進 行特定宏的配置
此文是手動添加AP6212A的例程。
1、在設備樹中修改 wifi 芯片為 ap6212a(找到自己對應的dts),修改wifi_chip_type
kernel/arch/arm/boot/dts/marvsmart-rk3288.dts
2、在配置文件 defconfig 中屏蔽舊 wifi 芯片,增加新的 wifi 芯片
kernel/arch/arm/configs/marvsmart-rk3288_defconfig
3、在 Kconfig 文件中增加 AP6212 選項。
/kernel/drivers/net/wireless/Kconfig
4、此時串口打印中會出現(xiàn)打開文件 fw_bcm43438a1.bin 失敗,需要更新 wifi 模塊固件。
[ 18.686420] dhdsdio_download_code_file: Open firmware file failed /system/etc/firmware/fw_bcm43438a1.bin [ 18.686430] _dhdsdio_download_firmware: dongle image file download failed
WiFI 固件路徑:/external/wlan_loader/firmware
將模塊供應商提供的固件文件拷貝到此目錄下,然后編譯燒錄。
external/wlan_loader/firmware/fw_bcm43438a1.bin external/wlan_loader/firmware/fw_bcm43438a1_apsta.bin external/wlan_loader/firmware/fw_bcm43438a1_p2p.bin external/wlan_loader/firmware/nvram_ap6212.txt
編譯后,系統(tǒng)會將模塊固件拷貝到 out/target/product/rk3288/system/etc//firmware/ 目錄下
如果只是調(diào)試,可以通過 adb 將固件 push 到?/system/etc//firmware/ 目錄下,然后重啟。
kernel/include/linux/rfkill-wlan.h
?wifi 驅(qū)動路徑:kernel/net/rfkill/rfkill-wlan.c
?
kernel/drivers/net/wireless/rockchip_wlan/rkwifi/rk_wifi_config.c
??
如果器件升級,比如器件為AP6212A,供應商給的文件問 nvram_ap6212a.txt,則需要修改下面文件。(直接用以前的 nvram_ap6212.txt 也可以用,但文件不一樣,不清楚)
路徑:\kernel\drivers\net\wireless\rockchip_wlan\rkwifi\bcmdhd\dhd_config.c
5、BT 驅(qū)動中增添代碼,支持 AP6212
BT 驅(qū)動路徑:kernel/net/rfkill/rfkill-bt.c
?到此 AP6212 就可以正常使用了
如果發(fā)現(xiàn)不能用 類似Wifi?HAL?start?failed這類錯誤,可以使用insmod命令 直接加載對應wifi驅(qū)動文件(vendor/lib/module/wifi/8188eu.ko),然后使用dmesg抓下日志,看內(nèi)核日志是否有wifi相關的內(nèi)容文章來源:http://www.zghlxwxcb.cn/news/detail-472111.html
如果使用insmod加載后,就可以正常使用wifi,那說明ko文件沒被加載文章來源地址http://www.zghlxwxcb.cn/news/detail-472111.html
到了這里,關于RK3288 Android5.1添加WiFi&BT模塊AP6212的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!