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

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

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

1)我已阅读以下文章: Raspberry Pi 4 引导加载程序

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

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

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

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

答案1

我以一种简单的方式做到了。
但是,我有 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

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

sudo rpi-eeprom-update

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

sudo rpi-eeprom-update -a

然后,您需要重新启动:

sudo reboot

答案2

[以下答复仅适用于 Raspberry Pi 4B 型号,因为 3B(+) 没有板载可刷新的 EEPROM。]

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

  • 强烈建议您通过创建整个操作系统的映像克隆来备份它(包括所有分区及其文件等),然后将它们存储在单独的驱动器上以便妥善保管,并在更新过程中恢复该过程,以防出现任何问题。

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

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

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

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

  • 我建议使用 MicroSD,而不是任何暂时仅用于固件更新的 USB 设备,因为 USB 启动功能总体上仍处于开发阶段,有时可能会出现一些问题,特别是当您在固件端安装最新更新时。

开始 EEPROM 更新过程:

  • 启动 Raspbian/Raspberry Pi 操作系统并确保其是最新的(运行sudo apt update、、sudo apt upgradesudo 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-eeprom从以下位置克隆 Github 存储库https://github.com/raspberrypi/rpi-eepromgit

  • 如果你尚未git安装,请首先执行以下操作:sudo apt install git

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

  • 克隆 Git 存储库后,进入克隆的 git repo 目录,并将其子目录cd rpi-eeprom中的文件复制到固件 .bin 文件目录中,具体位置如下:stable/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

如果你觉得单独使用 Raspbian MicroSD 卡太麻烦,请记住,错误的 EEPROM 更新 - 在最坏的情况下 - 可能会彻底损坏您的 Raspberry Pi。

因此,鉴于该rpi-eeprom-update工具的“现状”,建议通过它运行更新仅限于 Raspbian/Raspberry OS,其他地方不行。

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

  • **请记住保持 Raspbian/Raspberry OS 更新,即使(或特别是)您仅使用它来刷新 EEPROM!在尝试运行之前,请务必运行sudo apt update+并重新启动 [!] (在某些情况下,/可能会派上用场)。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 固件 - 目前还没有一个critical版本的 EEPROM 可以直接支持 USB MSD 启动。

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

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

补充笔记:

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

  • 如果您将来想尝试一下,这些说明也适用于 EEPROM 固件的测试版 - 只需将后缀更改为-beta,并相应地复制 git 存储库的文件,如上面的说明中所述。切换到最新测试版需要执行那里提到的所有必要步骤,但固件二进制文件 (.bin) 的目录更改为 ,而beta/不是stable/critical/

  • 注意:固件测试版通常不推荐新手用户使用,有时甚至不推荐有经验的用户使用。事实上,仅有的标记为“关键”的 EEPROM 固件更新被视为“已准备好生产”(= 使用起来安全且稳定)。所有这些警告都不是毫无根据的——如果你看看 Raspberry Pi 论坛上的帖子,就会发现多个用户在刷入 EEPROM 固件的 [不稳定] 测试版后,运行良好的 RPi 发行版却陷入了随机操作系统故障和痛苦的泥潭。

  • (请参阅sudo rpi-eeprom-update --help查看所有命令行功能的列表。)

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

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

  • rpi-eeprom-update每当有新版本发布时,我都会从 Github 克隆它,sudo copy将子目录(= stable/、、)复制到我的固件目录(在本例中)下 - 但一定要非常小心地执行该过程。我通常会在将每个文件复制到固件目录之前,彻底检查它们与现有文件critical/beta//usr/bin/firmware/

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

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

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

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

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

答案3

rpi-eeprom 已登陆 20.04 官方存储库!我刚刚从 focal-updates 安装了我的 rpi-eeprom,使用

sudo apt-get update -qq && sudo apt-get install rpi-eeprom

安装后,您只需使用它sudo rpi-eeprom-update来查看是否有可用的更新,然后sudo rpi-eeprom-update -a重新启动即可安装并激活它们。

如果你没有看到,请确保你已经

deb http://ports.ubuntu.com/ubuntu-ports focal-updates main restricted
deb http://ports.ubuntu.com/ubuntu-ports focal-updates universe
deb http://ports.ubuntu.com/ubuntu-ports focal-updates multiverse

在你的/etc/apt/sources.list

不再需要黑客攻击了,耶!

答案4

@ebaruk @joey_g216

使用 Ubuntu 20.04,似乎能够rpi-eeprom在 Ubuntu 20.10(multiverse)中安装软件包。

https://packages.ubuntu.com/groovy/rpi-eeprom

使用 dpkg 检查安装 rpi-eeprom 的依赖项。

apt-cache policy binutils libraspberrypi-bin linux-firmware-raspi2 pciutils python3 flashrom

如果存在“已安装:(无)”软件包,请使用 apt 安装。仅linux-firmware-raspi2需要版本 1.20190819 之后的软件包。

在浏览器上下载 rpi-eeprom .deb 包(或 curl/wget),从以下网址下载 .deb 文件链接 http://ports.ubuntu.com/pool/multiverse/r/rpi-eeprom/rpi-eeprom_9.0-1ubuntu1_arm64.deb(arm64 情况)或http://ports.ubuntu.com/pool/multiverse/r/rpi-eeprom/rpi-eeprom_9.0-1ubuntu1_armhf.deb(armhf 案例)。

在您的终端上,执行以下操作来安装 .deb 包:

sudo dpkg -i ~/Downloads/DOWNLOADED_DEB_NAME

相关内容