开发板:Avaota A1(Allwinner T527,kernel 5.15.154-BSP) | WiFi 芯片:AIC8800(模块标号 AW869C) | 镜像:headless(无桌面)
一、问题现象
Avaota A1 无桌面(headless)镜像,WiFi 完全不可用。
ip a
看不到 wlan0 接口(只有 lo / eth0 / eth1,且均 DOWN)。
rfkill
只列出蓝牙项,没有 wlan;
rfkill unblock wifi
无任何效果。
启动日志中 SDIO 主机对 WiFi 总线探测超时(cmd 5 / cmd 52 RTO),WiFi 芯片无响应。
二、产生原因
板载 WiFi 芯片为 AIC8800(模块标号 AW869C),电源由 sunxi-rfkill 驱动统一管理:
wlan_regon
=GPIO205/PG13,配合 AXP 稳压器 aldo3(3.3V)与 bldo1(1.8V)。
headless 镜像默认boot-on=0,开机不给 WiFi 上电,芯片始终处于断电状态。
WiFi 驱动(aic8800_bsp/aic8800_fdrv)与固件(/lib/firmware/aic8800d80/)虽已预装在镜像中,但未配置开机自加载。
驱动不加载 → 无法触发
aicbsp_platform_power_on
给芯片上电 → SDIO 总线枚举不到设备→ 没有 wlan0。芯片没电与驱动没载互为因果,WiFi 无法工作。
三、解决办法
核心:让 aic8800 驱动开机自加载 —— 驱动加载时会自行调用平台接口给芯片上电。
步骤 1:创建 /etc/modules-load.d/aic.conf,写入两行: aic8800_bsp aic8800_fdrv步骤 2:重启(sudo reboot)步骤 3:重启后驱动自动加载,链路自动打通: aicbsp_platform_power_on → sunxi-rfkill: wlan power on success → mmc2: new ultra high speed SDR104 SDIO card(SDIO 枚举到芯片) → 加载固件 aic8800d80/fmacfw_8800d80_u02.bin → ieee80211 phy0: New interface create wlan0步骤 4:连接 WiFi(必须 sudo): sudo nmcli device wifi connect <SSID> password <密码>
四、改动清单
五、验证结果
wlan0 接口 UP,获得 IP(如 10.93.202.174)。
ping 外网(8.8.8.8)三发三中,约 270ms,网络通畅。
六、持久性与注意事项
/etc/modules-load.d/aic.conf 与 nmcli 连接配置均持久,重启自动生效,无需每次手动操作。
连接 / 管理 WiFi 必须使用sudo(普通用户会报 "Not authorized to controlnetworking")。
设备树 boot-on 修改非必需:驱动加载时自行上电,boot-on显示值不影响最终结果。