资讯动态

【RK3506实战-09】RK3506 + RTL8852BS(SDIO)WiFi6 驱动调试实战

发布时间:2026/9/28 14:17:27 来源:尧图企业网站定制
主控RK35063×A7 M0WiFiRTL8852BSSDIO 4bitWiFi6/802.11ax5G2.4G接口SDMMC1SDIO内核Linux 5.10 / 6.1Rockchip SDK系统Buildroot / Yocto / 原厂 Linux一、硬件原理与上电时序SDIO 必看1.1 引脚连接RK3506 ↔ RTL8852BSRK3506RTL8852BS说明SDMMC1_CLKCLKSDIO 时钟SDMMC1_CMDCMD命令线SDMMC1_D0~D3DATA0~34bit 数据GPIO_PB0WL_REG_ON模组电源使能3.3V高有效GPIO_PB1WL_HOST_WAKE主机唤醒 WiFi输入3.3VVDD供电GNDGND地ANT天线必须接否则无信号1.2 上电时序关键否则驱动加载失败拉低WL_REG_ON→ 延时 10ms拉高WL_REG_ON3.3V→ 延时 50ms初始化 SDIO 控制器 → 识别模组vendor0x024cdevice0x8852二、设备树 DTS 配置rk3506-evb.dts路径arch/arm64/boot/dts/rockchip/rk3506-evb.dts2.1 SDMMC1 控制器WiFi 用dtssdmmc1 { status okay; bus-width 4; /* SDIO 4bit */ max-frequency 150000000; /* 150MHzWiFi6稳定 */ non-removable; /* 板载不可热插拔 */ pinctrl-names default; pinctrl-0 sdmmc1_clk sdmmc1_bus; /* WiFi电源时序控制 */ mmc-pwrseq wifi_pwrseq; /* RTL8852BS 节点 */ wifi1 { compatible realtek,rtl8852bs; reg 1; wl-reg-on-gpios gpio RK_PB0 GPIO_ACTIVE_HIGH; wl-host-wake-gpios gpio RK_PB1 GPIO_ACTIVE_HIGH; }; }; /* WiFi电源时序节点必须 */ wifi_pwrseq: mmc-pwrseq { compatible rockchip,mmc-pwrseq; reset-gpios gpio RK_PB0 GPIO_ACTIVE_LOW; reset-delay-us 10000; /* 拉低10ms */ power-delay-us 50000; /* 拉高50ms */ };2.2 编译设备树make dtbs # 生成 rk3506-evb.dtb烧录后重启三、内核配置WiFi6 SDIO 依赖make menuconfig3.1 MMC/SD/SDIO 核心Device Drivers → MMC/SD/SDIO support → [*] MMC support → [*] SDIO support → [*] Rockchip SDMMC controller support3.2 无线协议栈WiFi6 必需Networking support → [*] Wireless → [*] cfg80211 → [*] mac80211 → [*] 802.11ax (WiFi6) support3.3 Realtek SDIO 驱动Device Drivers → Network device support → Wireless LAN → M Realtek wireless LAN support → M RTL8852BS SDIO WiFi6 adapter3.4 保存配置make savedefconfig cp defconfig arch/arm64/configs/rk3506_defconfig四、RTL8852BS 驱动编译RK35064.1 驱动源码获取Realtek 原厂驱动RK 平台适配版# 从Rockchip SDK获取推荐 cd external/rkwifibt/realtek/ git clone https://github.com/rockchip-linux/rkwifibt.git cd rkwifibt/realtek/RTL8852BS或第三方适配git clone https://gitcode.com/gh_mirrors/rt/rtl8852bs.git cd rtl8852bs4.2 修改 Makefile 适配 RK3506makefile# 平台选择 CONFIG_PLATFORM_I386_PC n CONFIG_PLATFORM_ARM_ROCKCHIP y # 内核路径改为你的SDK路径 KERNELDIR ? /home/xxx/rk3506-sdk/kernel ARCH ? arm64 CROSS_COMPILE ? /home/xxx/rk3506-sdk/prebuilts/gcc/linux-x86/arm/gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf/bin/arm-none-linux-gnueabihf-4.3 编译make clean make -j8 # 生成8852bs.ko五、固件部署RTL8852BS 必需5.1 固件文件固件fw_8852bs.binRealtek 原厂与驱动匹配路径/vendor/etc/firmware/或/lib/firmware/mkdir -p /vendor/etc/firmware/ cp fw_8852bs.bin /vendor/etc/firmware/六、驱动加载与初始化6.1 手动加载调试# 拷贝驱动到系统 cp 8852bs.ko /lib/modules/$(uname -r)/ depmod -a # 加载驱动 insmod 8852bs.ko # 查看加载状态 lsmod | grep 8852bs dmesg | grep -i 88526.2 正常日志成功标志rtw_8852bs: Driver initialization ok sdio 1:0001:1: wlan0: RTL8852BS WiFi6 registered6.3 查看 SDIO 设备cat /proc/mmc # 看到sdmmc1:0001: 024c:8852 (Realtek)七、wpa_supplicant 配置 WiFi6 联网7.1/etc/wpa_supplicant.confWiFi6 关键confctrl_interface/var/run/wpa_supplicant ap_scan1 countryCN network{ ssid你的WiFi6_SSID psk你的密码 key_mgmtWPA-PSK ieee80211w2 /* WiFi6/WPA3 强制开启 */ freq_list2412 5180 /* 2.4G 5G */ priority1 }7.2 启动 WiFi# 后台运行 wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant.conf # 查看连接状态 wpa_cli -i wlan0 status # 获取IP udhcpc -i wlan0 # 测试外网 ping 223.5.5.5八、WiFi6 特性验证8.1 查看网卡能力iw dev wlan0 infoWiFi6 成功标志supported wifi generations: 802.11b 802.11g 802.11n 802.11ac 802.11ax8.2 扫描 WiFiiw dev wlan0 scan | grep SSID九、常见问题与排错SDIO 高频坑问题 1dmesg 报sdio: error while initializing card原因上电时序错误WL_REG_ON 未按 10ms 低→50ms 高解决检查设备树wifi_pwrseq延时或硬件 GPIO 电平问题 2能识别 SDIO024c:8852但无 wlan0原因固件缺失 / 路径错解决dmesg | grep firmware→ 补fw_8852bs.bin问题 3驱动加载报symbol not found原因内核未开启CFG80211/MAC80211解决重新配置内核开启无线协议栈问题 4WiFi6 路由连不上只能连 5G原因未加ieee80211w2解决wpa_supplicant.conf 增加该配置问题 5WiFi 丢包、速率低原因SDIO 时钟低 / 天线差解决设备树设max-frequency150MHz接原厂天线远离干扰源十、量产优化开机自启在/etc/init.d/添加脚本上电自动加载8852bs.ko并启动 wpa_supplicant固件固化将fw_8852bs.bin编译进根文件系统降日志关闭驱动调试打印降低 CPU 占用电源管理配置 WiFi 休眠降低功耗总结RK3506 RTL8852BSSDIOWiFi6 调试核心严格上电时序WL_REG_ON 10ms 低→50ms 高设备树正确配置 SDMMC1 电源时序节点内核开启 SDIO WiFi6 协议栈匹配驱动与固件wpa_supplicant 加 ieee80211w2 开启 WiFi6整套方案稳定适配 RK3506 5.10/6.1 内核可直接用于工控、IoT 网关、智能家电量产。后续预告下一篇文章【RK3506实战-10】RK3506 Linux 接入 ESP32-SDIO WiFi 超详细实战原创不易如果本文对你有帮助欢迎点赞、收藏、关注三连有任何问题都可以在评论区留言我会及时回复。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