S905L3机顶盒刷 Batocera / EmuELEC 适配的教程

适用对象:拿到一台晶晨 S905L3(GXL 家族,Mali-450)的安卓机顶盒,想刷成怀旧游戏机的你。
底层系统推荐 Batocera(本文主线路);EmuELEC 作为备选参考。
难度:★★★☆☆(需要抠原机 dtb,但全程可逆、不碰 eMMC 就基本砖不了)


〇、先看这三句话(避免白干活)

  1. S905L3 ≠ S905L3A。你这台是 GXL 老芯片(Mali-450),网上 90% 教程是 L3A(G12A / Mali-G31)。别直接抄 L3A 的 g12a_s905x2_2g.dtb,会黑屏。
  2. 原机是安卓完全没问题——安卓就是”原机 dtb”的母体,我们正是从安卓里把 dtb 抠出来借给游戏系统用。dtb 只描述硬件,跟跑什么系统无关。
  3. S905L3 社区现成 dtb 少,大概率要走”抠原机 dtb”这条路(本文路线 C)。别慌,工具已经备好。

一、需要的设备与软件(调试设备清单)

硬件(按”先试 SD 启动”准备,基本就够了)

物品用途备注
机顶盒 + 原装电源主角别用杂牌电源,电压不稳易变砖
HDMI 线 + 电视/显示器看画面必须能显示,否则没法判断卡在哪
TF/SD 卡 ≥16GB(建议 32G+,Class10)装游戏系统SD 启动最安全,不碰盒子内部存储
读卡器写卡—
网线 + 路由器联网S905L3 绝大多数是百兆口,WiFi 很多批次压根没硬件,直接用网线
盒子原装遥控器 / USB 键盘 + 手柄操作遥控器可能要 dtb 配对,先备个 USB 键鼠更稳

调试兜底硬件(SD 启动不行、要线刷或排错时再用)

物品用途备注
双公头 USB 线(A-A 公对公)线刷 eMMC带磁环抗干扰更好
Amlogic USB Burning Tool v2.2.x线刷装时勾”安装驱动”
短接镊子 / 晶晨短接神器 / 万用表触发 MaskROM找 eMMC CLK 短接点用
CH340/CP2102 TTL 串口 + 杜邦线 + 串口助手看启动日志排错强烈建议有,黑屏时它是唯一眼睛
HDMI 采集卡(可选)录启动画面没有就用眼睛看

软件(电脑端)

  • BalenaEtcher(写卡,免费)或 Win32DiskImager
  • ADB 工具(抠原机 dtb 用)
  • 7-Zip(拆官方固件包)
  • Amlogic Customization Tool(拆/改官方 img,可选)
  • 本工作区已有的 minidtc.py + dtbtool.sh(dtb 反编译/核对/精修,已就绪)

二、第一步:确认你的盒子(5 分钟,必做)

开机进安卓,按顺序确认:

1)开 USB 调试
设置 → 关于 → 连点”版本号”7 下 → 返回 → 开发者选项 → 打开”USB 调试”。
(部分运营商盒子藏得深或没这选项 → 直接跳到第 2 步用命令,或走”拆官方固件”拿 dtb)

2)连电脑,敲命令确认身份

adb devices                 # 先看到设备序列号才算连上
adb shell cat /proc/device-tree/amlogic-dt-id
# 例:gxlx2_p291_2g / gxl_p211_1g  → 带 gxl* 就是真 S905L3(GXL)
#     若显示 g12a* → 其实是 L3A,别看本文,去套 L3A 教程
adb shell cat /proc/cpuinfo | grep -i hardware
adb shell free -m           # 看内存是 1G 还是 2G(决定选哪个 dtb)

3)(可选但最准)拆机看丝印
撬开底盖,看主芯片表面印字:S905L3 / S905L3B / S905L3A,一眼定代。


三、选哪条路线?

你的盒子情况走哪条风险
已刷破解安卓 / 能 SD 启动路线 A(SD 卡)极低,不碰 eMMC
SD 启动试了不行,但能进安卓抠 dtb路线 A + 路线 C低
bootloader 锁死,只能线刷路线 B(线刷)中,可能变砖

怎么判断能不能 SD 启动:关机插好写好的卡,按住盒子 reset 小孔 上电,或进安卓终端 su 后 reboot update。能出 Batocera 开机画面 = 成功。


四、路线 A:SD 卡启动(最安全,首选)

步骤 1 · 下镜像

  • Batocera:选 GXL / S905 那代的镜像(下载页标 S905 / s905gen2,别选 s905gen3——那是 G12A/L3A 的)
  • EmuELEC(备选):选文件名带 S905(非 Amlogic-ng) 的版本;ng 版是给 G12A/L3A 的

步骤 2 · 写卡
BalenaEtcher 把 .img.gz 直接写进 TF 卡(自动解压)。写完弹”格式化”→ 取消,千万别格式化。

步骤 3 · 选 dtb(关键)
拔卡重插,进 boot/ 分区,把对应 dtb 改名为 dtb.img:

  • 2G 内存先试:gxl_p212_2g.dtb
  • 1G 内存 / 慢 eMMC:gxl_p212_1g_slowemmc.dtb 或 gxl_p281_1g.dtb
  • 百兆网卡优先带 _100M 后缀的;螃蟹 WiFi 选带 RealtekWiFi 的

