Skip to content

TY1608成功驱动RTL822CS,其他型号可以使用这个思路 #3595

Description

@Lucky-WZL

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 | 问题描述

  1. RTL8822CS WiFi 不工作

症状: rfe 255 isn't supportedfailed 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名称列表

  1. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions