跳转到主要内容

树莓派 CM5 启动映像 eMMC
安装系统软件时出现问题

导言 问题

在一个新项目中,我们决定使用Raspberry Pi Compute Module 5 (CM5) 作为硬件平台。

我收到的开发套件包括

  • Compute Module 5 (4 GB RAM and 32 GB eMMC)
  • 27W USB-C Type-C PD Power Supply
  • Compute Module 5 IO Board
  • Antenna Kit
  • Compute Module 5 IO Case
  • 2 x HDMI® to HDMI® Cable
  • Cooler for Compute Module 5
  • USB-A to USB-C Cable.

计算模块 5 IO 机箱

目标

为了简化开发过程,我希望通过 microSD 卡运行系统软件(raspiOS) ,因为Compute Module 5 IO Board 包含一个 microSD 卡插槽。

我用 Raspberry Pi Imager将最新的 Raspberry Pi 操作系统闪存到 microSD 卡上,然后将卡插入 IO 板上的插槽,接通系统电源。

然而,系统并没有启动到操作系统,而是在显示屏上显示了一条类似终端机的信息:"未检测到 SD:卡",系统无法启动。

因果关系

经过研究,我在 Raspberry Pi 文档中找到了关于 Compute Module 5:

  • microSD 卡插槽(仅用于没有 eMMC 的 Lite 版本;其他版本忽略该插槽)

这意味着 microSD 卡插槽只能在 "Lite "版本上使用,该版本不包含板载 eMMC 存储器。我的 CM5 有 32 GB eMMC,因此启动时 SD 插槽被禁用和忽略。

使用 eMMC 在 CM5 上安装系统软件的正确方法

要在配有 eMMC 的 CM5 上安装操作系统,请按照以下官方说明操作 setting up the IO Board.

一个关键步骤是在 IO 板上的 J2 接头处放置一个跳线。这将使 CM5 进入 USB 启动模式,允许主机像访问大容量存储设备一样访问 eMMC。

计算模块 5 IO 板

与 rpiboot 有关的问题及解决方案

在我的开发机器(Ubuntu 22.04)上,我最初尝试用rpiboot 安装:

sudo apt install rpiboot

但是,这个版本无法正常工作--可能是因为它已经过时或与 CM5 不兼容。

因此,我不得不从源代码开始构建 rpiboot。请按照这里的步骤操作:

克隆官方软件仓库:

git clone --recurse-submodules --shallow-submodules --depth=1 https://github.com/raspberrypi/usbboot
cd usbboot

安装依赖项并构建

sudo apt install git libusb-1.0-0-dev pkg-config build-essential
make

运行 rpiboot

在连接 CM5 和 J2 跳线到位的情况下运行 rpiboot:

sudo ./rpiboot -d mass-storage-gadget64

系统将检测到 CM5 的 eMMC,现在就可以使用 Raspberry Pi Imager 或 dd 闪存操作系统了。

摘要

  • CM5 SD 插槽仅适用于 Lite(无 eMMC)版本。
  • 要闪存带有 eMMC 的 CM5,您必须
    ** 设置 J2 跳线。
    ** 使用 rpiboot 通过 USB 打开 eMMC。
  • 如果打包的 rpiboot 无法正常工作,请从源代码中构建它。

一旦完成,你就可以直接将 Raspberry Pi 操作系统闪存到 eMMC 上,就像闪存 SD 卡一样。