news 2026/10/30 5:00:52

S905L2+RTL8822BS刷Armbian成功实录

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
S905L2+RTL8822BS刷Armbian成功实录


基于主板: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卡死可物理断电后重新上电。

整体流程图

准备:工具与底包

烧录底包

刻录 Armbian 镜像到 U 盘

启动底包系统

【外置系统启动器】从 U 盘启动

执行 armbian-install

断电重启进入 Armbian

验证 lsblk:/ 挂载 mmcblk2p2

准备

工具:双公头 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

开始烧录:
  1. 安装烧录工具,使用短接工具或者将设备短接,并使用双公头连接电脑和设备。(烧录工具显示【连接成功】即可)
  2. 当正确连接并显示【连接成功】后,及时把短接工具断开
  3. 选择烧录工具的左上角的【文件】-【导入镜像包】,选择刚才下载的底包,稍等片刻
  4. 当包导入完成,即可点击【开始烧录】,然后等待烧录完成即可。
  5. 当烧录工具烧录完成,会提示【烧录完成】并且进度条会变成绿色的
  6. 注意:烧录完成后,先点击【停止】再拔掉 USB 线
  7. 完成底包烧录,可以进行开机(注意,首次开机 HDMI 可能会显示有问题,如果超过3分钟保持亮屏的黑屏状态,可以直接拔掉电源重启,如果显示不完整,也可以进行拔掉电源进行重新开机)
  8. 此时,底包烧录完成。

下载 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 /reboot

3.修复蓝牙

资源文件:S905L2+RTL8822BS 蓝牙修复包
相关文档:Github issues

法一:开机后执行

下载S905L2+RTL8822BS 蓝牙修复包然后在系统内 执行下面内容

aptupdate&&aptinstall-y--no-install-recommends bluezbashinstall.shreboot

法二:刷机前

解决:

  1. 使用电脑进入刻录U盘,将S905L2+RTL8822BS 蓝牙修复包里面的 文件meson-gxl-s905x-p212-rtl8822bs.dtb放入到 U 盘 中 目录/boot/dtb/amlogic下
  2. 然后将 uEnv.txt 中的FDT=/dtb/amlogic/meson-gxl-s905x-x7-5g.dtb改为FDT=/dtb/amlogic/meson-gxl-s905x-p212-rtl8822bs.dtb

遇到的其他问题:

问题排查路径

是

否

是

否

是

是

否

是

否

是

否

否

启动/运行异常

是否黑屏/设备树不对?

修改 uEnv.txt 的 FDT 为 meson-gxl-s905x-p212.dtb

是否进入 Emergency Mode?

lsblk 中 / 是否挂载 mmcblk2p2?

重写 fstab,仅保留 /dev/mmcblk2p2 挂载

systemctl --failed 是否为 0?

systemctl set-default multi-user.target

输入是否被 rc-core 日志打断?

按 Enter 刷新提示符

reboot 后是否卡死?

sync 后物理断电重启

检查 uEnv.txt、rsync、/dev 节点等问题

问题速查表

问题关键现象解决要点
黑屏无法开机开机自检提示设备树不对修改uEnv.txt的FDT=/dtb/amlogic/meson-gxl-s905x-p212.dtb
紧急维护模式根分区只读,Login incorrectfsck -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.devicemkfs.vfat -n BOOT /dev/mmcblk2p1,覆盖重写/etc/fstab
无 failed 服务仍进紧急模式systemctl --failed输出 0systemctl 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等基础节点。
  • 原因分析:
    1. 早期使用普通cp命令破坏了现代 Linux 的合并目录软链接结构(Merged-usr,如/bin -> /usr/bin)。
    2. 克隆系统时排除了/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)。
  • 原因分析:
    1. eMMC 的引导分区 (mmcblk2p1) 格式化时未设置BOOT卷标。
    2. 克隆自 U 盘的/etc/fstab中包含自动挂载LABEL=BOOT到/boot以及挂载原 U 盘 UUID 的条目,与内置 eMMC 实际分区结构冲突,导致systemd挂载失败并触发保护机制。
  • 解决方案:
    1. 为引导分区补充BOOT卷标并拷入引导文件:
      mkfs.vfat-nBOOT /dev/mmcblk2p1
    2. 使用覆盖模式(单大于号>)彻底重写/etc/fstab,仅保留 eMMC 根分区的挂载配置(注意避免使用>>追加模式导致旧错误配置残留):
      cat<<'EOF'>/etc/fstab/dev/mmcblk2p2 / ext4 errors=remount-ro,noatime,nodiratime 0 1 EOF
      验证命令:执行cat /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.targetsync
    执行后会提示:Created 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 内核在切断系统服务后无法触发主板硬件热复位。
  • 解决方案:
    1. 每次重启前务必先执行sync命令,确保内存中的数据完全写入 eMMC。
    2. 当画面卡在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 上独立运行。再次运行安装脚本反而会破坏当前已经配置好的分区与引导。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/30 4:58:57

免费声音克隆工具哪个好用?AI配音与真人音色复刻指南

如果你想找免费的声音克隆工具&#xff0c;首先要区分两种需求&#xff1a;一种是直接选择现成的AI音色进行配音&#xff0c;另一种是用获得授权的真人声音制作个性化语音。前者更适合日常短视频&#xff0c;后者更适合希望长期保持个人声音特色的创作者。选择时不能只看声音像…

作者头像 李华
网站建设 2026/10/30 4:57:48

记一次Oracle 归档进程卡死怎么去有效排查

目录 一、快速判断与根本原因 第一步&#xff1a;检查 ASM 磁盘组剩余空间&#xff08;如果是 ASM 归档&#xff09; 第二步&#xff1a;检查归档目标状态与错误信息 第三步&#xff1a;检查 FRA&#xff08;快速恢复区&#xff09;与 ASM 磁盘组 第四步&#xff1a;确认归档进…

作者头像 李华
网站建设 2026/10/30 4:57:46

06|DeepSeek Harness 的动态上下文,能直接当作长期记忆吗?

给 DeepSeek Harness 注册一段文字,下次请求时能够读到它,是否就实现了长期记忆?还没有。首先要分清两个动作:把资料保存下来,以及在需要时把资料读出来。 动态上下文解决的是后一个问题。本文用 @deepseek-ai/dsh-system-prompt@0.2.1-rc.2 做一个文件读取实验,观察文件…

作者头像 李华
网站建设 2026/10/30 4:57:29

数据库内核手记 06:索引不止 B+ 树——过滤器、跳表与 Trie

前两篇解释了 B 树怎样维护有序结构&#xff0c;以及多个线程如何安全地访问它。但索引设计还有另一条思路&#xff1a;有时&#xff0c;我们不需要先找到记录&#xff0c;只需要尽快确认“这里没有”&#xff1b;有时&#xff0c;数据全在内存里&#xff0c;复杂的页分裂也未必…

作者头像 李华