Device Information | 设备信息
- SOC: S905L3B
- Model TY1608
Armbian Version | 系统版本
- Kernel Version: 6.12.95[e.g. 6.18.16]
- Release: [Armbian_26.08.0_amlogic_s905l3b-e900v22e_trixie_6.12.95
Describe the bug | 问题描述
- RTL8822CS WiFi 不工作
症状: rfe 255 isn't supported → failed to setup chip efuse info
根因: 芯片 efuse 出厂未烧录,所有配置字段读出来全是 0xFF(即 rfe=255),驱动无法匹配到合法的 RFE 配置表。
修复涉及的文件:
| 文件 |
作用 |
来源 |
/boot/dtb/amlogic/meson-gxl-s905l3b-m302a.dtb |
设备树,降低 SDIO 时钟频率 |
修改后部署 |
/lib/modules/6.12.95-ophub/kernel/drivers/net/wireless/realtek/rtw88/rtw_core.ko |
核心模块,补丁后重新编译 |
lwfinger/rtw88 源码 |
/lib/modules/6.12.95-ophub/kernel/drivers/net/wireless/realtek/rtw88/rtw_sdio.ko |
SDIO 传输层 |
同上 |
/lib/modules/6.12.95-ophub/kernel/drivers/net/wireless/realtek/rtw88/rtw_8822c.ko |
RTL8822C 芯片驱动 (含 rfe fallback 补丁) |
同上 |
/lib/modules/6.12.95-ophub/kernel/drivers/net/wireless/realtek/rtw88/rtw_8822cs.ko |
RTL8822CS SDIO 适配层 |
同上 |
| 文件链接:https://github.com/Lucky-WZL/TY1608-ARMBIAN-RTL8822CS-/releases/tag/2026-7-17 |
|
|
修复步骤
① 降低 SDIO 时钟频率
原始 DTB 中 SDIO (mmc@70000) 频率为 100MHz。因 TV 盒子 PCB 走线质量有限,降频改善信号完整性:
- 第一次尝试:100MHz → 50MHz(仍有 SDIO CRC 错误 -84)
- 最终稳定:100MHz → 25MHz(max-frequency = <0x17d7840>)
**② 编译补丁内核模块**
由于芯片 efuse 空白,需在驱动中增加 fallback 逻辑。修改 `rtw8822c.c` 中 `rtw8822c_read_efuse()` 函数:
```c
efuse->rfe_option = map->rfe_option;
+ if (efuse->rfe_option == 0xFF)
+ efuse->rfe_option = 0; /* fallback for blank efuse */
拉取rtw88驱动源码编译
替换内核模块并 depmod -a,重启生效。
验证
# 确认 SDIO 频率
cat /sys/kernel/debug/mmc0/clock
# 期望输出: 25000000
# 确认驱动加载无报错
dmesg | grep -E '8822|rfe|efuse'
# 不应出现 "rfe 255 isn't supported" 或 "sdio read32 failed"
# 扫描 WiFi
nmcli dev wifi list
正常出现wifi名称列表
- NetworkManager WiFi 插件不加载
(注意此问题是我个人原因导致,因为装armbian之前,U盘插在安卓系统导致1023归属权问题,在系统内可以修复,只是所有文件都要改归属不建议,还是重新做系统比较好)
症状: nmcli dev wifi list 不输出任何内容,nmcli dev status 显示 wlan0 为 unavailable,NM 日志报:
plugin: skip invalid file .../libnm-device-plugin-wifi.so: file has invalid owner (should be root)
manager: (wlan0): 'wifi' plugin not available; creating generic device
根因: ophub 编译的 Armbian 镜像中,/usr/lib/aarch64-linux-gnu/NetworkManager/ 下插件文件的 owner 为 uid 1023 而非 root,NM 拒绝加载。
修复:
chown -R root:root /usr/lib/aarch64-linux-gnu/NetworkManager/
systemctl restart NetworkManager
注意:如果重装系统需要重新执行此操作,因为镜像本身就有此问题。
ophub Armbiam 镜像存在系统性缺陷:
/usr/lib/aarch64-linux-gnu/NetworkManager/ 下插件文件 owner 为 1023
/usr/libexec/ 下 nm-daemon-helper 等文件 owner 为 1023
- 可能还有其他目录
重装系统后记得执行:
find /usr /etc /opt -nouser -o -nogroup -exec chown root:root {} \; 2>/dev/null
Device Information | 设备信息
Armbian Version | 系统版本
Describe the bug | 问题描述
症状:
rfe 255 isn't supported→failed to setup chip efuse info根因: 芯片 efuse 出厂未烧录,所有配置字段读出来全是 0xFF(即 rfe=255),驱动无法匹配到合法的 RFE 配置表。
修复涉及的文件:
/boot/dtb/amlogic/meson-gxl-s905l3b-m302a.dtb/lib/modules/6.12.95-ophub/kernel/drivers/net/wireless/realtek/rtw88/rtw_core.ko/lib/modules/6.12.95-ophub/kernel/drivers/net/wireless/realtek/rtw88/rtw_sdio.ko/lib/modules/6.12.95-ophub/kernel/drivers/net/wireless/realtek/rtw88/rtw_8822c.ko/lib/modules/6.12.95-ophub/kernel/drivers/net/wireless/realtek/rtw88/rtw_8822cs.ko修复步骤
① 降低 SDIO 时钟频率
原始 DTB 中 SDIO (mmc@70000) 频率为 100MHz。因 TV 盒子 PCB 走线质量有限,降频改善信号完整性:
拉取rtw88驱动源码编译
替换内核模块并
depmod -a,重启生效。验证
正常出现wifi名称列表
(注意此问题是我个人原因导致,因为装armbian之前,U盘插在安卓系统导致1023归属权问题,在系统内可以修复,只是所有文件都要改归属不建议,还是重新做系统比较好)
症状:
nmcli dev wifi list不输出任何内容,nmcli dev status显示 wlan0 为unavailable,NM 日志报:根因: ophub 编译的 Armbian 镜像中,
/usr/lib/aarch64-linux-gnu/NetworkManager/下插件文件的 owner 为 uid 1023 而非 root,NM 拒绝加载。修复:
ophub Armbiam 镜像存在系统性缺陷:
/usr/lib/aarch64-linux-gnu/NetworkManager/下插件文件 owner 为 1023/usr/libexec/下nm-daemon-helper等文件 owner 为 1023重装系统后记得执行:
find /usr /etc /opt -nouser -o -nogroup -exec chown root:root {} \; 2>/dev/null