T113-S3-RTL8822CU模块驱动移植

目录

前言

一、驱动源码获取

二、源码编译

三、驱动模块加载测试


前言

在嵌入式系统开发中,移植外部硬件设备的驱动是一个常见的任务。本文将分享如何在全志平台上成功移植RTL8822CU无线模块的驱动,以实现无线网络功能。


提示:以下是本篇文章正文内容,下面案例可供参考

一、驱动源码获取

驱动源码一般由模块厂商提供,本文主要根据RTL8822CU_WiFi_linux_v5.14.0.3-2-gba458274c_COEX20211210-2727.20220418.tar.gz驱动程序进行交叉编译移植。

二、源码编译

**1、源码解压:**使用如下命令解压源码。

cpp 复制代码
tar -zxvf RTL8822CU_WiFi_linux_v5.14.0.3-2-gba458274c_COEX20211210-2727.20220418

解压源代码目录如下图所示:

driver目录为驱动源码所在目录,目录结构如下所示:

2、Makefile修改。

查看Makefile结构,在平台关联配置项下添加T113-S3平台选项,并将该选项配置为"y",如下图所示:

仿照CONFIG_PLATFORM_ARM_SUN8I_W5P1配置项点添加T113配置项,如下图所示:

其中交叉编译器路径配置为:

cpp 复制代码
CROSS_COMPILE := /opt/QZ/gcc-linaro-5.3.1-2016.05-x86_64_arm-linux-gnueabi/bin/arm-linux-gnueabi-

内核路径配置为:

cpp 复制代码
KSRC :=/home/cftc/workspace/QZ/T113-S3-V1.1-SDK-2022-09-20/sdk/out/kernel/build

驱动模块名称配置为:MODULE_NAME := wlan

3、驱动编译:

在当前目录执行 make 即可编译源码,编译报错如下图所示:

通过咨询模块厂家,得知platform_ARM_SUNxI_usb为android平台才会使用到,我们是在buildroot linux系统下使用,故无需包含该配置项点,修改Makefile配置如下图所示:

再次make clean,make即可成功编译驱动模块,正常编译如下图所示:

三、驱动模块加载测试

加载驱动报错,具体如下图所示:

通过Vs_intenal_I_am reallya filesystem and am NoTa driver得知,从Android R开始,安卓加强了代码标准化的管理,GK要求gki要求,s相关接口只能在1s代码中使用,其他模块不允许调用,同时对于vis read限制了外部使用,外部只能使用kemel read操作,但是使用kemel read也是不符合GKI要求的,规避手段,在调用kemnel read的源文件中增加声明即可绕过 (临时绕过手段,AndroidS上必须改掉文件系统的相关操作)MODULE IMPORT NS(VFS internal i am really a filesystem and am NOT a driver):

即可通过修改驱动源码,添加如下部分即可解决该报错问题:

驱动正常加载如下图所示:

至此大功告成!

总结

通过按照上述步骤进行移植,你应该能够在全志平台上成功驱动RTL8822CU无线模块。当然,每个平台和硬件配置可能会有所不同,但遵循这个基本流程应该可以帮助你顺利完成移植工作。移植驱动可能是一个复杂的任务,但也是嵌入式系统开发中非常有意义和有趣的一部分。希望本文对那些尝试在全志平台上移植RTL8822CU驱动的开发者们有所帮助。祝你们在项目中取得成功!

相关推荐
安的列斯凯奇26 分钟前
SpringBoot篇 单元测试 理论篇
spring boot·后端·单元测试
AI航海家(Ethan)29 分钟前
PostgreSQL数据库的运行机制和架构体系
数据库·postgresql·架构
架构文摘JGWZ1 小时前
FastJson很快,有什么用?
后端·学习
BinaryBardC1 小时前
Swift语言的网络编程
开发语言·后端·golang
邓熙榆1 小时前
Haskell语言的正则表达式
开发语言·后端·golang
贾贾20231 小时前
配电自动化系统“三区四层”数字化架构
运维·科技·架构·自动化·能源·制造·智能硬件
小池先生3 小时前
grafana+prometheus监控linux指标
linux·grafana·prometheus
浮梦终焉3 小时前
【嵌入式】总结——Linux驱动开发(三)
linux·驱动开发·qt·嵌入式
远方 hi3 小时前
linux如何修改密码,要在CentOS 7系统中修改密码
linux·运维·服务器
落幕4 小时前
C语言-构造数据类型
c语言·开发语言