Skip to content

刷新计算模块 eMMC

计算模块具有一个连接到主要 SD 卡接口的板载 eMMC 设备。本指南说明了如何使用计算模块 IO 板将数据写入 eMMC 存储。

另请阅读计算模块数据表中的部分。

在计算模块上刷新 eMMC 的步骤

要刷新计算模块 eMMC ,您需要 Linux 系统(建议使用树莓派,或 PC 上的 Ubuntu )或 Windows 系统(建议使用 Windows 10)。对于 BCM2837 (CM3),已修复了影响 Mac 的错误,因此这也将起作用。

注意 BCM2835(CM1)引导加载程序中存在一个错误,该错误将稍有不正确的 USB 数据包返回到主机。大多数 USB 主机似乎都忽略了这个良性错误,并且可以正常工作。但是,我们确实看到一些 USB 端口由于此错误而无法工作。我们不太了解为什么某些端口会失败,因为它们似乎与 USB2 或 USB3 无关(我们已经看到这两种类型都起作用),但是它可能特定于主机控制器和驱动程序。此错误已在 BCM2837 中修复。

对于 Windows 用户

在 Windows 下,安装程序可用于自动安装所需的驱动程序和启动工具。或者,用户可以使用 Cygwin 进行编译和运行,和/或手动安装驱动程序。

Windows安装程序

对于只想在 Windows 下将 Compute Module eMMC用作大容量存储设备的用户,建议使用独立安装程序。此安装程序已经在 Windows 10 32位和 64 位以及 Windows XP 32位上进行了测试。

请确保在安装程序运行时没有写入任何 USB 设备。

1.下载并运行Windows安装程序以安装驱动程序和引导工具。 1.将主机 PC USB插入 CMIO USB SLAVE端口,确保将 J4 设置为 EN 位置。 1.给 CMIO 板上电; Windows现在应该找到硬件并安装驱动程序。 1.驱动程序安装完成后,运行先前安装的RPiBoot.exe工具。 1.几秒钟后,计算模块 eMMC 将作为磁盘(USB大容量存储设备)在 Windows 下弹出。

设置计算模块 IO 板

计算模块 4

确保计算模块已正确安装在 IO 板上。它应该平放在 IO 板上。

确保将 IO 板上的 J2 的 nRPI _BOOT(禁用 eMMC 引导)设置为" EN"位置。 使用微型 USB 电缆将 IO 板上的微型 USB 从端口 J11 连接到主机设备。 *请勿开机。

计算模块 1 ..3

确保计算模块本身已正确安装在 IO 板上。它应与电路板平行,并扣入啮合夹。

确保将 J4 (USB SLAVE BOOT ENABLE)设置为" EN"位置。 使用微型 USB 电缆将 IO 板上的微型 USB 从端口 J15 连接到主机设备。 *请勿开机。

在主机系统上构建 rpiboot (Cygwin/Linux)

我们将使用 Git 获取 rpiboot 源代码,因此请确保已安装 Git 。在 Cygwin 中,使用 Cygwin 安装程序。在 Pi 或其他基于 Debian 的 Linux 机器上,使用以下命令:

`` sudo apt安装 git


如果日期设置不正确,Git可能会产生错误。在树莓派上,输入以下内容以更正此问题:

``
 sudo 日期 MMDDhhmm 

其中" MM"是月," DD"是日期," hh"和" mm"分别是小时和分钟。

克隆usbboot工具库:

`` git clone --depth = 1 https://github.com/raspberrypi/usbboot 光盘 usbboot


必须安装`libusb`。如果您使用的是 Cygwin ,请确保如前所述安装了`libusb`。在树莓派 OS或其他基于 Debian 的 Linux 上,输入以下命令:

``
sudo apt安装 libusb -1.0-0-dev

现在构建并安装usbboot工具:

`` 使


运行" usbboot"工具,它将等待连接:

``
 sudo ./rpiboot

现在,将主机插入计算模块 IO 板的 USB 从端口,并打开 CMIO 板的电源。 rpiboot工具将发现计算模块并发送引导代码以允许访问 eMMC 。

有关更多信息,请运行

./rpiboot -h

写入 eMMC -Windows

rpiboot完成后,新的 USB 海量存储驱动器将出现在 Windows 中。我们建议遵循此guide并使用 Win32DiskImager 将映像写入驱动器,而不要尝试使用 Cygwin 的/dev/sda等。

确保将 J4 (USB SLAVE BOOT ENABLE)/J2(nRPI_BOOT)设置为禁用位置和/或 USB 从属端口未插入任何东西。重新启动 IO 板电源现在应该会导致从 eMMC 引导计算模块。

写入 eMMC -Linuxrpiboot完成后,您将看到一个新设备出现。这通常是 Pi 上的/dev/sda,但是也可能是另一个位置,例如/dev/sdb,因此在运行rpiboot之前签入/dev/s或运行lsblk`,这样您就可以看到变化。

现在,您需要将原始 OS 映像(例如树莓派 OS)写入设备。请注意,根据图像的大小,以下命令可能需要一些时间才能完成:(将/dev/sdX更改为适当的设备。)

`` sudo dd if =/dev/sdX == 4MiB = raw_os_image_of_your_choice.img


写入映像后,拔出并重新插入 USB 。您应该看到在`/dev`中出现了两个分区(对于树莓派 OS)。总体而言,您应该看到类似以下内容:

``
/dev/sdX <-设备
/dev/sdX1 <-第一个分区(FAT)
/dev/sdX2 <-第二分区(Linux文件系统)

/dev/sdX1和/dev/sdX2分区现在可以正常挂载了。

确保将 J4 (USB SLAVE BOOT ENABLE)/J2(nRPI_BOOT)设置为禁用位置和/或 USB 从属端口未插入任何东西。重新启动 IO 板电源现在应该会导致从 eMMC 引导计算模块。

刷新 Bootloader EEPROM-计算模块 4

建议使用" rpiboot"工具来更新计算模块 4 上的引导加载程序 EEPROM 。在遵循初始 EMMC 闪存设置步骤之后,运行以下命令以运行" recovery"映像而不是 EMMC 映像。

`` ./rpiboot -d恢复


`rpiboot`工具的`recovery`目录包含一个默认的`pieeprom.bin`引导加载程序 EEPROM 映像。有关如何更改嵌入式配置文件的更多信息,请参见[boot EEPROM](../raspberrypi/booteeprom.md)和[bootloader配置](../raspberrypi/bcm2711_bootloader_config.md)页面。

SHA256校验和文件必须与" pieeprom.bin"映像匹配。生成`.sig`文件运行

``
sha256sum pieeprom.bin | awk'{print $ 2}'> pieeprom.sig
``

恢复目录中的引导程序映像是具有默认设置的最新制造映像。它旨在用于(https://www.raspberrypi.org/products/compute-module-4-io-board)[Compute Module 4 IO board],并且具有从 SD /EMMC作为计算模块引导的树莓派 OS。 4个开发平台。


## 故障排除

对于一小部分的树莓派 Compute Module 3s,已经报告了启动问题。我们将其追溯到用于创建 FAT32 分区的方法。我们认为问题是由于 BCM2835 /6/7与更新的 eMMC 器件之间的时序不同所致。以下创建分区的方法是我们手中的可靠解决方案。

``
$ sudo分开了/dev/<device>
(部分)mkpart primary fat32 4MiB 64MiB
(分开)q
$ sudo mkfs.vfat -F32/dev/<设备>
$ sudo cp -r <文件>/* <挂载点>