跳到主要内容

3.2 RDK X5 Module

RDK X5 Module出厂前已安装ubuntu 22.04,若在开发过程中有需要重新安装系统,请参考如下内容

系统烧录

RDK X5 Module 目前提供Ubuntu 22.04系统镜像,有desktop,server两个版本可供选择;

desktop:带有桌面的Ubuntu系统,可以外接屏幕、鼠标操作;

server:无桌面的Ubuntu系统,可以通过串口、网络远程连接操作。

镜像下载

RDK X5 Module出厂已经烧写测试版本系统镜像,为确保使用最新版本的系统,建议参考本文档完成最新版本系统镜像的烧写

点击 下载镜像,进入版本选择页面,选择最新版本目录,进入系统下载页。

下载完成后,需要解压出Ubuntu系统镜像文件,如ubuntu-preinstalled-desktop-arm64.img

在板烧录

长按AI REC按键,使用USB线将AI USB 2.0 接口与PC端连接,连接后AI 算力模块会自动上电,等待5s,进入烧录模式,核心板自带的eMMC会被映射成U盘。

在Ubuntu系统上,文件管理会出现CONFIG和rootfs两个文件夹

在Ubuntu系统PC端可以选择balenaEtcher工具进行烧录

启动系统

供电

在没有外接其他任何设备时,为方便SSH调试,可通过载板上AI USB 3.0接口给RDK X5 Module供电,需要使用支持5V/5A的电源适配器或电脑USB口为载板供电。

若需要外接其他设备如鼠标、键盘、显示器或摄像头、雷达等传感器,则需要使用AI PWR的XT30接口通过配套的USP10电源模块进行供电。

存储

RDK X5 Module 核心板自带eMMC

显示

RDK X5 Module开发板支持HDMI显示接口,通过HDMI线缆连接底板和显示器,可安装Ubuntu 22.04 Desktop 桌面版,以支持图形化桌面显示。

网络连接

RDK X5 Module 带有以太网、Wi-Fi两种网络接口,用户可通过任意接口实现网络连接功能。

具体过程

首先保持开发板断电,并通过HDMI线缆连接开发板与显示器,最后给开发板上电。

系统首次启动时会进行默认环境配置,整个过程持续45秒左右,配置结束后会在显示器输出Ubuntu系统桌面。

开发板指示灯说明
  • 绿色 指示灯:点亮代表硬件上电正常 如果开发板上电后长时间没有显示输出(2分钟以上),说明开发板启动异常。需要通过串口线进行调试,查看开发板是否正常。

Ubuntu Desktop 版本系统启动完成后,会通过 HDMI 接口在显示器上输出系统桌面,如下图:

image-desktop_display.jpg

常见问题

首次使用开发板时的常见问题如下:

  • 上电不开机 :请确保使用供电中推荐的适配器供电;请确保X5 Module的eMMC已经烧录过Ubuntu系统镜像

注意事项

  • 禁止带电时拔插除 USB、HDMI、网线之外的任何设备
  • 选用正规品牌的USB Type C 口供电线,否则会出现供电异常,导致系统异常断电的问题

更多问题的处理,可以查阅 常见问题 章节,同时可以访问 D-Robotics 开发者官方论坛 获得帮助。

板砖烧录

mmc dev 0
mmc erase 0 0x1000
mmc part
ums 0 mmc 0
信息

建议在win系统平台进行操作,在ubuntu系统识别不到U盘映射目录

要理解 mmc dev 0mmc erase 0 0x1000mmc partums 0 mmc 0 这四条命令,首先需要明确它们的运行环境:这些是 U-Boot 引导程序 中的 mmc 子命令(部分嵌入式 Linux 终端也支持简化版),用于操作 MMC 存储设备(如 eMMC 芯片、SD 卡)—— 这是嵌入式系统(如开发板、路由器、智能设备)中最常见的存储介质操作方式。

下面逐一拆解每条命令的作用、参数含义及使用场景,结合嵌入式开发的实际需求说明:

1. mmc dev 0:切换 / 选择 MMC 设备

核心作用

指定当前操作的 MMC 存储设备(类似电脑中 “选择磁盘”,如 “切换到 D 盘”)。

参数解析

  • mmc:U-Boot 中操作 MMC 设备的命令前缀(类似 “磁盘管理工具” 的入口)。
  • devdevice 的缩写,子命令功能是 “选择 / 切换 MMC 设备”。
  • 0:MMC 设备编号(关键参数)。嵌入式系统中可能存在多个 MMC 设备(如 “0 号是板载 eMMC,1 号是外接 SD 卡槽”),编号由硬件设计和 U-Boot 驱动定义(可通过 mmc list 查看所有可用设备)。

示例与场景

bash

# 1. 查看当前系统中所有 MMC 设备(确认编号)
mmc list
# 输出可能类似:
# mmc0: SDHC/SDXC at 0:0 (eMMC) # 0 号设备:板载 eMMC
# mmc1: SDHC/SDXC at 0:1 (SD card) # 1 号设备:外接 SD 卡

# 2. 选择 0 号 eMMC 作为当前操作设备
mmc dev 0
# 输出反馈:mmc0 is current device (表示已切换成功)

注意

  • 后续所有 mmc 命令(如 erasepart)都会作用于 “当前选中的设备”,若不执行 mmc dev,U-Boot 会默认选择第一个检测到的 MMC 设备(通常是 0 号)。

2. mmc erase 0 0x1000:擦除 MMC 设备指定区域

核心作用

物理擦除 MMC 设备中指定地址范围的存储区域(MMC 存储的 “擦除” 是强制操作,擦除后数据不可恢复,需格外谨慎)。

