问题分析
根据串口日志,核心问题是:
1. SD 卡容量异常
mmcblk1: mmc1:d555 SD032 30.6 MiB
SD 卡只识别到 30.6 MiB,但 OriginCar 镜像远大于此,说明烧录不完整或SD 卡有问题。
2. 根分区无法挂载
VFS: Cannot open root device "mmcblk1p2" or unknown-block(179,2): error -6
Kernel panic - not syncing: VFS: Unable to mount root fs
系统找不到 mmcblk1p2 分区,导致启动失败。
3. SPI NAND 启动也失败
ERROR: Failed to checksum image id=1 (-97)
板载 Flash 的镜像校验失败,可能是烧录过程中断或镜像损坏。
解决方案
步骤 1:检查 SD 卡烧录
# 1. 确认 SD 卡实际容量(插入电脑查看)
# 2. 重新下载官方镜像,校验 MD5/SHA256
# 3. 使用正确方式烧录(推荐 balenaEtcher 或 dd)
# Linux 烧录示例(假设镜像为 origincar.img,SD 卡为 /dev/sdX)
sudo dd if=origincar.img of=/dev/sdX bs=4M status=progress conv=fsync
sync
步骤 2:验证烧录结果
烧录后检查分区:
sudo fdisk -l /dev/sdX
# 应该看到多个分区,包括 boot 和 rootfs
步骤 3:尝试从 SD 卡启动
- 插入烧录好的 SD 卡到 RDK X5
- 上电,观察串口日志
- 确认是否识别到完整容量的 SD 卡
步骤 4:如果 SD 卡启动成功,修复 SPI NAND
# 登录系统后,使用官方工具烧录到 SPI NAND
# 具体命令参考官方文档
可能原因
| 原因 | 概率 | 排查方法 |
|---|---|---|
| SD 卡烧录不完整 | 高 | 检查烧录工具日志,确认写入字节数 |
| SD 卡质量差/假卡 | 中 | 更换品牌 SD 卡(推荐 SanDisk/Kingston) |
| 镜像文件损坏 | 中 | 重新下载,校验哈希值 |
| SD 卡槽接触不良 | 低 | 重新插拔,清洁触点 |
建议
- 更换 SD 卡:使用 Class 10 及以上、容量≥16GB 的品牌卡
- 更换烧录工具:推荐使用 balenaEtcher
- 检查镜像完整性:下载后校验官方提供的哈希值
社区有类似案例,建议搜索关键词查看最新解决方案:
根据你提供的串口日志,问题非常明确:系统无法从 SD 卡启动,导致内核崩溃并反复重启。
核心问题定位
从日志中可以看到两个关键错误:
1. 内存区域重叠(启动初期)
[ 0.000000] OF: reserved mem: OVERLAP DETECTED!
[ 0.000000] ion_reserved_rdk overlaps with ion_reserved@A4100000
这说明设备树配置有问题,但系统仍尝试继续启动。
2. 无法挂载根文件系统(致命错误)
[ 4.127546] /dev/root: Can't open blockdev
[ 4.131658] VFS: Cannot open root device "mmcblk1p2" or unknown-block(179,2): error -6
[ 4.139684] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(179,2)
这是系统无法启动的直接原因:内核找不到 SD 卡上的根文件系统分区(mmcblk1p2)。
3. 后续启动循环失败
ERROR: Failed to checksum image id=1 (-97)
ERROR: boot mode 5 main bl2 fail and switch to bakeup1…
系统进入启动失败循环,最终进入 DFU/XModem 下载模式。
解决方案(按优先级排序)
方案 1:更换 SD 卡(最可能的原因)




社区多个案例反馈特定 SD 卡与 X5 兼容性差,即使同一张卡在 X3 上能用,在 X5 上也会失败。
操作步骤:
- 准备一张新的 SD 卡(建议 8-64GB,Class 10 以上)
- 使用官方推荐工具烧录:
- BalenaEtcher(首选)
- Win32 Disk Imager
- 避免使用 Rufus(不稳定)
- 烧录完成后安全弹出SD 卡
- 插入 X5 重新测试
推荐 SD 卡品牌:闪迪、三星、金士顿(避免杂牌)
方案 2:重新烧录镜像(确保完整性)



操作步骤:
# 1. 重新下载官方镜像(验证 MD5/SHA256)
# 下载地址:https://archive.d-robotics.cc/downloads/os_images/rdk_x5/
# 2. 使用 BalenaEtcher 重新烧录
# 烧录前格式化 SD 卡:使用 SD Card Formatter 官方工具
# https://www.sdcard.org/downloads/formatter/
# 3. 烧录完成后检查分区
# 电脑上应该能看到 boot 分区(约 256MB)和 rootfs 分区
关键检查点:
- 烧录工具是否完成写入(无报错)
- SD 卡分区结构是否完整
- 尝试降级到 3.3.3 稳定版 测试(排除新版本兼容性问题)
方案 3:升级 Miniboot(关键!)


旧版 miniboot 可能无法正确识别新 SD 卡或新系统镜像。
参考教程:
升级步骤:
- 下载最新 miniboot 固件
- 按照官方文档通过 USB 烧录 miniboot
- 再烧录系统镜像
- 重新测试启动
方案 4:最小系统测试 

排除外设干扰:
- 只保留:SD 卡 + 电源(5V5A)+ 串口
- 拔掉:HDMI、USB 设备、摄像头、网线等
- 观察串口输出是否变化
快速排查清单
| 检查项 | 操作 | 预期结果 |
|---|---|---|
| SD 卡烧录 | 用 BalenaEtcher 重新烧录 | 分区完整可见 |
| SD 卡兼容性 | 更换另一张 SD 卡 | 能正常启动 |
| 镜像版本 | 尝试 3.3.3 稳定版 | 排除新版本 bug |
| Miniboot | 升级到最新版本 | 提高兼容性 |
| 电源 | 使用 5V5A 官方电源 | 供电稳定 |
建议操作顺序
1. 换一张 SD 卡(优先!)
2. 用 BalenaEtcher 烧录 3.3.3 稳定版镜像
3. 如仍失败,升级 miniboot
4. 串口持续监控启动日志
相关社区案例
- X5 升级 (最小启动镜像) 失败…求助 - 用户换 SD 卡后解决
- X5 烧录完系统绿灯常亮,橙灯闪烁 - SD 卡兼容性问题
- rdkx5 烧录后打不开 - 类似问题
需要补充的信息
如果以上方案都无效,请提供:
- SD 卡品牌和容量
- 烧录工具和镜像版本
- 是否升级过 miniboot
- 板卡硬件版本(X5 RDK V1.0 还是其他版本)
建议先在社区搜索类似问题,或发帖时附上完整串口日志,会有更多开发者帮助排查!![]()