RDKS100镜像写出

问题结论

Marcelo6151 指出的关键点正确:Miniboot 版本必须与 eMMC 镜像版本匹配。这是 Xburn 备份镜像烧录后无法启动的核心原因。


核心原因分析

问题点 说明
:cross_mark: Miniboot 版本不匹配 备份的 eMMC 镜像与当前板卡的 Miniboot 版本不一致,导致引导失败
:cross_mark: Xburn 备份模式错误 Xburn 可能只备份了分区数据,未包含完整的引导信息
:cross_mark: 启动开关配置错误 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:烧录前确认版本匹配

  1. 下载对应版本的 Miniboot
    RDK S100 固件下载页 获取与备份镜像同一版本的固件包

  2. 先烧录 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" → 镜像备份不完整

社区参考案例


建议

  1. 优先使用官方 D-Navigation 工具,避免第三方工具备份不完整
  2. 备份前先记录系统版本,确保烧录时 Miniboot 与镜像版本一致
  3. 如需批量部署,参考 RDK S100 环境批量移植方案

请补充以下信息以便进一步排查

  • 当前板卡的系统版本(cat /etc/version
  • Xburn 备份的具体操作步骤
  • 烧录失败时的串口日志(如有)