如何更新 PL-R5 的引导程序

市售的 Raspberry Pi 5(以下简称 Pi 5)可使用 Raspberry Pi Imager 实用工具中的镜像文件(Misc Utility images)写入 microSD 卡,并在启动 Pi 5 时更新引导程序(bootloader)。
另一方面,PL-R5(内部搭载 Compute Module 5)不使用 microSD 卡。通过执行命令写入新的 .bin 镜像文件来进行更新。
两者的引导程序都保存在主板上的 SPI Flash(通常称为 EEPROM)中。

本文将介绍在 PL-R5 上更新引导程序的方法。
※PL-R4 无法仅通过设备本身进行更新,而 PL-R5 已可以通过命令进行更新。

本次测试环境

PL-R5 已连接显示器并接入互联网。

直接在设备上操作:

  • PL-R5
  • microHDMI 转 HDMI 线缆(PL-R5 侧连接维护端口)
  • 已连接互联网

通过 SSH 连接操作:

  • Windows PC(推荐 Pro 版本)
  • PuTTY(SSH 客户端工具)

※通过 SSH 从其他计算机执行命令时,如果使用 Windows,则需要 PuTTY(SSH 客户端工具)等软件。

PL-R5 维护端口

 

确认版本

首先确认当前的引导程序版本。
为了选择接下来要升级的引导程序版本,建议同时查看更新记录。

可查看引导程序更新记录的页面:
https://github.com/raspberrypi/rpi-eeprom/blob/master/firmware-2712/release-notes.md

※GitHub Releases 中提供的 zip 文件并不是用于常规更新的 .bin 文件,而是 EEPROM 恢复用的启动镜像。
 PL-R5(或 CM5)的常规引导程序更新使用操作系统中的 pieeprom-xxxx-xx-xx.bin 文件。

以下命令可在 PL-R5 本机终端或通过 PuTTY 的 SSH 连接中执行。

vcgencmd bootloader_version

可通过类似以下的输出确认版本。

2025/05/08 15:13:17
version 69471177ba7e4cb7597cb2496f2a0b23f19c1113 (release)
timestamp 1746713597
update-time 0
capabilities 0x0000007f

 

设置 EEPROM 更新工具

接下来,通过命令设置 EEPROM 更新工具。

sudo apt update
sudo apt install -y rpi-eeprom

如果软件包被新安装,或显示 rpi-eeprom 已经是最新版本 (28.13-1)。,则表示设置完成。

 

引导程序镜像文件(.bin)

