By the usage of "LATEST", can I conclude the RPis I ordered this morning have the latest configuration?
This is a bit complicated, so please bear with me:
While "LATEST" (
latest actually) now is a branch of the EEPROM firmware, it may not be in the sense that you mean. I'll explain that in some detail below, but in the meantime know that the only definitive method for specifying an EEPROM firmware release is by its date; for example:
Apr 29 2021 17:11:25. I'll explain this further in the sequel.
Wrt your question:
"can i conclude the rpis i ordered this morning have the latest configuration?"
The definitive answer to this question: "No - you should not conclude this." Imagine a factory putting out over 100,000 units a month, all going into a "retail distribution" system where the "new" units are mixed with "old" units and sold by a variety of vendors; each vendor free to sell from their mixed vintage inventory with no rules or oversight from The RPi Organization to govern how this is to be done. Fortunately the EEPROM firmware can be updated and managed by the owner/user.
What is the "LATEST" firmware?
First, understand that the term "LATEST" is fraught with ambiguity because the EEPROM firmware is released and maintained under three (3) separate branches:
critical; roughly corresponds to what you may know as a "stable" release; i.e. one with the lowest risk of "bugs"
stable; roughly corresponds to what you may know as a "beta" release; i.e. one not fully tested, but enough to reduce the risk of "bugs"
beta- contains relatively new and lightly-tested features.
And so, each branch has its own "LATEST" version (yes, including the
latest branch!). The branches are on full display in
$ ls -l /lib/firmware/raspberrypi/bootloader total 40 drwxr-xr-x 2 root root 4096 Jul 11 23:27 beta drwxr-xr-x 2 root root 4096 Jul 11 23:27 critical lrwxrwxrwx 1 root root 8 Jan 14 2021 default -> critical lrwxrwxrwx 1 root root 6 Jan 14 2021 latest -> stable -rw-r--r-- 1 root root 27748 Jul 7 08:25 release-notes.md drwxr-xr-x 2 root root 4096 Jul 11 23:27 stable
And if you care to look in the
stable folder (for example), you may find numerous versions, each filename structured as
YYYY-MM-DD correspond to that version's release date. Furthermore, you can determine the firmware version currently in use on your system from the command line as follows:
$ vcgencmd bootloader_version
Which, for my system, yields the following output:
Apr 29 2021 17:11:25
version c2f8c388c4ee37ad709ace403467d163e8dd91ce (release)
A detailed answer for obtaining the required bootloader firmware:
All of that said, and as a more practical answer to your question, once you receive the RPi you ordered, here's how you can get and maintain the "LATEST" firmware - or the firmware you need or want on your system:
If you know you want to "follow" a particular branch of the firmware, you may declare that in:
/etc/default/rpi-eeprom-updateby changing the
FIRMWARE_RELEASE_STATUSvariable from its default value
FIRMWARE_RELEASE_STATUS="default"to reflect the branch you wish to follow; e.g.
Done in this way, your EEPROM firmware will be updated with your usual update procedure (
sudo apt update, followed by
sudo apt upgrade), and it will be applied when you
If you want to install a particular version of the EEPROM firmware, this will work:
$ sudo rpi-eeprom-update -d -f pieeprom.bin
Where the generic filename
pieeprom.binis replaced by a specific filename. For example, if I want to load and use a file named
betabranch, and my
$ sudo rpi-eeprom-update -d -f /lib/firmware/raspberrypi/bootloader/beta/pieeprom-2021-07-06.bin
If you want to opt out of future upgrades, there are two approaches available:
rpi-eeprom-updateruns at startup and applies an update if a newer image is available in the branch you are following. It may be suspended as follows:
$ sudo systemctl mask rpi-eeprom-update
FREEZE_VERSIONconfiguration variable may be declared by editing the EEPROM configuration. This may be a better choice than suspending the
systemdin some situations. This is done as follows:
$ sudo -E rpi-eeprom-config --edit
Once the configuration is opened in the editor, simply add the
FREEZE_VERSIONparameter on a new line.
A recap of the detailed answer:
To recap briefly:
- You will need to learn what exactly is meant by
latest eeprom configurationin the documentation for the software you plan on installing; i.e. is it the "LATEST" in
- Determine what version of the bootloader your system is currently using via
vcgencmd bootloader_versionas shown above.
- If the desired version is different than the current in-use version, you may update to the desired version via
sudo rpi-eeprom-update -d -f pieeprom.binas shown above.
- Finally, make a decision whether to track a particular branch, and apply automatic upgrades, OR retain the same bootloader using the
FREEZE_VERSIONconfiguration variable, or the alternative
systemctl maskopion as shown above.
There is, or at least used to be, "official documentation" covering much of this EEPROM configuration, but a recent overhaul of the documentation has either eliminated it, left it in an unknown (to me) location.