S905L3B 机顶盒装 Armbian:完整改造实操
【免费下载链接】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
amlogic-s9xxx-armbian 把 S905L3B 机顶盒改造成一台完整的 Armbian 服务器。整机功耗只有几瓦,Docker、Jellyfin、qBittorrent 常开不心疼电,Debian/Ubuntu 软件源全部通用。
🔧 设备画像与工具清单:S905L3B 改造前备齐这些东西
| 硬件 | 典型规格 | 改造时真正要留意的点 |
|---|---|---|
| CPU | 四核 Cortex-A53 @1.8GHz | 被动散热,长时间满载会降频,注意散热 |
| 内存 | 1GB(部分机型 2GB) | 跑 Docker 前建议先开 zram 防 OOM |
| 存储 | 8GB eMMC(部分机型 16GB) | 写 eMMC 前先备份原安卓系统 |
| 网络 | 百兆为主,个别机型千兆 | 装完先确认网卡速率,别按千兆规划 |
| USB | USB 2.0 x2 | 部分盒子只有特定 USB 口支持启动 |
硬件工具:
- USB 转 TTL 调试模块(CH340G 小板即可)+ 杜邦线 4 根:启动出问题时唯一的排查窗口
- 8GB 及以上 U 盘:2.0 高速盘,容量越小启动兼容性通常越好
- USB 双公头线 + 曲别针:极端情况要短接主板恢复点线刷,提前备着
- 精密螺丝刀一套:拆机找 UART 焊点用
软件工具:
- Armbian 镜像:从项目 Releases 下载 s905l3b 板型版本
- 镜像写入工具:BalenaEtcher 或直接用 dd
- 终端软件:PuTTY、MobaXterm 或任意 SSH 客户端,系统默认端口 22
- ADB 工具:初次安装时要让盒子从 U 盘启动,靠它
🧭 动手前的检查:芯片型号与 dtb 怎么确认匹配
这一步卡住的人最多。盒子 SoC 必须在项目支持范围内,S905L3B 是支持的,常见型号 E900V21D/E、E900V22D/E、CM201-1、CM311-1、TY1608、MGV2000 等都在列表里。但同 SoC 不同型号,内存、网口、eMMC 的接法都可能不一样,描述这些差异的文件叫 dtb(设备树,你可以理解为告诉内核"这台具体机型硬件怎么接线"的说明书)。dtb 对不上的典型后果有三种:直接起不来、起来了但没网络没磁盘、或者卡在 uboot 循环重启。
从 U 盘启动后,用这两条命令确认系统当前用的 board 和 dtb 对不对:
cat /etc/armbian-release grep FDT /boot/uEnv.txt第一条是 board 代号,FDT 那行是当前加载的 dtb 文件名。如果你的型号不在默认构建列表里,下载同 SoC 家族的镜像,把 boot 分区里/boot/uEnv.txt的 FDT 行改成对应你机型的 dtb 即可,对照表在 documents/README.cn.md 的 12.1 章节。
💡 dtb 不匹配时只需要动 FDT 这一行,boot 分区其他文件不用碰。
💾 从烧镜像到系统跑起来:制作启动 U 盘并安装到 eMMC
六步,每步只做一件事。
第一步,拿镜像。两条路:直接下载 Releases 里预编译的 s905l3b 版本(文件名形如Armbian_*_s905l3b_*.img.gz);需要自定义内核版本或分区大小才在本地编译,仓库克隆后按 Ubuntu 24.04 环境装依赖再执行 rebuild:
git clone --depth 1 https://gitcode.com/GitHub_Trending/am/amlogic-s9xxx-armbian cd amlogic-s9xxx-armbian sudo apt-get update -y sudo apt-get full-upgrade -y sudo apt-get install -y $(cat compile-kernel/tools/script/ubuntu2404-build-armbian-depends) sudo ./rebuild -b s905l3b -k 6.6.12产物在build/output/images目录,-k后面的版本号换成你要的内核。不需要定制的跳过这步,下预编译即可。
第二步,写 U 盘。Linux 下一行 dd 搞定:
⚠️
/dev/sd<盘符>必须是 U 盘,先用lsblk确认路径。写错设备等于抹掉那块盘的全部数据,dd 没有撤销。
sudo dd if=<镜像文件>.img of=/dev/sd<盘符> bs=4M status=progress conv=fsync第三步,接 TTL 调试线(建议,非必须)。拆机后找主板上标 UART、TTL 或 CONSOLE 的焊点,一般是 TX、RX、GND 三个。接法务必交叉:调试模块 TX 接主板 RX,调试模块 RX 接主板 TX,GND 接 GND。终端参数 115200 波特率、8 数据位、1 停止位、无校验。接上之后能完整看到 uboot 和内核启动日志,后面万一不启动,这条线就是救命稻草。
第四步,U 盘启动。正常情况下插好 U 盘直接上电就能启动,USB 启动优先于 eMMC。例外是盒子还在安卓里的初次安装:盒子本身得被切进 USB 启动状态。在盒子上开启开发者模式(设置 → 关于本机 → 版本号连点 5 次),打开 USB 调试,然后在电脑端连上:
adb connect <盒子IP> adb shell reboot update盒子重启后就会从 U 盘走。如果还是不启动,别急着往下走:先重新校验写入是否完整,再换 USB 口试,部分盒子只有一个口支持启动。
第五步,写入 eMMC。SSH 登录(默认用户 root,密码 1234),先跑armbian-ddbr,按提示输入 b,把/ddbr/下生成的BACKUP-arm-64-emmc.img.gz拷到别处保存——这是原安卓系统的完整备份。
⚠️
armbian-install会整块覆盖 eMMC,原系统直接消失。跳过上一步备份的话,出问题只能短接恢复点重刷出厂固件。
armbian-install交互式提示里选 eMMC 目标、确认默认分区方案,等写完自动重启。
第六步,验证。拔掉 U 盘重新上电,能 SSH 进去就说明 eMMC 启动成功,再跑一遍"动手前的检查"里那两条命令确认 board 和 dtb。如果黑屏且连不上,先看 TTL 输出卡在哪,多数情况还是 dtb 不匹配。
⚙️ 装完之后的三件事:zram 怎么配、存储怎么清、BBR 怎么开
zram:1GB 内存别让它爆
1GB 内存跑起 Docker 就很紧张,开一个压缩交换的 zram,把 swappiness 压低让内核尽量用真内存:
apt install -y zram-config sysctl -w vm.swappiness=10 free -h要长期生效把vm.swappiness=10追加进/etc/sysctl.conf。项目另外提供armbian-swap 1建磁盘交换分区(参数单位 GB),磁盘余量够的话可以两者都开。
存储:8GB eMMC 别让它满
apt clean && apt autoremove -y journalctl --vacuum-size=100M先把 apt 缓存和 journal 日志清一遍。系统装完 eMMC 只剩几个 GB,数据类业务必须外移:用blkid查到 U 盘 UUID,在/etc/fstab里加一行UUID=<uuid> /mnt/usb ext4 defaults,nofail 0 2,下载目录和媒体库都指到/mnt/usb下。
网络:静态 IP + BBR
echo 'net.ipv4.tcp_congestion_control=bbr' >> /etc/sysctl.conf sysctl -p内核不带 bbr 就换 cubic。常开服务器建议固定 IP:在/etc/network/interfaces写静态配置,documents/README.cn.md 12.7 章节有现成示例,把 IP 改成你的网段即可。盒子多是百兆网卡,吞吐别按千兆预期。
📦 装什么、怎么装:armbian-software 软件中心用法
系统里预置了软件中心,登录盒子执行armbian-software,输入软件 ID 就能一键安装,容器镜像、依赖、端口都是自动配好的;先执行armbian-software -u可同步最新软件列表。常见场景对应的 ID:
| 场景 | 工具 | 安装命令或 ID |
|---|---|---|
| 容器平台 | Docker | ID 101 |
| 容器可视化管理 | Portainer(端口 9443) | ID 102 |
| 家庭媒体服务器 | Jellyfin(端口 8096) | ID 107 |
| BT 下载 | qBittorrent(端口 8080) | ID 105 |
| 智能家居中枢 | HomeAssistant(端口 8123) | ID 108 |
| 多设备文件同步 | Syncthing(端口 8384) | ID 113 |
| 系统实时监控 | Netdata(端口 19999) | ID 119 |
完整列表(Plex、NextCloud、frp、Node-RED 等)见 documents/armbian_software.md。
🩺 出了问题往哪查:S905L3B 高频故障与排查命令
- U 盘无法启动,TTL 无输出:先
lsblk看 U 盘分区是否被识别,再看 TTL 里 uboot 走到哪一步。最常见原因是镜像没写完整或 U 盘兼容性差,重写一次或换小容量 U 盘。 - 起来了但没网络、没磁盘:
ip a看网卡,lsblk看设备。最常见原因是 dtb 不匹配,把/boot/uEnv.txt的 FDT 行换成正确 dtb(对照 12.1 章节的表)再重启。 - 更新内核后系统起不来:执行
armbian-update -s恢复备份内核。备份在/ddbr/backup,保留最近 3 个版本,不用重装。 - 红外遥控误触关机:红外接收模块默认启用,
/etc/modprobe.d/blacklist.conf加一行blacklist meson_ir再重启即可,方法见文档 12.5 章节。 - 想退回安卓:
armbian-ddbr输入 r,前提是装系统时留了备份文件。
📚 延伸阅读:项目内置文档指路
- documents/README.cn.md:主使用文档,dtb 对照表(12.1)、USB 启动设置(12.4)、网络配置(12.7)、恢复安卓(12.3)都在这。
- documents/armbian_software.md:软件中心完整清单与 ID 说明,装服务前先来这里选。
- compile-kernel/README.cn.md:自定义内核编译指南,要加自己的驱动或补丁时看。
- documents/led_screen_display_control.md:LED 数码屏显示控制,部分型号装完顺手可以玩一下。
装到这一步,先跑一条free -h确认 zram 已经生效,然后从上表挑一个 ID 把第一个服务装上。
【免费下载链接】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),仅供参考