通用 dtb 不一定 100% 匹配你这块板子(网卡/LED/IR 可能不对),所以下一步验证后大概率要换成”原机 dtb”(路线 C)。

步骤 4 · 启动

  • 方法一:安卓里「Update & Backup → Local → 选卡里 aml_autoscript.zip → Update」
  • 方法二:终端 su → reboot update
  • 方法三:关机,按住 reset 小孔再上电,出画面后松手

步骤 5 · 验证
能看到 Batocera 界面 = 成功。插手柄、插网线看能不能拿到 IP。

步骤 6 · 不对就走路线 C
网卡不亮 / LED 乱闪 / 遥控没反应 → 直接抠原机 dtb 替换(见下),比一个个试通用 dtb 快得多。


五、路线 C:抠原机 dtb(S905L3 大概率要这步,用我们工具)

原机 dtb 是厂商为这块板子定制的”黄金硬件说明书”,拿来用最稳。

1)从运行中的安卓抠(最方便)

# 有 root 时,直接 dd 出 dtb 分区再拉到电脑
adb shell su -c "dd if=/dev/block/by-name/dtb of=/sdcard/dtb.img"
adb pull /sdcard/dtb.img .
# 或者安卓 /boot 下本来就有:
adb pull /boot/dtb.img .

不确定分区名?adb shell su -c "ls -l /dev/block/by-name/" 找带 dtb 的。

2)没 root / ADB 关了 → 拆官方固件
下到这台盒子的原厂 .img,用 7-Zip 或 Amlogic Customization Tool 解包,里面直接有 dtb.img 或 dtb-<板型>.img。

3)核对它确实是这块板子的

./dtbtool.sh inspect dtb.img
# 看 model / compatible / 网卡 / LED 节点,确认对得上

4)用起来
把 dtb.img 改名覆盖进 SD 卡 boot/ 分区的 dtb.img,重启。

5)还要微调(网卡 PHY / LED / IR 脚位)就反编译改

python minidtc.py -d out.dts dtb.img        # 反编译 dtb -> out.dts
# 用编辑器改 out.dts(ethernet@ 的 phy-mode、补 leds、ir 节点等)
python minidtc.py out.dts -o dtb.img        # 回编 dts -> dtb,再覆盖进卡

六、路线 B:线刷 eMMC(兜底,bootloader 锁死才用)

⚠️ 风险提醒:线刷会动盒子内部存储,操作不当可能变砖。优先路线 A;只有 SD 启动彻底走不通才考虑。

  1. 拆机找短接点:eMMC CLK 测试点 / 主板上的 MaskROM 触点(型号不同位置不同,先搜”你的盒子型号 + 短接点”)。
  2. 双公头 USB 连电脑(插靠近网口的 USB 口),开 USB Burning Tool。
  3. 短接 → 上电 → 进 MaskROM(进度条到 5% 松开短接),导入镜像,勾”擦除 flash / 擦除 bootloader”,开始烧录。
  4. 卡 2% 报 Uboot 错 → 换低版本 Burning Tool(如 2.1.6)或换无加密签名固件;烧到 100% 但黑屏 → dtb 不对。
  5. Batocera 一般没有 eMMC 直刷包,这种盒子更建议坚持路线 A 的 SD 启动,或自己改造镜像。

七、排错速查表

现象原因解决
完全黑屏无输出dtb 不对 / 镜像代不对(选成 L3A 的)换回 GXL 代镜像 + 正确 dtb
出 Batocera logo 后卡死/重启dtb 部分不匹配抠原机 dtb(路线 C)
进系统但网口不亮网卡 PHY 不匹配抠原机 dtb,或换带 _100M 的 dtb
LED 乱闪 / 不亮LED 脚位不对路线 C 第 5 步改 dts
遥控器没反应IR 协议/dt b 不对先用 USB 键鼠,再去配对 IR
线刷卡 2%固件加密 / 驱动换 Burning Tool 版本,重装驱动
1G 内存跑得卡内存太小只跑 NES/SFC/MD/街机,别硬上 PSP/N64

八、安全与预期

  • 先备份:能 adb pull 出原厂分区就先备份一份,变砖了还能线刷救回。
  • 优先 SD 卡:不改 eMMC,拔卡就回安卓,零风险。
  • 性能预期:S905L3 是老四核 A53,1G 机型跑 Batocera 偏紧——NES/SFC/MD/GBA/街机流畅;PSP/N64/DC 以上会吃力,当”客厅轻量怀旧机”定位最现实。
  • 百兆网口 + 大概率无 WiFi:老实用网线,别跟无线较劲。

附:命令速查

# 确认身份
adb shell cat /proc/device-tree/amlogic-dt-id

# 抠原机 dtb
adb shell su -c "dd if=/dev/block/by-name/dtb of=/sdcard/dtb.img"
adb pull /sdcard/dtb.img .

# 核对 / 精修(本工作区工具)
./dtbtool.sh inspect dtb.img
python minidtc.py -d out.dts dtb.img      # 反编译
python minidtc.py out.dts -o dtb.img      # 回编
© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容