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驱动的开发者们有所帮助。祝你们在项目中取得成功!

相关推荐
黄昏恋慕黎明14 分钟前
spring MVC了解
java·后端·spring·mvc
2501_941149502 小时前
探索云原生架构:从容器到微服务的全面升级
微服务·云原生·架构
喵了几个咪2 小时前
Kratos微服务轻松对接EFK日志系统
微服务·云原生·架构
G探险者2 小时前
为什么 VARCHAR(1000) 存不了 1000 个汉字? —— 详解主流数据库“字段长度”的底层差异
数据库·后端·mysql
百锦再2 小时前
第18章 高级特征
android·java·开发语言·后端·python·rust·django
Tony Bai2 小时前
Go 在 Web3 的统治力:2025 年架构与生态综述
开发语言·后端·架构·golang·web3
小兔薯了3 小时前
11. Linux firewall 防火墙管理
linux·运维·服务器
程序猿20233 小时前
项目结构深度解析:理解Spring Boot项目的标准布局和约定
java·spring boot·后端
RainbowSea3 小时前
内网穿透配置和使用
java·后端
Linux技术芯3 小时前
浅谈SCSI寻址机制与工作阶段深度解析?
linux