Raspberry Pi-4 固件升级 (eeprom),超过 UBUNTU 20.04

eba*_*ruk 5 upgrade

我想知道是否有其他直接的方法可以直接从 UBUNTU 20.04 终端命令行升级 Raspberry pi-4。

1) 我已阅读以下文章: Raspberry Pi 4 Bootloader

最新发行说明: Pi4 引导加载程序 EEPROM 发行说明

2)据我所知,没有直接升级“eeprom”固件的直接方法?我很想在这个问题上犯错……所以请证明我在这个问题上是错的……

3)如果我在点(2)上没有错……升级固件的最快/最简单的方法是什么……?要在 RPI OS 中使用另一张 SD 卡?

非常感谢您提前帮助我...

jwa*_*ker 5

我以一种简单的方式做到了。
但是,我有 Ubuntu 20.04 64 位和 2 个软件包用于 Ubuntu 20.10。
使用风险自负,但对我来说效果很好。

curl -O http://ports.ubuntu.com/pool/universe/r/raspberrypi-userland/libraspberrypi0_0~20200520+git2fe4ca3-0ubuntu2_arm64.deb
sudo apt install ./libraspberrypi0_0~20200520+git2fe4ca3-0ubuntu2_arm64.deb 
curl -O http://ports.ubuntu.com/pool/universe/r/raspberrypi-
userland/libraspberrypi-bin_0~20200520+git2fe4ca3-0ubuntu2_arm64.deb 
sudo apt install ./libraspberrypi-bin_0~20200520+git2fe4ca3-0ubuntu2_arm64.deb 
sudo add-apt-repository ppa:waveform/eeprom
sudo apt update
sudo apt install rpi-eeprom -y
Run Code Online (Sandbox Code Playgroud)

您可以检查可用的固件升级:

sudo rpi-eeprom-update
Run Code Online (Sandbox Code Playgroud)

您可以使用以下方法升级固件:

sudo rpi-eeprom-update -a
Run Code Online (Sandbox Code Playgroud)

然后,您需要重新启动:

sudo reboot
Run Code Online (Sandbox Code Playgroud)


Wha*_*eIt 4

[下面的回复仅适用于 Raspberry Pi 4B 型号,因为 3B(+) 没有板载可闪存 EEPROM。]

  • “简短”预警:运行 EEPROM 更新可能会带来导致 Raspberry Pi 4B 变砖的风险,因此我必须强调,尝试本回复中提到的任何内容均需您自担风险。在尝试更新 EEPROM 闪存之前,请务必对现有系统进行备份。尤其是启动分区的副本,只需复制启动分区内的所有文件和目录即可轻松备份到另一台计算机(并且文件大小很小)。

  • 强烈建议您通过创建操作系统的映像克隆来备份整个操作系统 - 即包括所有分区及其文件等),然后将它们存储在单独的驱动器上以进行安全保存并在发生任何情况时恢复进程更新过程中出错。

