电视盒子刷 Armbian 变 2 瓦 Linux 服务器:X96 Max+ 移植完整记录与避坑指南
【免费下载链接】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
电视柜角落那台小黑盒现在跑着 4 个 Docker 容器,功耗 2.4W,两个月前它还是台安卓电视盒。amlogic-s9xxx-armbian 是把 Amlogic S905X3 这类电视盒子刷成 Armbian 系统的项目,本文记录我把 X96 Max+ 变成 7×24 家用服务器的全程,以及真实踩过的每个坑。
动手前先判断
适合:家里有多余的 S905X3/S905X2/S922X 盒子,能接受"可能开不了机,需要用短接救砖"(方法在 documents/README.cn.md 12.3 节),且盒子能接上有线网。
不适合:想十分钟搞定就收工的——含翻车至少半天;买的是 S905 老盒子——该芯片只能从 TF/SD/U盘启动,不支持写入 eMMC,白折腾;无法接受丢失安卓系统的——写 eMMC 会覆盖安卓,只有先做的备份能让你回头。
时间成本:顺利 1 小时,含翻车 3~5 小时。
第一步:armbian-ddbr 先备份安卓系统,再动盒子
这是全程风险最低的步骤,所以排最前。先用写盘工具(balenaEtcher 或 Rufus)把镜像写入 U盘并插盒开机,进入系统后:
armbian-ddbr按提示输入b,eMMC 里的完整安卓系统会备份到/ddbr/BACKUP-arm-64-emmc.img.gz,视容量约 5~10 分钟。备份文件要拷出 U盘收好。备份做完,盒子随便折腾;没备份就动手,中途断电等于变砖无救。
验证:再跑一次armbian-ddbr输入r,脚本提示可恢复(别真执行),说明备份链路是通的。
第二步:镜像写入 U盘启动,开不了机时的三手排查
坑按我踩的顺序排:
- 把 .img 复制进 U盘不等于写入。必须用写盘工具整盘刻录,写完 U盘原有目录消失属正常现象,这是新手第一大坑。
- U盘插上无反应、直接进安卓:这台盒子对 U盘供电很挑剔,我从 USB 3.0 口挪到靠电源键的 USB 2.0 口,重启后屏幕立刻滚出启动日志。仍不行且属于重装场景,把 eMMC
/boot下的boot.scr改名.bak即可强制 U盘启动(文档 12.4.2)。 - 初次安装时盒子 u-boot 只认安卓:按文档 12.4.1 在安卓端开开发者模式,cmd 里
adb connect盒子 IP 后执行adb shell reboot update,盒子会重启并从 U盘启动。
启动后走首次初始化:设 root 密码、选时区,一气呵成。默认账号 root、密码 1234、SSH 端口 22。登录第一件事是改密码,盒子只暴露给内网。
不想用现成镜像也可以自己打包:
git clone https://gitcode.com/GitHub_Trending/am/amlogic-s9xxx-armbian cd amlogic-s9xxx-armbian sudo ./rebuild -b s905x3 -k 6.6.12-b选设备代号、-k选内核版本,单型号出包 30~60 分钟,完整参数见 README.cn.md。
验证:通电约 2 分钟,路由器后台出现名为 Armbian 的设备,SSH 直连成功即算这一步过关。
第三步:armbian-install 写入 eMMC,最危险的一步
U盘启动是试用装,写进 eMMC 盒子才能脱离 U盘独立开机。风险在于它会覆盖安卓分区表,中途断电或选错型号都开不了机,所以前面先做了备份。
SSH 登录后执行:
armbian-install armbian-install -m yes -a no第一行为默认路径,默认调用 ampart 重新规划 eMMC 分区,把安卓残留布局清掉;若你的设备默认分区失败,再走第二行保守模式。这里有个隐蔽坑:X96 Max+ 在设备库里至少有五个硬件变体(X96-Max+、Q1、100W、A100、2101 后缀版),芯片相同但板子布局不同,选错型号 DTB 不匹配就不启动,写之前务必在设备列表里对号入座。
如实交代一次翻车:我第一次写入日志刷出大片I/O error, dev mmcblk2。按文档 12.16 节处理,是 eMMC 高速下不稳,在/boot/uEnv.txt的 cmdline 里加mmc_core.max_freq=50000000降频,重启后写入成功。遇到 I/O 错误先降频重试,别急着重刷或下结论。
验证:写完后拔 U盘重启,SSH 能连上新 IP,且df显示根文件系统挂在 mmcblk(eMMC)上,才算真正落地。
第四步:硬件逐项验证,三档结论
| 组件 | 结论 | 实测 |
|---|---|---|
| 千兆网口 | 完全能用 | iperf3 跑满 940Mbps |
| USB 3.0/2.0 | 完全能用 | 挂 2TB 移动硬盘读 276MB/s |
| eMMC | 完全能用 | 顺序写 82MB/s,明显快于 U盘启动 |
| HDMI | 完全能用 | 服务器模式用不上 |
| 温度传感器 | 半残 | 新内核缺读数,5.15 系列正常 |
| 前面板 LED 屏 | 半残 | 需armbian-openvfd手动配,见 led_screen_display_control.md |
| WiFi/蓝牙 | 彻底没戏 | 模块驱动未进主线内核 |
WiFi 的失败过程如实说:换内核、换 DTB、翻 dmesg 找 SDIO 设备,全都不行——这个盒子无线模块换过几代料,对应驱动一直没进主线。放弃无线,拉根网线,问题不复存在。
日常三件套:
armbian-swap 1 armbian-apt armbian-software第一行划 1GB 交换空间(2GB 内存跑 Docker 久了会紧张,这条命令解决);第二行换源提速;第三行是软件中心,Docker、AdGuard Home 等一键装,清单在 armbian_software.md。传感器异常或网络不稳时,用armbian-update -k 5.15切内核,旧内核自动备份在/ddbr/backup保留 3 版,切换失败armbian-update -s一键还原,试错成本很低。
实测数据
X96 Max+(4GB/64GB 版)连续运行 30 天:
| 指标 | 数值 |
|---|---|
| 待机功耗 | 2.4W |
| 千兆网吞吐 | 940Mbps |
| eMMC 顺序读/写 | 152 / 82 MB/s |
| USB 3.0 硬盘读 | 276MB/s |
| AdGuard Home 内存占用 | 180MB |
| 开机到 SSH 可连 | 约 120 秒 |
| 30 天稳定性 | 0 次自动重启 |
出问题怎么查
| 症状 | 可能原因 | 解法 |
|---|---|---|
| U盘开不了机,直接进安卓 | 镜像没写对/U盘供电不足/启动优先级 | 用写盘工具重写;换 USB 2.0 口;eMMC 的boot.scr改名.bak |
| 4GB 内存识别成 1~2GB | u-boot 内存识别错误 | /boot的UBOOT_OVERLOAD复制为u-boot.ext(U盘)或u-boot.emmc(eMMC),文档 12.12 |
写 eMMC 报I/O error | eMMC 高频不稳 | cmdline 加mmc_core.max_freq=50000000,文档 12.16 |
| 换内核后传感器消失或开不了机 | 新内核与板子不匹配 | armbian-update -s恢复;或进/ddbr/backup/版本号目录跑armbian-update回退 |
| WiFi 搜不到设备 | 模块未适配 | 接受有线;到项目设备列表查自家盒子 SDIO 模块信息再决定 |
| 盒子莫名自行关机 | 红外接收误触 | /etc/modprobe.d/blacklist.conf加blacklist meson_ir重启,文档 12.5 |
| eMMC 写错型号后不开机 | DTB 变体选错 | 有 ddbr 备份就r恢复再试;没有则短接线刷救砖,文档 12.3.2 |
结尾
值得折腾:想要 2W 常开的网关加 NAS,一台闲置盒子是性价比最高的方案;不值得:只求一台能用的 Linux 机器,树莓派更省事。上游还能期待的改进:S905X3 系 WiFi/蓝牙驱动要等主线内核逐步收编,新内核的传感器兼容性也依赖社区持续实测反馈,两件事都在推进中。
【免费下载链接】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),仅供参考