镜像文件按日期保存在以下位置。(例如:pieeprom-2025-12-08.bin

ls /lib/firmware/raspberrypi/bootloader-2712/stable/

在本次环境中,可以确认以下按日期命名的文件。

pieeprom-2025-05-08.bin  pieeprom-2025-12-08.bin  pieeprom-2026-01-21.bin  recovery.bin
pieeprom-2025-11-05.bin  pieeprom-2026-01-16.bin  pieeprom-2026-02-06.bin

镜像文件(.bin)会随着操作系统更新而添加。

bootloader-2712 目录对应设备所使用的 CPU 芯片型号。(PL-R5、Pi 5/CM5:Broadcom SoC BCM2712)
PL-R5 使用与 BCM2712 SoC 对应的 bootloader-2712 目录中的文件。stable 目录为稳定版,通常可从该目录中选择所需版本。

不同 Raspberry Pi 型号使用的芯片不同,因此引导程序镜像文件也不同,彼此不兼容。请注意选择正确的文件。(例如:Pi 4/CM4:BCM2711)

引导程序、固件、EEPROM 与操作系统的区别

与引导程序相关的术语还有固件(firmware)、作为写入目标的 EEPROM,以及 pieeprom 等文件名,可能会稍显复杂。
它们的含义各不相同。本文所介绍的引导程序保存在主板上的 EEPROM 中,与操作系统更新是不同的。

  • 固件:在设备内部运行的控制软件
  • 引导程序:负责操作系统启动顺序的一种固件
  • 操作系统:系统启动后供用户使用的基础软件

引导程序属于固件的一种,因此根据不同语境,也可能被称为“固件更新”或“EEPROM 更新”。

指定并写入引导程序

更新前后的 bootloader_version

通过 -d 选项,可以更新到指定的引导程序(.bin)。使用 -f 选项指定文件的位置。
sudo rpi-eeprom-update -d -f pieeprom.bin

以下示例指定了本文撰写时使用的 pieeprom-2026-02-06.bin

sudo rpi-eeprom-update -d -f /lib/firmware/raspberrypi/bootloader-2712/stable/pieeprom-2026-02-06.bin

如果更新成功,最后一行会显示 UPDATE SUCCESSFUL

Verifying update
VERIFY: SUCCESS
UPDATE SUCCESSFUL

重新启动后,新的引导程序将生效。

sudo reboot

至此,更新完成。

引导程序的作用

引导程序可以设置系统从哪个设备启动以及启动顺序。
默认设置如下,为 BOOT_ORDER=0xf461

[all]
BOOT_UART=1
BOOT_ORDER=0xf461
NET_INSTALL_AT_POWER_ON=1

0xf461 从右向左读取。

在此情况下,启动顺序为:
→ eMMC(0x1)
→ 通过 M.2 连接的 NVMe SSD(0x6)
→ USB 闪存盘/USB 连接 SSD(0x4)
→ 返回开头并重试(0xf)

引导程序值一览(PL-R5/CM5)

启动设备CM5 说明
0x1eMMC适用于搭载 eMMC 的 CM5 型号。从内置 eMMC 存储启动。
0x2Network网络启动。适用于 PXE/TFTP 等环境。
0x3RPIBOOT通过 USB 连接主机 PC,用于写入或恢复 eMMC。
0x4USB-MSD从 USB 闪存盘或 USB SSD 等外部存储设备启动。
0x5BCM-USB-MSD当前一般用途通常不使用。
0x6NVMe从连接到 M.2 插槽的 NVMe SSD 启动。
0x7HTTP通过 Ethernet 进行 HTTP 启动。适用于企业及测试环境。
0xESTOP在此停止启动过程。
0xFRESTART返回启动顺序开头并重试。

※在 Pi 5 上,0x1 表示 microSD 卡。

更改启动顺序

可使用以下命令编辑启动顺序。
添加 -E 选项后,可以继承平时使用的编辑器环境设置(例如 nano),从而更方便地进行编辑。
在 Raspberry Pi OS 中,如果不指定 -E 选项,有时会使用 vi 打开。如果不熟悉 vi,操作可能会比较困难。
由于 Raspberry Pi OS 的终端中通常使用 nano,因此建议添加 -E 选项。

sudo -E rpi-eeprom-config --edit

打开编辑器后,根据需要修改该值。

BOOT_ORDER=0xf461

在工业应用中,通常从 eMMC 启动。只有在需要更大容量或更高速度时,才可能优先使用 NVMe SSD。如果将 eMMC 设置为备用启动设备,则可使用 BOOT_ORDER=0xf16

不同型号的注意事项

即使同为 Raspberry Pi,如果型号所搭载的芯片不同,对应的引导程序镜像文件也会不同。

PL-R5 基于 CM5 开发,因此使用与 Pi 5/CM5 相同的芯片,对应的引导程序镜像文件也相同。
但是,PL-R5 使用命令进行更新,这一点与 Pi 5 不同。
此外,根据是否搭载 eMMC 等条件,引导程序的设置值也可能与 Pi 5 不同。

此外,“固件”、“EEPROM”和“引导程序(bootloader)”严格来说含义不同,但在某些语境中可能会以类似的含义使用。
本文介绍了在 PL-R5 上更新引导程序的方法。

互联网上关于 Pi 5 的信息较多,如果您对 PL-R5 的操作方法有任何疑问,请联系我们。


文章投稿:Raspida

Raspida 运营 Raspberry Pi 信息网站 raspida.com,即使非工程师也能轻松愉快地使用。凭借多年使用 Raspberry Pi 的经验,该网站面向熟悉 Raspberry Pi 的用户以及刚刚开始感兴趣的用户,发布大量实用的信息和主题。Raspida 还为 PiLink 网站撰写有关工业 Raspberry Pi 的技术博客文章