旧盒子复活记:Amlogic S905 刷入 Armbian Linux 的 4 类日志信号与 3 条红线
【免费下载链接】amlogic-s9xxx-armbianSupports running Armbian on Amlogic, Allwinner, and Rockchip devices. Support a311d, s922x, s905x3, s905x2, s912, s905d, s905x, s905w, s905, s905l, rk3588, rk3568, rk3399, rk3328, h6, etc.项目地址: https://gitcode.com/GitHub_Trending/am/amlogic-s9xxx-armbian
大多数盒子刷不动,不是镜像问题,是接线前少看了主板上一行丝印。S905 / S905L3 系列的电信、移动旧机顶盒(TY1608、E900V22E、M302A 这类),接好串口看日志、选对设备树,就能刷入 Armbian,变成一台功耗几瓦的微型 Linux 服务器。整机改造就卡四类信号:无输出、进安卓、DTB 报错、eMMC 写不进去。下面逐一定位。
接线前先问自己 3 个问题
资格判定只有硬分支,不答是就不开工:
问题 1:芯片在支持列表内吗?在 model_database.conf 中按盒子型号或 SoC(s905x / s905l3 / s905l3b / s912)核对。答是→继续;答否→收手,即使强行启动,网络和显示也可能残缺。
问题 2:内存有 1GB 吗?1GB 跑 Armbian + Docker 够用,装图形桌面就免谈。答是→继续;答否(低于 512MB)→收手。
问题 3:eMMC 有物理损坏吗?原系统能正常读写、插拔无异常→继续;曾出现无法开机、反复重启→收手,写入错误多半是颗粒寿命问题,软件解决不了。
口诀:芯片在表内,内存 1G 起,eMMC 不坏,才值得刷。
物料清单:接错一根线比缺镜像更贵
硬件:
| 名称 | 用途 | 踩坑提醒 |
|---|---|---|
| USB 转 TTL 模块(CH340G 等) | 读取串口启动日志 | TX/RX 必须交叉接;接反不烧板,但一定读不到日志 |
| USB 2.0 闪存盘 8GB 以上 | 承载镜像与系统 | S905L3B 对 USB 3.0 盘兼容性差,2.0 盘更稳 |
| 杜邦线 3 根、拆机工具 | 焊接 UART 测试点 | 主板丝印找 TXD / RXD / GND 三个点 |
软件与仓库文件:
| 名称 | 用途 | 踩坑提醒 |
|---|---|---|
| Armbian 镜像(对应 SoC) | 系统本体 | 完整说明见 documents/README.cn.md |
| 写盘工具(dd / balenaEtcher) | 写入 U 盘 | 写盘会清空整盘,别选错盘符 |
| 终端软件(PuTTY 等) | 查看串口日志 | 115200、8 数据位、无校验、无流控,四样缺一不可 |
| uEnv.txt / boot.cmd | 核对引导参数与 DTB | 路径错一个字符,就静默回落安卓 |
信号 A:通电后终端完全无输出
现象:串口终端一片空白,HDMI 黑屏。
最可能原因:TTL 接线或终端参数错了——日志根本没送到你屏幕上,不代表盒子没在启动。
- 核对接线:模块 TX 接主板 RXD,模块 RX 接主板 TXD,GND 对 GND。
- 核对终端参数:115200、8N1、无流控。
- 断电重插杜邦线,重新上电观察。
验证:终端开始滚动 U-Boot 日志即接线成功;看到Armbian字样的启动画面即引导文件读取正常。
信号 B:U-Boot 检测到 U 盘,随后静默进安卓
现象:日志出现 USB 扫描记录,随后无新输出,屏幕直接进入原安卓界面。
最可能原因:该盒子 U-Boot 默认不优先从 USB 启动。
- 按任意键打断进 U-Boot 命令行。
- 参照 s905_autoscript.cmd 里的流程,手动
fatload加载内核zImage、uInitrd和 DTB,再booti启动,命令以脚本原文为准,别凭空拼。 - 手动启动成功后保存环境变量,让下次直接走 U 盘。
验证:终端出现内核日志并进入 Armbian 登录提示,说明手动引导链路通了。
信号 C:加载内核后报 DTB 错误或静默卡住
现象:日志显示FDT not found,或在加载阶段直接静默回落 eMMC 安卓。
最可能原因:DTB 选错或uEnv.txt路径拼写错误,这是 S905L3B 最常见的翻车点。
- 打开 U 盘启动分区
uEnv.txt,确认格式为:
LINUX=/zImage FDT=/dtb/amlogic/meson-gxl-s905l3b-m302a.dtb APPEND=root=LABEL=ROOTFS console=ttyAML0,115200n8- 进 U 盘
dtb/amlogic/目录核对实际文件名与 FDT 行逐字符一致;TY1608 同芯片方案对应meson-gxl-s905l3b-m302a.dtb,别拿隔壁方案的e900v22e顶替。 - 个别机型需启用
extlinux/extlinux.conf引导,处理方式见 documents/README.cn.md 的「启动引导文件的选择」一节。
验证:重启后日志打印出你指定的 DTB 路径,内核正常进入启动流程。
信号 D:系统起来了,写 eMMC 反复 I/O error
现象:U 盘启动一切正常,执行armbian-install或拷贝文件时报I/O error, dev mmcblk。
最可能原因:DTB 中 eMMC 频率偏高,控制不稳。
- 查只读标记:
cat /sys/block/mmcblk0/ro,输出 1 说明被锁,先找该型号的解锁方法。 - 在
uEnv.txt的APPEND行追加mmc_core.max_freq=50000000限制 eMMC 最大频率,重启再写。 - 仍失败则换用较新镜像和安装脚本重试;连续失败且控制器层报错→停手。
验证:写入过程无 I/O 报错、进度正常走完。
安装落盘的 3 个高危点
操作前:备份与验盘是最后的机会——执行armbian-ddbr备份原安卓系统(输出/ddbr/BACKUP-arm-64-emmc.img.gz,妥善保存),再用df -h确认 U 盘 ROOTFS 分区大小符合预期。
操作中:只盯两个高危动作——目标选 eMMC(通常/dev/mmcblk0),别选成 U 盘;写入全程不断电,原安卓分区会被覆盖,中途断电就是砖。
操作后:拔掉 U 盘独立开机,路由器里找到设备名Armbian,SSH 用 root / 1234 登录;能不带 U 盘进系统,才算改造真正完成。
三条红线:触到任意一条就停
- 换过 U 盘和 USB 口后,U-Boot 日志始终检测不到 USB 设备。
- eMMC 被标记只读(
/sys/block/mmcblk0/ro为 1),且该型号无已知解锁方法。 - 内核对该型号 PHY 无支持,内核日志反复 PHY 探测失败,网络永远不通,而用途又离不开网络。
接对线 → 看对日志 → 选对 DTB → 落对盘,哪一步卡住,串口日志都会直接告诉你。
【免费下载链接】amlogic-s9xxx-armbianSupports running Armbian on Amlogic, Allwinner, and Rockchip devices. Support a311d, s922x, s905x3, s905x2, s912, s905d, s905x, s905w, s905, s905l, rk3588, rk3568, rk3399, rk3328, h6, etc.项目地址: https://gitcode.com/GitHub_Trending/am/amlogic-s9xxx-armbian
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考