当前位置: 首页 > news >正文

【RK3568 编译rtl8723DU驱动】

RK3568 编译rtl8723DU驱动

  • 编译源码
    • 1.解压rtl8723du
    • 2.修改Makefile
  • 验证
    • 1.加载模块
    • 2.开启wifi

在驱动开发中,驱动的编译与集成是实现设备功能的关键环节。本文聚焦于基于 RK3568 处理器平台编译 RTL8723DU WiFi/BT 二合一模块驱动的完整流程,涵盖源码编译到驱动调试的全链条操作,旨在为开发者提供可落地的技术指南,解决驱动移植过程中常见问题。

编译源码

1.解压rtl8723du

可以找原厂提供源码

tar -vxf rtl8723DU_WiFi_linux_v5.13.4.2-4.tar.gz 

在这里插入图片描述

2.修改Makefile

rk3568使用的是USB接口,其他开发板可以根据情况调整

######################### Interface ###########################
CONFIG_USB_HCI = y
CONFIG_PCI_HCI = n
CONFIG_SDIO_HCI = n
CONFIG_GSPI_HCI = n

修改Platform Related下的配置
我们使用 的不是CONFIG_PLATFORM_I386_PC所以修改y->n
在这里插入图片描述
仿照其他rk设备新增一个rk3568的配置CONFIG_PLATFORM_ARM_RK3568并设置为y
在这里插入图片描述
设置编译配置

ifeq ($(CONFIG_PLATFORM_ARM_RK3568), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_PLATFORM_ANDROID -DCONFIG_PLATFORM_ROCKCHIPS
# default setting for Android 4.1, 4.2, 4.3, 4.4
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE
# default setting for Power control
#EXTRA_CFLAGS += -DRTW_ENABLE_WIFI_CONTROL_FUNC
ifeq ($(CONFIG_SDIO_HCI), y)
EXTRA_CFLAGS += -DRTW_SUPPORT_PLATFORM_SHUTDOWN
endif
# default setting for Special function
ARCH := arm64
# 编译路径根据自己实际路径配置
CROSS_COMPILE := /home/chenmy/rk356x/RK356X_Android11.0/prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-
# 配置kernel路径
KSRC := /home/chenmy/rk356x/RK356X_Android11.0/kernel
MODULE_NAME := wlan
endif

修改完成后,开始编译,我们为了方便直接可以将rtl8723du编译成模块,方便调试,
直接在目录下执行make
在这里插入图片描述
编译报错:
在这里插入图片描述
解决方案:
屏蔽#EXTRA_CFLAGS += -DRTW_ENABLE_WIFI_CONTROL_FUNC
在这里插入图片描述
具体修改内容如下:

# 修改:CONFIG_PLATFORM_I386_PC = y -> CONFIG_PLATFORM_I386_PC = n
# 新增:CONFIG_PLATFORM_ARM_RK3568 = y
# 新增:
ifeq ($(CONFIG_PLATFORM_ARM_RK3568), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_PLATFORM_ANDROID -DCONFIG_PLATFORM_ROCKCHIPS
# default setting for Android 4.1, 4.2, 4.3, 4.4
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE
# default setting for Power control
#EXTRA_CFLAGS += -DRTW_ENABLE_WIFI_CONTROL_FUNC
ifeq ($(CONFIG_SDIO_HCI), y)
EXTRA_CFLAGS += -DRTW_SUPPORT_PLATFORM_SHUTDOWN
endif
# default setting for Special function
ARCH := arm64
# 编译路径根据自己实际路径配置
CROSS_COMPILE := /home/chenmy/rk356x/RK356X_Android11.0/prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-
# 配置kernel路径
KSRC := /home/chenmy/rk356x/RK356X_Android11.0/kernel
MODULE_NAME := wlan
endif

在这里插入图片描述
修改完成后最终编译成功

验证

1.加载模块

在这里插入图片描述

2.开启wifi

在这里插入图片描述
手动连接wifi后,可以看到wifi已经连接成功了。在这里插入图片描述

并且能够正常上网
在这里插入图片描述

http://www.dtcms.com/a/267648.html

相关文章:

  • Write-up:hacker_dns
  • 安达发|告别低效排产:APS高级排程如何助力电池企业智造升级?
  • Java 大视界 -- 基于 Java 的大数据实时流处理在工业物联网设备能耗实时监测与节能优化中的应用(332)
  • 09_云原生架构:拥抱不确定性
  • 【力扣 简单 C】746. 使用最小花费爬楼梯
  • AI小智项目全解析:软硬件架构与开发环境配置
  • 自动化Prompt生成平台的研发体系设计
  • [HDLBits] Cs450/history shift
  • vue router 里push方法重写为什么要重绑定this
  • Xmind功能特点
  • LucidShape 2024.09 最新
  • 2025年3月青少年电子学会等级考试 中小学生python编程等级考试三级真题答案解析(判断题)
  • Docker文件操作、数据卷、挂载
  • Servlet学习
  • FFmpeg——基础知识及FFmpeg框架
  • MySQL GROUP_CONCAT函数实现列转行
  • 技术管理核心知识体系:从架构到实践的全方位指南
  • DPDK 网卡驱动
  • 堆叠初始化与配置同步工作机制(以IRF2.0为例)
  • Adobe LiveCycle Designer 中脚本的层级关系
  • 许船长,不断推出契合潮流的创新品类
  • 如何解决Spring Boot中@Valid对List校验失效问题
  • 【Oracle专栏】大批量插入数据 BULK COLLECT
  • 【leetcode100】最长回文子串
  • Altium Designer使用教程 第二章(原理图绘制)
  • 嵌入式 数据结构学习(四) 双向链表详解与工程管理
  • 3dmax标准材质转物理材质插件,支持VR材质和CR材质转换成功物理材质,支持多维子材质
  • vscode工具使用技巧
  • Spring AI介绍:Java开发者迈向智能应用的新利器
  • Delta、Jackknife、Bootstrap