☰
BSP调试#06:WiFi-aic8800 (RK3588)
2026/10/22 1:50:11 网站建设 项目流程

正文

本合集的是我当初调试 RK3588 平台时的原始笔记——只保留了那些踩过坑的问题接口,没出过问题的内容全删掉了。文章框架如下:

其中,**“调试过程”**章节可能有点意思(记录了我踩过的坑),其他章节无关紧要。

硬件设计

对照原理图找到如下 3 个关键点:

PCIe 接口的 WiFi 基本就有两种:贴在板子上模块及M2接口(这里方案正是),但它们关键点是一样的:

VBAT/VCC3V3:总的3.3V电源,一般是长供电;

WIFIREGON:芯片的复位/使能管脚,开机保持高电平;

PCIE PERST L/PERSTO:芯片PCIe部分的复位管脚,DTS对应的PCIE节点下务必配置正确。

软件配置

dts 配置

移植驱动

将 WiFi 模组厂商提供的驱动源码aic8800_fdrv拷贝至./external/rkwifibt/drivers/目录进行编译。具体步骤如下:

(1)驱动 SDK 源码放置/external/rkwifibt/drivers/目录下;

(2)添加驱动固件至/external/rkwifibt/firmware/aic8800 目录下。

(3)修改device/rockchip/common/scripts/post-wifibt.sh脚本内容,具体如下。

调试过程

PCIe WiFi 识别流程

(1)WiFi 模组(AIC8800)通过 PCIe 接口连接到主机,这个接口负责传输数据和控制信号。

(2)PCIe 接口的初始化是由主机的 PCIe 控制器完成的。模组上电后,主机通过 PCIe 配置空间识别设备,这个就是通过 lspci 看到设备的原因。

(3)WiFi驱动程序的作用是初始化模组并提供接口给操作系统,以及通过PCIE接口将固件(固件用来控制硬件行为)传输到模组内部的存储器中。

确认 PCIe 是否识别模块

该 WiFi 模块为 PCIe 接口,首先确认 PCIe 接口是否能正常识别到 WiFi 模块(旧系统)。

当 AIC8800D80P 上电时 lspci会侦测到Bus 003 Device 007:ID a69c:8d80

insmod 加载驱动

要先确认 fw 文件已拷贝至/lib/firmware。

**【问题描述】:**无法 insmod 加载驱动,log 打印如下。

**【问题分析】:**从报错分析,显然是 PCIE 的 Memory 空间不够,导致驱动加载失败。

**【问题解决】:**修改 PCIe 的 Memory 地址大小。

驱动加载成功,生成wlP4p65s0 节点。

功能验证

查看 ifconfig 节点

扫描周围可见的无线网络

iw dev wlP4p65s0 scan | grep SSID

配置并启动 Wi-Fi 连接 。

wpa_passphrase Chen-2.4G-0 123456987 > /etc/wpa_supplicant.conf wpa_supplicant -B -i wlP4p65s0 -c /etc/wpa_supplicant.conf

可看到已成功连接至无线网络,并能正常ping通外网。

iw dev ping www.baidu.com -I wlP4p65s0

(完)


需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询