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已经连接成功了。
并且能够正常上网