参数解析

  • erase:子命令功能是 “擦除 MMC 存储块”(MMC 存储以 “块” 为最小擦除单位,通常 1 块 = 512 字节或 4096 字节,由设备决定)。
  • 0起始块地址(十六进制或十进制,默认十六进制)。表示从 MMC 设备的 “第 0 块” 开始擦除(0 块是 MMC 设备的起始地址,通常包含分区表、引导程序等关键数据)。
  • 0x1000擦除块数量(十六进制,0x1000 换算为十进制是 4096 块)。

关键计算:擦除大小

擦除总大小 = 擦除块数量 × 单块大小(以常见的 “1 块 = 512 字节” 为例):0x1000(4096 块) × 512 字节/块 = 2,097,152 字节 = 2MB即这条命令会从 MMC 设备的起始位置(0 块)开始,擦除后续 2MB 的存储区域。

场景与风险

  • 使用场景:嵌入式开发中用于 “清空设备引导区”(如刷写新系统前,擦除旧的 U-Boot 或分区表)。
  • 极高风险
    • 若擦除范围包含 引导程序(U-Boot) 或 分区表,可能导致设备无法启动(变 “砖”)。
    • 擦除后数据无法通过常规工具恢复(MMC 擦除会清除存储单元的电荷)。

3. mmc part:查看 MMC 设备的分区表

核心作用

读取并显示当前选中 MMC 设备的 分区信息(类似电脑中 “磁盘管理” 查看分区列表,如 C 盘、D 盘的大小和起始位置)。

参数解析

  • partpartition 的缩写,子命令功能是 “列出分区表”。无额外参数(仅作用于当前通过 mmc dev 选中的设备)。

示例输出与解读

bash

# 先选中 0 号 eMMC 设备,再查看分区
mmc dev 0
mmc part

# 输出可能类似:
Partition Map for MMC device 0 -- Partition Type: DOS
Part Start Sector Num Sectors UUID Type
1 2048 102400 5f808181-01 83 (Linux)
2 104448 2048000 5f808181-02 83 (Linux)
  • 关键字段解读
    • Part:分区编号(1、2、3...)。
    • Start Sector:分区起始扇区(扇区 = 块,与 mmc erase 的 “块地址” 对应)。
    • Num Sectors:分区总扇区数(× 单块大小 = 分区实际容量)。
    • Type:分区类型(如 83 表示 Linux 数据分区,ef 表示 EFI 引导分区)。

场景

  • 开发中确认 “分区是否正确创建”(如刷写系统后,检查 /boot 分区、根分区是否存在)。
  • 配合 mmc erase 使用:通过 mmc part 查看分区的起始 / 结束块,避免误擦除有效分区。

4. ums 0 mmc 0:将 MMC 设备模拟为 USB 大容量存储(U 盘)

核心作用

通过 USB 端口 将当前选中的 MMC 设备(如 eMMC、SD 卡)模拟为 “U 盘”,供电脑(或其他主机)通过 USB 直接读写(无需通过网络或串口传输文件)。

参数解析

  • umsUSB Mass Storage 的缩写,子命令功能是 “启动 USB 大容量存储模式”。
  • 第一个 0USB 控制器编号。嵌入式设备可能有多个 USB 口(如 “0 号是 Type-A 口,1 号是 Type-C 口”),通常填 0(默认第一个 USB 控制器)。
  • mmc:指定要模拟的设备类型(这里是 MMC 存储,其他类型如 nand 对应 NAND 闪存)。
  • 第二个 0MMC 设备编号(与 mmc dev 0 中的编号一致,即要模拟的 MMC 设备)。

操作流程与场景

  1. 硬件连接:用 USB 线将嵌入式设备的 USB 口与电脑连接(需确保设备支持 USB 从模式)。

  2. 执行命令

    bash

    ums 0 mmc 0  # 将 0 号 MMC 设备通过 0 号 USB 控制器模拟为 U 盘
  3. 电脑识别:执行后电脑会自动识别到一个 “新 U 盘”,可直接在 “我的电脑” 中打开,复制 / 粘贴文件(如将系统镜像写入 MMC 设备)。

  4. 退出模式:在电脑中 “安全弹出 U 盘” 后,在 U-Boot 中按 Ctrl+C 终止 ums 命令,恢复 MMC 设备的本地操作权限。

注意

  • 仅支持 “有 USB 从模式” 的嵌入式设备(如大多数开发板,无 USB 从功能的设备无法使用)。
  • 执行 ums 期间,U-Boot 会暂停其他操作,直到终止命令(Ctrl+C)。

四条命令的关联场景(嵌入式开发示例)

以 “给开发板刷写新 Linux 系统” 为例,四条命令可能的配合流程:

  1. mmc list → 查看所有 MMC 设备,确认要刷写的是 0 号 eMMC。
  2. mmc dev 0 → 选中 0 号 eMMC 作为当前操作设备。
  3. mmc part → 查看当前分区表,确认旧分区的起始位置(避免误擦除)。
  4. mmc erase 0 0x1000 → 擦除 eMMC 起始 2MB 区域(清空旧的 U-Boot 和分区表)。
  5. ums 0 mmc 0 → 将 eMMC 模拟为 U 盘,电脑识别后写入新系统镜像。
  6. 写入完成后,Ctrl+C 终止 umsmmc part 验证新分区表是否正常。

通过以上解读,可明确这四条命令是嵌入式开发中 “MMC 设备管理” 的核心操作,需结合硬件特性和操作目的谨慎使用(尤其是 mmc erase,避免数据丢失或设备变 “砖”)。