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》)
2.2 驱动文件
这个我们一般是找供应商要,如果没有就找RK要,找到RTL8723DU的驱动就可以开始移植工作了
2.3 移植步骤
在kernel目录下,修改如下文件
(如果是RK给的驱动压缩包,不需要以下的修改,因为RK给的压缩包是已经修改完毕的了,上面kernel目录修改完成后就可以编译kernel了)
在rtl8723du驱动源文件上,修改Makefile,参考文档是8723cs,我们现在移植的是8723du ,需要注意一下。
在rtl8723du驱动源码文件上,修改os_dep/linux/usb_intf.c文件即可,因为是走USB的
3.测试
移植完成后,编译kernel img ,烧录进设备上。打开android Settng UI 界面开启wifi,就可以使用了。
4.问题排查过程
我们这边移植完毕后出现了一个情况,wifi一直都打开不成功。
我们查看开机 log后,发现驱动都没有跑起来
因为无上面的log打印,所以我们就把RTL系列的驱动都关闭了,只保留了RTL8723DU的驱动,因为kernel是以模块的方式加载这样wifi驱动的
这次驱动跑起来了,底层命令行可以正常工作了,但是我们又发现UI界面一直没办法正常工作
这个应该是上层的问题了,我们logcat分析了一下
发现是vid 与pid没有正常匹配。我们修改添加一下
接下来我们再运行一次,完美工作。
那么此次的USB WiFi RTL8723DU的移植工作就可以说是完成了