TTT. My question got buried amid alot of off topic chatter.
Thank you.
TTT. My question got buried amid alot of off topic chatter.
If you edit /etc/default/rpi-eeprom-update and change FIRMWARE_RELEASE_STATUS you can set it to 'stable' instead of 'beta'
After 46 years of being told to develop software faster, James, I gave up trying trying to figure out why people think that and started wondering if some people think at all.
There aren't any special incantations, rpi-eeprom-update writes the files to /boot as normal. The difference is that once you have enabled SELF_UPDATE in the bootloader a subsequent network boot will be able to update itself.kpf wrote: ↑Sat Mar 28, 2020 12:03 pmI too have a pair of 4Bs running network boot (for months) happily so thank you for all of the work you put into this, everyone!
I'd like to try the new SELF_UPDATE mode, so that I don't need to have SD cards in my Pis, but I can't quite figure out how to tell rpi-eeprom-update to do the right thing. As I understand it, it will have to notice that there is a newer bootloader version, merge the existing configuration values into a copy of the new version, and then drop it into /boot as pieeprom.upd. I've read through the entire script a few times and I can only see two modes: the flashrom mode where the update is applied immediately, and the recovery mode where recovery.bin is used to apply the update.
What's the proper incantation for rpi-eeprom-update to place the files into /boot so that SELF_UPDATE can use them?
You need to set bootloader_update=1 in config.txt as well, that makes it easier for this to be conditional or reverted once complete
Code: Select all
BCM2711 detected
*** INSTALLING ./pieeprom-new.bin ***
Applying bootloader update ./pieeprom-new.bin
flashrom on Linux 5.4.29-v7l+ (armv7l)
flashrom is free software, get the source code at https://flashrom.org
Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns).
linux_spi_init: failed to open /dev/spidev0.0: No such file or directory
Error: Programmer initialization failed.
flashrom EEPROM update failed
I suspect there's an issue with the dtoverlay to enable SPI in the 5.4 kernel. I'd suggest disabling USE_FLASHROM in /etc/default/rpi-eeprom-updatedickon wrote: ↑Mon Apr 20, 2020 10:51 amHmm. Thought I'd try this this morning, following the instructions at https://www.raspberrypi.org/documentati ... _config.md. But I get:
and, indeed, there's no /dev/spidev0.0 around. I don't have anything SPI on any of my Pis, so this is unknown territory to me. What have I done?Code: Select all
BCM2711 detected *** INSTALLING ./pieeprom-new.bin *** Applying bootloader update ./pieeprom-new.bin flashrom on Linux 5.4.29-v7l+ (armv7l) flashrom is free software, get the source code at https://flashrom.org Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns). linux_spi_init: failed to open /dev/spidev0.0: No such file or directory Error: Programmer initialization failed. flashrom EEPROM update failed
Linux pi4 5.4.29-v7l+ #1304 SMP Tue Apr 7 18:38:20 BST 2020 armv7l GNU/Linux
That 'works', but then obviously doesn't actually flash anything... The eeprom version is older than the self-update-capable version.
I've read that in the documentation (section SELF_UPDATE) already. I guess the reason is that if the EEPROM update is done by recovery.bin, one of two outcomes can happen:
Correct. The ROM always loads recovery.bin in the SD card in preference to SPI flash so that you can always update the SPI flash. If the SPi flash is corrupted and there's no SD card then there's no fallback. The ROM doesn't support failover to alternate SPI flash images and there's not enough space in the current SPI flash for that anyway.dividuum wrote: ↑Mon Apr 20, 2020 3:15 pmI've read that in the documentation (section SELF_UPDATE) already. I guess the reason is that if the EEPROM update is done by recovery.bin, one of two outcomes can happen:Correct? If so, the reason the self update isn't safe, is that there's no emergency recovery.bin to retry a failed flash initiated by the existing running.
- Pi finds and loads recovery.bin, which then flashes pieeprom.upd and others and finally rename itself to recovery.001 before a reboot.
- Pi finds and loads recovery.bin, flashes pieeprom.upd and is power cycled. The firmware is broken, but as the recovery.bin still exists and is loaded even before the now half-flashed code is jumped into, the process restarts hopefully succeeding in the next attempt.
You were right. This being a media machine (or will be, once there's 10b support) I have dtparam=audio=on in /boot/config.txt. A random dmesg at the right time showed it clashing with the SPI. Disabled it and flashrom runs.
Code: Select all
# Value may be one of:
# beta - Bleeding edge firmware
# stable - More stable than beta, but not yet recommended for newbies
# critical (default) - The most stable firmware, recommended for newbies
# someothername - You can create your own firmware directory under /lib/firmware/raspberrypi/bootloader/
# See https://www.raspberrypi.org/documentation/hardware/raspberrypi/booteeprom.md for details
Exactly.M1dn1ghtN1nj4 wrote: ↑Mon Apr 20, 2020 5:49 pmMaybe a dumb question, but when flashing the bootloader, is it persistent? I can swap sd cards, reinstall Raspian/OctoPrint etc, and the bootloader will stay updated? Updated on an eeprom similar to a BIOS?
It's already documented in the online documentation and rpi-eeprom-update -h, and man rpi-eeprom-updatebls wrote: ↑Mon Apr 20, 2020 5:37 pmIMHO the names are less critical (no pun intended) than having documentation handy. May I suggest that the next Raspbian update add a few lines of comments to /etc/default/rpi-eeprom-update:
Code: Select all
# Value may be one of: # beta - Bleeding edge firmware # stable - More stable than beta, but not yet recommended for newbies # critical (default) - The most stable firmware, recommended for newbies # someothername - You can create your own firmware directory under /lib/firmware/raspberrypi/bootloader/ # See https://www.raspberrypi.org/documentation/hardware/raspberrypi/booteeprom.md for details
Fair point.timg236 wrote: ↑Mon Apr 20, 2020 6:14 pm
It's already documented in the online documentation and rpi-eeprom-update -h, and man rpi-eeprom-update
More than happy for people to submit PRs (and thanks to those who already have done so!) to improve text and documentationThat tends to get updated much faster than people complaining about docs on forums
![]()
Yep we know that feeling .I'm in a bad mood. I'm at home....,
Code: Select all
root@pi4:~# rpi-eeprom-update -a
BCM2711 detected
*** INSTALLING EEPROM UPDATES ***
BOOTLOADER: up-to-date
CURRENT: Thu 16 Apr 17:11:26 UTC 2020 (1587057086)
LATEST: Thu 16 Apr 17:11:26 UTC 2020 (1587057086)
FW DIR: /lib/firmware/raspberrypi/bootloader/stable
VL805: update required
CURRENT: 000137ab
LATEST: 000137ad
EEPROM updates pending. Please reboot to apply the update.
root@pi4:~# ls /boot/vl8*
/boot/vl805.bin /boot/vl805.sig
root@pi4:~# vcgencmd bootloader_config | grep SELF
SELF_UPDATE=1
root@pi4:~# grep bootload /boot/config.txt
bootloader_update=1