就目前而言(2020 年 8 月),rpi-eeprom-update您可以从 ie GitHub 下载的脚本(请参阅:https: //github.com/raspberrypi/rpi-eeprom)在除 Raspbian/Raspberry OS 之外的其他发行版上或多或少都被破坏了(其中它应该是预先安装的,或者可以安装而sudo apt install rpi-eeprom-update没有任何额外的麻烦)。这意味着尝试从官方 Raspbian/Raspberry Pi 操作系统之外的任何其他操作系统运行 EEPROM 更新程序可能存在风险。

这意味着你的问题的最初答案是:

是的,您应该从最新的 Raspberry OS / Raspbian 版本运行 EEPROM 更新,而此时不能从其他操作系统运行 EEPROM 更新。

由于它是EEPROM 闪存更新,因此您应该能够在 RPi4B 上使用 Raspbian 的任何安装 - 只要它先彻底更新!或者,为此目的购买一个单独的 MicroSD 卡/USB 启动棒。

  • 我建议您使用 MicroSD,而不是您暂时保留用于固件更新的任何 USB 设备,因为 USB 启动功能仍然处于开发阶段,有时事情可能会变得有点不稳定,特别是如果您正在固件方面安装尖端更新。

开始 EEPROM 更新过程:

  • 启动至 Raspbian/Raspberry Pi 操作系统并确保其是最新的(运行sudo apt update, sudo apt upgrade, sudo reboot now.)

  • 然后,当仍在 Raspbian/RPiOS 中时,sudo rpi-eeprom-update从 Raspbian/RPiOS 端运行并重新启动(至 Raspbian/RPiOS)。

  • sudo rpi-eeprom-update通过再次运行(无需额外命令)来检查 EEPROM 固件的状态和版本。如果 EEPROM 看起来是最新的,那很好。

  • 无论如何,请阅读并继续执行前面的步骤(根据需要)。

  • 如果现在 Raspbian/RPiOS 端一切正常,请sudo shutdown now在 Ubuntu 安装中执行 , 切换,打开电源并引导至 Ubuntu。

  • 当启动到 Ubuntu 时,检查固件的状态sudo rpi-eeprom-update(此后没有命令行选项 - 并且假设您已安装它或在 Ubuntu 端可用,如果没有,请参见下文。)

  • sudo rpi-eeprom-update(不添加命令)应该只列出版本详细信息,并通知脚本是否有可用的更新 - 查看该命令的输出是否与您尝试安装的正确 EEPROM 固件版本匹配。

如果固件版本不匹配,或者您的 Ubuntu 上根本没有该固件rpi-eeprom-update,这并不奇怪,因为 RPi4B 的 Ubuntu 没有预装rpi-eeprom-update,也不能安装通过 apt 或我在撰写本文时所知道的任何 PPA 安装

仍在 Ubuntu 终端中:

  • 使用以下命令rpi-eepromhttps://github.com/raspberrypi/rpi-eeprom克隆 Github 存储库git

  • 如果您还没有git安装,请先执行以下操作:sudo apt install git

  • 然后:git clone https://github.com/raspberrypi/rpi-eeprom

  • 克隆 Git 存储库后,cd rpi-eeprom进入克隆的 git repo 目录,并将文件从其stable/子目录复制到您的固件 .bin 文件目录rpi-eeprom-update (见下文)。

正如您从下面的示例输出中看到的sudo rpi-eeprom-update,在我的 Ubuntu 20.04LTS 中,目录是:/usr/bin/firmware/stable

这对我很有用,现在我的 RPi 4B 上的 Ubuntu 20.04LTS 64 位显示了最新的稳定固件,如下所示:

BCM2711 detected
Dedicated VL805 EEPROM detected
BOOTLOADER: up-to-date
CURRENT: Fri 31 Jul 2020 01:43:39 PM UTC (1596203019)
 LATEST: Fri 31 Jul 2020 01:43:39 PM UTC (1596203019)
 FW DIR: /usr/bin/firmware/stable
VL805: up-to-date
CURRENT: 000138a1
 LATEST: 000138a1
Run Code Online (Sandbox Code Playgroud)

如果感觉拥有单独的 Raspbian MicroSD 卡只是额外的麻烦,请记住,错误的 EEPROM 更新可能 - 在最坏的情况下 - 完全堵塞你的 Raspberry Pi。

因此,由于该rpi-eeprom-update工具“本来就是这样”,建议仅在 Raspbian/Raspberry 操作系统中通过它运行更新,而不是在其他地方。

  • (运行sudo rpi-eeprom-update以列出其他发行版上的版本号不应导致任何形式的混乱,但这里绝对没有任何保证。)

  • **请记住保持您的 Raspbian/Raspberry 操作系统更新,即使(或特别是)如果您只是使用它来刷新 EEPROM!在尝试运行之前始终运行sudo apt update+和 REBOOT [!] (在某些情况下,/可能会派上用场。sudo apt upgraderpi-eeprom-updatesudo apt dist-upgradesudo apt full-upgrade

  • 始终记住在运行上述一组 apt 更新 + 升级后重新启动,否则您可能无法获得有关当前固件状态或现有配置的正确信息,并且挂起的更新可能会重叠并造成严重破坏。)

如果完成上述所有步骤后您仍然无法在 Ubuntu 中看到更新的固件,请尝试(在 Ubuntu 中):

  • rpi-eeprom-update转至Ubuntu 上包含脚本的目录。

  • 使用 ie 进行编辑sudo nano rpi-eeprom-update(或者sudo vim如果这是您首选的编辑器的话。)

  • 找到显示以下内容的行:

  • FIRMWARE_RELEASE_STATUS=${FIRMWARE_RELEASE_STATUS:-critical}

  • 将显示的部分更改-critical-stable,保存并退出。确保 Ubuntu 内的固件目录中有 EEPROM 和恢复 .bin 文件!

  • 之后,重新运行sudo rpi-eeprom-update脚本并查看其内容。上面的列表应该是您在撰写本文时(2020 年 8 月 18 日)获得的 RPi4B EEPROM 固件的最新稳定版本 - 目前还没有一个criticalEEPROM 版本可以直接 USB MSD 启动支持。

  • 将该stable版本视为接近完成的“后期测试版”固件版本,但就整体可靠性而言仍不完善。同样,如果您遇到问题,请尝试恢复到旧版本或尝试在stablebeta和的当前版本之间进行交换critical

今天,我在 RPi4B 上从我的 Ubuntu 20.04LTS 64 位上得到了输出,在研究了 EEPROM 更新程序一段时间并最终完成该过程后。*哇!*

补充笔记:

  • 您可以在脚本中编辑上面的行,rpi-eeprom-update将 ie 更改-critical-stable, 或者,换句话说;指示要rpi-eeprom-update查找的固件版本。

  • 如果您想在未来的某个地方真正疯狂,这些说明也适用于 EEPROM 固件的 beta 版本 - 只需将后缀更改为-beta,并相应地复制 git 存储库的文件,如上面的说明中所述。通过执行此处提到的所有必要步骤即可切换到最新的测试版,但固件二进制文件 (.bin) 的目录更改为beta/iestable/critical/

  • 注意:固件测试版通常不推荐给新手用户,在某些情况下甚至不推荐给有经验的用户。事实上,只有标记为“关键”的 EEPROM 固件更新才被视为“生产就绪”(= 使用安全且稳定)。所有这些警告绝不是毫无根据的 - 如果您查看 ie 上的线程在 Raspberry Pi 论坛上,多个用户在运行了运行良好的 RPi 发行版后,在刷入 EEPROM 固件的 [不稳定] beta 版本后,一头扎进了随机操作系统故障和痛苦的深渊。

  • (请参阅sudo rpi-eeprom-update --help参考资料 以获得所有命令行功能的列表。)

  • 每当不使用命令行选项运行时sudo rpi-eeprom-update,并且如果打印出:*** UPDATE AVAILABLE ***,您始终可以(至少尝试)通过运行来应用可用更新:(sudo rpi-eeprom-update -a如应用可用更新。) - 但是,至少在我的情况下20.04LTS 版本在 Ubuntu 中没有用。

  • sudo rpi-eeprom-update -a -f <eeprom's_local_filename.bin>同样不成功的是我在 Ubuntu 中尝试从 Github 下载正确的固件二进制文件后进行直接刷新。这种带有用户定义的 .bin 文件的直接刷新通常适用于特殊情况(同样,只能在 Raspbian/RPiOS 内运行)——此功能很有用,即如果您需要恢复到另一个固件版本,因为不稳定问题、其他错误等等。

  • rpi-eeprom-update每当有新版本发布时,我都会从 Github 克隆它,并在我的固件目录下(在本例中)下使用子目录sudo copy( = stable/critical/、 ),从而获得了最好的结果- 但请务必对该过程极其谨慎。在将每个文件复制到固件目录之前,我通常会根据现有文件彻底检查每个文件。beta//usr/bin/firmware/

  • rpi-eeprom-update我将脚本rpi-eeprom-config放在 Ubuntu 的 /bin/ 下,以便我可以从任何目录更新 EEPROM,通常只是为了查看 EEPROM 版本的当前情况。

  • 强烈建议添加书签的 URL 是: https: //github.com/raspberrypi/rpi-eeprom/blob/master/firmware/release-notes.md - 引导加载程序 EEPROM 的所有最新更改和新版本都列在其中。

  • 如果您遇到 EEPROM 更新程序本身的问题或在安装新固件时遇到问题,建议(特别是在使用 beta/稳定的预发布固件版本时)在官方 Raspberry Pi 论坛上发布问题并寻求帮助,网址为https ://www.raspberrypi.org/forums/ - 通常有一个专门的线程用于寻找测试版和预发布版本的错误,只需将祈祷添加到祈祷磨坊即可。

我希望这至少能有所帮助——如有必要,请随时要求更多说明和/或评论。

如果任何 (RPi) 开发人员/代码猴子正在关注这个主题,那么 RPi4B 的 EEPROM 更新过程中的很多事情都可以变得非常容易......并使它们直接在其他发行版上工作,而不仅仅是 Raspberry Foundation 自己的发行版“Lada-Linux” (= 你需要的唯一工具是一把锤子,但它们又粗糙又笨重。:-D只是说!干杯!