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

相关推荐
zl_dfq4 小时前
Linux 之 【进程间通信】
linux
珠海西格电力4 小时前
零碳园区如何实现能源互联
大数据·人工智能·物联网·架构·能源
哪里不会点哪里.5 小时前
Spring 中常用注解详解
java·后端·spring
码界奇点5 小时前
深入解析MySQL9主从复制架构详解从原理到实战优化
数据库·sql·架构·可用性测试
zl_dfq5 小时前
Linux 之 【进程间通信】(匿名管道与命名管道、pipe、进程池、mkfifo、unlink)
linux
UP_Continue5 小时前
Linux--进程优先级和进程切换
linux·运维·服务器
Amber7625 小时前
嵌入式C函数参数设计深度解析:指针与值传递的实战艺术
c语言·开发语言
Maggie_ssss_supp5 小时前
Linux-MGR单主集群部署
linux·运维·服务器
YuTaoShao5 小时前
【LeetCode 每日一题】3510. 移除最小数对使数组有序 II
linux·算法·leetcode
zbguolei5 小时前
Springboot上传文件与物理删除
java·spring boot·后端