RDK X5与RDK X5 EVB是相同的吗?有什么区别呀

核心结论

不能直接使用 nand_disk.img 烧录到淘宝零售版 RDK X5!

根据社区多个案例(34988、35268),这是存储介质不匹配的典型问题:

镜像类型 目标存储 淘宝零售版 RDK X5
nand_disk.img SPI NAND Flash :cross_mark: 不支持
emmc_disk.img eMMC :white_check_mark: 支持

问题分析

1. 硬件差异

RDK X5 EVB(官方开发板):

  • 有 NAND 和 eMMC 两个版本
  • SDK 中提供多种编译配置

淘宝零售版 RDK X5:

  • 仅支持 eMMC 启动(板载 eMMC 存储)
  • 不支持 NAND 启动模式
  • 本质是 RDK X5 Module + 官方底板 的完整形态

2. 为什么 board_x5_evb_nand_debug_config.mk 编译的镜像不能用?

# 你使用的配置
board_x5_evb_nand_debug_config.mk
# ↓ 编译出
nand_disk.img (512 MiB, 4 KiB page)
# ↓ 烧录到
eMMC 设备
# = ❌ 分区表/文件系统格式不匹配

后果:

  • 烧录工具可能报错(如 34988 中的 Uart xmodem download failed)
  • 即使烧录成功,系统也无法启动(invalid extent block 错误)

正确解决方案

方案 A:使用官方预编译镜像(推荐)

适用场景:应用开发、快速上手

# 1. 下载官方 eMMC 镜像(Ubuntu 22.04)
# 地址:https://archive.d-robotics.cc/downloads/os_images/rdk_x5/
# 选择最新版,如 v3.4.1 或 v3.5.0

# 2. 烧录方式(二选一)
# 方式 1:SD 卡启动 + 在板烧录到 eMMC
# 方式 2:使用 RDK Studio 工具(如果支持 UMS 模式)

# 3. 参考官方教程
# https://developer.d-robotics.cc/rdk_doc/Quick_start/install_os/rdk_x5

方案 B:本地编译 eMMC 版本镜像

适用场景:需要系统定制、底层开发

# 1. 确认 SDK 版本
# 使用 V1.1.2 Module SDK 或更新版本

# 2. 选择正确的编译配置
cd <sdk_root>
./bd.sh build horizon/x5/board_x5_evb_jammy_debug_config.mk
# 或
./bd.sh build horizon/x5/board_x5_evb_jammy_release_config.mk

# ⚠️ 关键:必须选择带 jammy 的配置(Ubuntu 22.04)
# 不要选择 board_x5_evb_nand_xxx_config.mk

# 3. 打包镜像
./bd.sh pack

# 4. 输出文件应该是
# disk_emmc.img 或类似的 eMMC 镜像

方案 C:获取零售版专用源码

现状:官方没有单独发布淘宝零售版的 SDK,但:

  1. RDK X5 Module SDK 可以通用(34476 确认)
  2. 编译时选择 EVB 配置 + eMMC 选项 即可
  3. 零售版 = Module + 官方底板,硬件一致

源码下载:

https://archive.d-robotics.cc/downloads/sdk/LNX6.1.83_PL5.1_V1.1.2/

烧录步骤(eMMC 版本)

方法 1:SD 卡中转烧录(最稳定)

# 1. 准备 SD 卡(8GB+)
# 用 Rufus 将官方镜像或自编译镜像烧录到 SD 卡

# 2. 从 SD 卡启动
- 插入 SD 卡
- 串口连接(115200)
- 上电,U-Boot 阶段按任意键中断
- 设置从 SD 卡启动:
  setenv bootcmd 'mmc dev 1; fatload mmc 1:1 ${kernel_addr_r} Image; booti ${kernel_addr_r} - ${fdt_addr_r}'
  saveenv
  reset

# 3. 在板烧录到 eMMC
- 系统启动后登录
- 执行官方烧录脚本(参考文档)
- 通常是 dd 命令或专用工具

# 4. 切换回 eMMC 启动
  setenv bootcmd 'mmc dev 0; fatload mmc 0:1 ${kernel_addr_r} Image; booti ${kernel_addr_r} - ${fdt_addr_r}'
  saveenv
  reset

# 5. 拔掉 SD 卡,重启验证

方法 2:RDK Studio 工具(如果支持)

# 1. 下载 RDK Studio
# https://developer.d-robotics.cc/rdk_doc/Tools/rdk_studio

# 2. 连接板子(USB + 串口)

# 3. 选择 eMMC 存储介质
# ⚠️ 不要选择 NAND!

# 4. 加载 disk_emmc.img 烧录

关键检查点

检查项 正确值 错误值
镜像类型 disk_emmc.img nand_disk.img
编译配置 board_x5_evb_jammy_xxx_config.mk board_x5_evb_nand_xxx_config.mk
烧录工具存储选择 Emmc Nand
BOOT 引脚 下拉(eMMC 模式) 浮空(NAND 模式)

下一步建议

  1. 立即停止使用 nand_disk.img,避免损坏 eMMC 分区表

  2. 确认你的开发需求:

    • 应用开发 → 直接用官方 Ubuntu 镜像
    • 系统定制 → 用 Module SDK 编译 eMMC 版本
  3. 如果已经烧录失败:

  4. 参考社区资源:


需要我帮你查找具体的编译命令或烧录脚本吗? 请告诉我你当前的 SDK 版本和具体卡在哪一步。