问题结论
Marcelo6151 指出的关键点正确:Miniboot 版本必须与 eMMC 镜像版本匹配。这是 Xburn 备份镜像烧录后无法启动的核心原因。
核心原因分析
| 问题点 | 说明 |
|---|---|
| 备份的 eMMC 镜像与当前板卡的 Miniboot 版本不一致,导致引导失败 | |
| Xburn 可能只备份了分区数据,未包含完整的引导信息 | |
| eMMC/SD 卡启动开关位置与烧录目标不一致 |
解决方案
步骤 1:检查 Miniboot 版本
在板卡能启动时(使用原始官方镜像),先记录 Miniboot 版本:
# 查看当前系统版本
cat /etc/version
# 查看 Miniboot 版本(串口或 U-Boot 日志)
# 上电时串口打印中会显示 Miniboot 版本号
步骤 2:正确备份镜像
不要使用 Xburn 的分区备份功能,改用以下方式:
# 方式一:使用 dd 命令完整备份(推荐)
sudo dd if=/dev/mmcblk0 of=rdk_s100_full_backup.img bs=4M status=progress
# 方式二:使用官方 hbupdate 工具备份
sudo hbupdate backup --output rdk_s100_backup.img
步骤 3:烧录前确认版本匹配
-
下载对应版本的 Miniboot
从 RDK S100 固件下载页 获取与备份镜像同一版本的固件包 -
先烧录 Miniboot,再烧录 eMMC 镜像
1. 断电,配置 DFU 模式(参考官方手册) 2. 使用 D-Navigation 先烧录 Miniboot 3. 再烧录 eMMC 镜像 4. 配置启动开关为 eMMC 模式 [D13:D12]=[0:1] 5. 上电启动
步骤 4:串口调试排查
如果仍无法启动,通过串口查看报错:
# 串口工具连接(如 MobaXterm、minicom)
# 波特率:115200
# 典型报错及含义:
# - "ERROR: Firmware training failed" → Miniboot 版本不匹配
# - "Unable to find boot device" → 启动开关配置错误
# - "Partition table corrupted" → 镜像备份不完整
社区参考案例
- 系统启动失败,Miniboot烧录报错 - 写入超时问题
- 关于RDK S100采用uboot方式烧录镜像的故障 - 完整烧录流程
- RDKS100套件开机无显示且刷机失败 - 驱动与版本问题
建议
- 优先使用官方 D-Navigation 工具,避免第三方工具备份不完整
- 备份前先记录系统版本,确保烧录时 Miniboot 与镜像版本一致
- 如需批量部署,参考 RDK S100 环境批量移植方案
请补充以下信息以便进一步排查:
- 当前板卡的系统版本(
cat /etc/version) - Xburn 备份的具体操作步骤
- 烧录失败时的串口日志(如有)