Android6 linux4.4 调试8723BU记录过程

8723BU USB-WIFI模块调试过程

本人的硬件平台是RK3399 内核版本LINUX4.4 Android 6.
一:先调试底层 kernel

  1. 8723BU模块
    因为当时RK平台支持很多RTL WIFI 芯片,本人买了8723BU 和 8188EU 均调试成功,只调试了WIFI 模块 因为项目对Bt没需求,所以只调试了WIFI部分功能。

2.WIFI驱动一般平台支持的WIFI驱动 在 kernel/driver/net/wireless/下面,在这里插入图片描述若同志没有相关的驱动或原来的驱动不太行 可下载我调试过的代码
链接:https://download.csdn.net/download/qq_42233843/11657530

  1. 若在Android平台上使用USB模块,应该先把驱动调通 在逐渐向上开发。
    驱动已经有了,那么直接在当前驱动make吗? 如果make成功那就行,如果不行那就大部分是脚本文件的问题而不是驱动代码的问题。
    一般要注意几个mk文件。

驱动当前目录下的MakeFile
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
自己写一个自己平台的条件 如上图。

主要根据自己平台进行配置。
注意的参数有
ARCH 你的系统是32还是64位的
CROSS_COMPILE 选择你的编译器 注意编译器要和你编译平台代码的编译器一致 不懂可以看你编译kernel的编译器选择那个。
KSRC: 你平台的kernel路径
这几个一定要填对 不然编译会报错 又或者 编出来的驱动无法使用。

  1. 接下来是config文件的设置 让驱动编译进内核 就无需自己手动挂载了。
    有几个一定要勾选的选项
    在kernel目录下输入 make menuconfig
    在Networking support > wireless 下
    在这里插入图片描述
    在 Device Driver > Netwirk device support > Wireless Lan > Rockchip Wireless Lan Support
    在这里插入图片描述
    这些就比较容易懂 ,不懂的话可以现在学会如何设置,如何看,简单的说就是看Kconfig文件

选完之后 进入kernel目录下 make编译你的kernel。编译的过程中看是否有编译到你的驱动文件上。若没有编译到自己检查问题出在哪,可能就是mk文件或者kconfig文件没有正确。

  1. DTS 很简单 改一下型号,蓝牙不用的可以屏蔽掉

在这里插入图片描述
以上是kernel层的设置
一些可能用到的命令
ifconfig -a 看是否出现wlan0网口
cat /proc/net/wireless 看是否有网口出现 这里可以检验你的驱动是否正确,出现wlan0 应该就是成功了。

二: Android层

当时只需要修改一个文件就可以再界面上打开wifi按钮上连接wifi了,可惜。
修改一下一个文件在device/rockchip/common/wifi_bt_common.mk ,RK平台是这个,其他的平台可能在Boardconfig.mk。
修改如下:

在这里插入图片描述

编译system后,烧写,测试结果。

以上是调试过程中的笔记,方便自己回忆 也方便大家观看。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章