我想知道是否有其他直接的方法可以从 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 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-eeprom
从以下位置克隆 Github 存储库https://github.com/raspberrypi/rpi-eeprom和git
:如果你尚未
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 upgrade
rpi-eeprom-update
sudo apt dist-upgrade
sudo 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
版本视为固件的接近完成的“后期测试版”,但整体可靠性尚不完善。同样,如果您遇到问题,请尝试恢复到旧版本,或尝试在 、stable
和beta
的当前版本之间切换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-update
,rpi-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