基于主板:5800-2ATA405 处理器:Amlogic S905L2 无线模块:Realtek RTL8822BS的 Armbian 实践
实践结果:成功进入 Armbian,WiFi 可用,USB 可用,蓝牙可用(已修复)
本实践所有内容均以上述硬件为准
摘要
- 适用硬件:5800-2ATA405 主板 + Amlogic S905L2 处理器 + Realtek RTL8822BS 无线模块。
- 工具准备:双公头 USB 线、短接工具、Amlogic 烧录工具,以及 Rufus 或 balenaEtcher 刻录工具。
- 安装流程:烧录底包 → 刻录 Armbian 到 U 盘 → 通过【外置系统启动器】从 U 盘启动 → 执行
armbian-install。 - 实践结论:成功进入 Armbian,WiFi、USB 可用,蓝牙不可用。
- 高频坑:黑屏多因
uEnv.txt中设备树FDT不匹配;紧急模式多因root=仍指向 U 盘或fstab挂载配置错误。 - 收尾确认:
lsblk中/挂载在mmcblk2p2即已脱离 U 盘,无需重复执行armbian-install;reboot卡死可物理断电后重新上电。
整体流程图
准备
工具:双公头 USB 线一根,短接工具
访问 Ophub 的 GitHub:https://github.com/ophub
如果设备无法从 U 盘启动,那就使用烧录工具进行烧录一个系统
工具合集:
底包:android_tv_mgv2000-cw_s905l2.tar.xz
烧录工具:amlogic_usb_burning_tool_v2.2.4_and_driver.tar.xz
刻录 U 盘工具 Rufus:https://rufus.ie/
系统镜像:Armbian_26.11.0_amlogic_s905l2_noble_6.18.54_server_2026.10.01.img.gz
S905L2+RTL8822BS 蓝牙修复包:S905L2+RTL8822BS 蓝牙修复包
烧录系统:
进入内核工具发布页:https://github.com/ophub/kernel/releases/tag/tools
下载烧录工具:amlogic_usb_burning_tool_v2.2.4_and_driver.tar.xz
找到符合的底包:android_tv_mgv2000-cw_s905l2.tar.xz
开始烧录:
- 安装烧录工具,使用短接工具或者将设备短接,并使用双公头连接电脑和设备。(烧录工具显示【连接成功】即可)
- 当正确连接并显示【连接成功】后,及时把短接工具断开
- 选择烧录工具的左上角的【文件】-【导入镜像包】,选择刚才下载的底包,稍等片刻
- 当包导入完成,即可点击【开始烧录】,然后等待烧录完成即可。
- 当烧录工具烧录完成,会提示【烧录完成】并且进度条会变成绿色的
- 注意:烧录完成后,先点击【停止】再拔掉 USB 线
- 完成底包烧录,可以进行开机(注意,首次开机 HDMI 可能会显示有问题,如果超过3分钟保持亮屏的黑屏状态,可以直接拔掉电源重启,如果显示不完整,也可以进行拔掉电源进行重新开机)
- 此时,底包烧录完成。
下载 Armbian
首次尝试可以先进入 Armbian OpHub 主页查看是否支持。Armbian OpHub 主页
准备工具:刻录 U 盘工具
- Rufus: https://rufus.ie/
- balenaEtcher: https://etcher.balena.io/
(两者二选一即可,也可以使用树莓派的U盘刻录工具)
下载系统:
根据芯片的型号和想要刷入的系统版本进行检索即可。
releases 中的包,Tag 是系统的名称,如 trixie、resolute、noble。
此处使用 noble 版本:Armbian_noble_arm64_server_2026.10 【933f3f7】。
系统镜像:Armbian_26.11.0_amlogic_s905l2_noble_6.18.54_server_2026.10.01.img.gz
下载完成后,使用刻录工具(此处使用 Rufus)进行刻录 U 盘。
安装系统与首次启动
启动底包系统
直接开机即可,记得链接屏幕进行查看
记得链接键盘作为操作设备
注意:如果遇到显示不正常,请直接拔电重启。
首次启动
注意:首次启动可能需要静置一段时间,或者进行简单的操作。第一,等待 root 管理器完成初始化,等待【外置系统启动器】App 图标显示。等该 App 完成显示后,点击该应用,然后执行一系列的授权操作。会提示你进行重启,第一次的时候直接让它重启进入底包系统即可。
进入系统后,插入之前刻录好的 U 盘,选择【外置系统启动器】允许即可。
注意:此处可能需要稍作等待
等待系统进行开机操作即可。
进入系统后,如果没啥问题,就可以直接执行armbian-install。
遇到的问题与解决方法
1. 黑屏无法开机
开机自检提示设备树不对
解决:使用电脑进入刻录U盘,将uEnv.txt 中的
FDT=/dtb/amlogic/meson-gxl-s905x-x7-5g.dtb改为FDT=/dtb/amlogic/meson-gxl-s905x-p212.dtb
2. 进入了 Armbian Emergency Mode(紧急维护模式)
日志提示:EXT4-fs re-mounted readonly
/dev/mmcblk2p2 分区文件系统出错,系统自动把根分区只读挂载保护数据,要求输入 root 密码进入维护 shell,但是密码验证失败 Login incorrect
在 Give root password for maintenance 输入你的 root 密码,进入 root shell
先执行磁盘检查修复(这里出错的分区是 mmcblk2p2)
执行fsck -y /dev/mmcblk2p2
⚠️ 如果提示设备正在挂载,先执行 umount /dev/mmcblk2p2 再 fsck
修复完成后,重新挂载为可读写,然后重启
mount-oremount,rw /reboot3.修复蓝牙
资源文件:S905L2+RTL8822BS 蓝牙修复包
相关文档:Github issues
法一:开机后执行
下载
S905L2+RTL8822BS 蓝牙修复包然后在系统内 执行下面内容
aptupdate&&aptinstall-y--no-install-recommends bluezbashinstall.shreboot法二:刷机前
解决:
- 使用电脑进入刻录U盘,将
S905L2+RTL8822BS 蓝牙修复包里面的 文件meson-gxl-s905x-p212-rtl8822bs.dtb放入到 U 盘 中 目录/boot/dtb/amlogic下- 然后将 uEnv.txt 中的
FDT=/dtb/amlogic/meson-gxl-s905x-x7-5g.dtb改为FDT=/dtb/amlogic/meson-gxl-s905x-p212-rtl8822bs.dtb
遇到的其他问题:
问题排查路径
问题速查表
| 问题 | 关键现象 | 解决要点 |
|---|---|---|
| 黑屏无法开机 | 开机自检提示设备树不对 | 修改uEnv.txt的FDT=/dtb/amlogic/meson-gxl-s905x-p212.dtb |
| 紧急维护模式 | 根分区只读,Login incorrect | fsck -y /dev/mmcblk2p2,必要时检查fstab与默认启动目标 |
| uEnv.txt 未指向 eMMC | 拔掉 U 盘后找不到根分区 | 在uEnv.txt中设置root=/dev/mmcblk2p2并指定正确设备树 |
克隆报Bad message (74) | /usr/share/doc读取坏块 | 使用rsync -aAXx克隆,自动跳过损坏说明文档 |
Kernel panic | 找不到init或/dev/console | 补建/dev,proc,sys,tmp,run,boot,mnt,media并拷贝/dev/* |
| BOOT 超时 | 卡在等待dev-disk-by-label-BOOT.device | mkfs.vfat -n BOOT /dev/mmcblk2p1,覆盖重写/etc/fstab |
| 无 failed 服务仍进紧急模式 | systemctl --failed输出 0 | systemctl set-default multi-user.target |
| rc-core 日志打断输入 | 屏幕弹出two consecutive events日志 | 直接按 Enter 刷新提示符 |
reboot命令卡死 | 无法软重启 | sync后物理断电重启 |
是否需要执行armbian-install | /已挂载mmcblk2p2 | 不需要重复执行,避免破坏当前分区与引导 |
### 问题 1:修改引导参数配置 (`uEnv.txt`) 指向内置 eMMC- 现象与需求:系统从 U 盘启动后,需要将引导文件拷贝至内置 eMMC 的第一分区 (
mmcblk2p1),并让内核在启动时挂载内置 eMMC 的第二分区 (mmcblk2p2) 作为根目录,同时加载正确的设备树驱动硬件。 - 原因分析:U 盘默认配置中
root=通常指向 U 盘的 UUID 或LABEL=ROOTFS。如果不修改直接复制到 eMMC,拔掉 U 盘后内核会因找不到根分区而无法启动。 - 解决方案:
挂载mmcblk2p1后,编辑其中的uEnv.txt文件,配置内容如下:LINUX=/zImage INITRD=/uInitrd # 1. 指定 5800-2ATA405 (S905L2) 适用的设备树文件 FDT=/dtb/amlogic/meson-gxl-s905x-p212.dtb # 2. 启动参数:将 root= 强制指向内置 eMMC 的根分区 /dev/mmcblk2p2 APPEND=root=/dev/mmcblk2p2 rootflags=data=writeback rw rootfstype=ext4 console=ttyAML0,115200n8 console=tty0 no_console_suspend consoleblank=0 fsck.fix=yes fsck.repair=yes net.ifnames=0 cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory swapaccount=1
问题 2:手动克隆根文件系统报Bad message (74)错误
- 故障现象:在 U 盘系统中向 eMMC 根分区 (
mmcblk2p2) 复制系统文件时,读取到/usr/share/doc/目录下的部分文件报错Bad message (74)。 - 原因分析:U 盘闪存介质在存放系统离线说明文档 (
/usr/share/doc) 的扇区存在轻微读取坏块或文件系统损坏。该目录仅包含说明文档,不影响 Linux 核心运行。 - 解决方案:使用
rsync工具进行系统级克隆,保持软链接、权限和属性完整,利用rsync的容错机制自动跳过损坏的说明文档:# 1. 格式化并挂载 eMMC 根分区mkfs.ext4-F/dev/mmcblk2p2mkdir-p/tmp/emmc_rootmount/dev/mmcblk2p2 /tmp/emmc_root# 2. 清空旧文件并使用 rsync 克隆完整系统rm-rf/tmp/emmc_root/*rsync-aAXx/ /tmp/emmc_root/--exclude={/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*,/media/*,/boot/*}
问题 3:开机触发Kernel panic - not syncing: Attempted to kill init!
- 故障现象:尝试从内置 eMMC 启动时,内核加载后瞬间崩溃报错
Attempted to kill init!,或提示找不到/dev/console等基础节点。 - 原因分析:
- 早期使用普通
cp命令破坏了现代 Linux 的合并目录软链接结构(Merged-usr,如/bin -> /usr/bin)。 - 克隆系统时排除了
/dev/*,导致 eMMC 根分区内的/dev目录为空,内核在初始化阶段(initramfs切换至真实根目录时)缺少必要的静态设备节点。
- 早期使用普通
- 解决方案:在 eMMC 根分区中补建虚拟文件系统挂载点,并将当前活跃系统的
/dev设备节点完整拷贝过去:mkdir-p/tmp/emmc_root/{dev,proc,sys,tmp,run,boot,mnt,media}cp-a/dev/* /tmp/emmc_root/dev/
问题 4:开机卡dev-disk-by-label-BOOT超时并提示systemd-remount-fs失败
- 故障现象:内核成功引导进入系统初始化阶段,但长时间卡在等待
dev-disk-by-label-BOOT.device,随后报错并掉入紧急维护模式 (You are in emergency mode)。 - 原因分析:
- eMMC 的引导分区 (
mmcblk2p1) 格式化时未设置BOOT卷标。 - 克隆自 U 盘的
/etc/fstab中包含自动挂载LABEL=BOOT到/boot以及挂载原 U 盘 UUID 的条目,与内置 eMMC 实际分区结构冲突,导致systemd挂载失败并触发保护机制。
- eMMC 的引导分区 (
- 解决方案:
- 为引导分区补充
BOOT卷标并拷入引导文件:mkfs.vfat-nBOOT /dev/mmcblk2p1 - 使用覆盖模式(单大于号
>)彻底重写/etc/fstab,仅保留 eMMC 根分区的挂载配置(注意避免使用>>追加模式导致旧错误配置残留):
验证命令:执行cat<<'EOF'>/etc/fstab/dev/mmcblk2p2 / ext4 errors=remount-ro,noatime,nodiratime 0 1 EOFcat /etc/fstab确保文件中只有上述唯一一行配置。
- 为引导分区补充
问题 5:fstab修复后且无失败服务,开机依然进入紧急模式(Emergency Mode)
- 故障现象:登录紧急模式后,执行
systemctl --failed检查发现输出为0 loaded units listed.(没有任何服务报错失败),但每次重启依然直接进入Give root password for maintenance界面。 - 原因分析:系统的
systemd默认启动目标(Default Target)软链接被锁定在了emergency.target(紧急模式),未能指向正常的多用户模式。 - 解决方案:将系统的默认启动目标重新设置为标准多用户命令行模式(
multi-user.target):
执行后会提示:systemctl set-default multi-user.targetsyncCreated symlink /etc/systemd/system/default.target → /usr/lib/systemd/system/multi-user.target.
问题 6:屏幕间歇性弹出rc rc1: two consecutive events of type space
- 故障现象:在终端输入命令或等待时,屏幕突然打印一行内核日志
[ 204.689139] rc rc1: two consecutive events of type space,打断当前正在输入的命令显示。 - 原因分析:这是晶晨 (Amlogic) 电视盒子主板自带的红外遥控接收器驱动 (
rc-core) 输出的内核调试信息,完全无害。它只是在屏幕显示层面把你正在敲的字符截断了,并不影响实际输入缓存。 - 解决方案:直接按一下键盘上的回车键 (Enter)即可刷新出干净的
root@armbian:~#命令行提示符。
问题 7:执行reboot命令后系统卡死,无法自动重新引导
- 故障现象:在终端执行
sync和reboot后,系统打印完卸载日志或停留在命令行,光标闪烁或画面定格,无法完成软重启。 - 原因分析:晶晨 S905L2 等电视盒子主板的常见问题。由于非公版硬件底层复位控制器驱动的限制,Linux 内核在切断系统服务后无法触发主板硬件热复位。
- 解决方案:
- 每次重启前务必先执行
sync命令,确保内存中的数据完全写入 eMMC。 - 当画面卡在
reboot最后阶段时,拔掉电视盒子的电源插头(物理断电),等待 5 秒放空电容电量后重新插电开机。
- 每次重启前务必先执行
问题 8:独立启动进入系统后,是否还需要执行armbian-install?
- 状态确认:物理断电重启后,系统顺利进入
Welcome to Armbian OS!初始化向导(设置密码、选择 Shell)。执行lsblk查看分区状态如下:NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS mmcblk2 179:0 0 7.3G 0 disk ├─mmcblk2p1 179:1 0 511M 0 part └─mmcblk2p2 179:2 0 6.7G 0 part / - 结论与说明:
- 绝对不需要再执行
armbian-install! lsblk显示/根目录已经直接挂载在mmcblk2p2上,证明系统已经 100% 脱离 U 盘并在内置 eMMC 上独立运行。再次运行安装脚本反而会破坏当前已经配置好的分区与引导。
- 绝对不需要再执行