RK 3586 移植RTL8723DU驱动流程记录

1.简介

我们公司有一款RK3568 双wifi的产品,搭载的是AP6275s + RTL8723DU ,这两款都是RK支持的wifi系列,详细可以参考RK的官方写的文档 (路径:RK3568_SDK\RKDocs\android\wifi

那么接下来我们就操作一遍适配RTL8723DU的驱动吧,因为走USB的,所以是不需要配置dts的,移植完成驱动就可以工作了

2.移植过程

2.1 参考文档

首先一个合格的程序员,当然是先把官方写的文档看一遍了,看完一遍大概流程就明白了(《Rockchip_Introduction_REALTEK_WIFI_Driver_Porting_CN&EN.pdf》)
RK 3586 移植RTL8723DU驱动流程记录

2.2 驱动文件

这个我们一般是找供应商要,如果没有就找RK要,找到RTL8723DU的驱动就可以开始移植工作了
RK 3586 移植RTL8723DU驱动流程记录

2.3 移植步骤

在kernel目录下,修改如下文件
RK 3586 移植RTL8723DU驱动流程记录
(如果是RK给的驱动压缩包,不需要以下的修改,因为RK给的压缩包是已经修改完毕的了,上面kernel目录修改完成后就可以编译kernel了)

在rtl8723du驱动源文件上,修改Makefile,参考文档是8723cs,我们现在移植的是8723du ,需要注意一下。
RK 3586 移植RTL8723DU驱动流程记录
在rtl8723du驱动源码文件上,修改os_dep/linux/usb_intf.c文件即可,因为是走USB的
RK 3586 移植RTL8723DU驱动流程记录
RK 3586 移植RTL8723DU驱动流程记录

3.测试

移植完成后,编译kernel img ,烧录进设备上。打开android Settng UI 界面开启wifi,就可以使用了。

4.问题排查过程

我们这边移植完毕后出现了一个情况,wifi一直都打开不成功。

我们查看开机 log后,发现驱动都没有跑起来
RK 3586 移植RTL8723DU驱动流程记录
因为无上面的log打印,所以我们就把RTL系列的驱动都关闭了,只保留了RTL8723DU的驱动,因为kernel是以模块的方式加载这样wifi驱动的

这次驱动跑起来了,底层命令行可以正常工作了,但是我们又发现UI界面一直没办法正常工作
RK 3586 移植RTL8723DU驱动流程记录
RK 3586 移植RTL8723DU驱动流程记录
RK 3586 移植RTL8723DU驱动流程记录
这个应该是上层的问题了,我们logcat分析了一下
RK 3586 移植RTL8723DU驱动流程记录
发现是vid 与pid没有正常匹配。我们修改添加一下
RK 3586 移植RTL8723DU驱动流程记录
接下来我们再运行一次,完美工作。

那么此次的USB WiFi RTL8723DU的移植工作就可以说是完成了

上一篇:Linux内核分析:Linux内核启动流程分析


下一篇:【opencv-python】形态学转换—腐蚀