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已經連接成功了。
并且能夠正常上網