JonG
Posts: 7
Joined: Thu Oct 10, 2019 4:23 am

Pi 4 EEPROM update with system on USB device (SSD)

Thu Oct 10, 2019 5:35 am

I have set up Raspbian on a USB device using the method described here:
https://www.tomshardware.com/news/boot- ... 39782.html
and also seen in several other places.

I have installed rpi-eeprom, but found that the EEPROM was not updated on reboot.

I tried updating manually, but got the error message "BOOTFS: "/boot" contains no .elf files".

I assume that the update program is looking at /boot on the USB device, not the SD Card.

I ran rpi-eeprom -h, and found the following comment: "If /boot does not correspond to the boot partition on the sd-card and this is not a NOOBS system then the mount point for BOOTFS should be defined in /etc/default/rpi-eeprom-update".

Its not clear to me exactly how to define the mount point for the SD mount, and I don't want to experiment with the EEPROM update process, given the potential to corrupt the EEPROM and/or operating system.

I think the safest option would be to make a separate SD card based raspian system just to update the Pi 4 EEPROM, and then swap back to my "work" SD card.

I would appreciate any comments.

Kendek
Posts: 145
Joined: Thu Jul 25, 2019 4:39 pm
Location: Kaposvár, Hungary

Re: Pi 4 EEPROM update with system on USB device (SSD)

Thu Oct 10, 2019 10:01 am

You can update the EEPROM to the current stable version with the following commands:

Code: Select all

wget -O /boot/partition/recovery.bin https://github.com/raspberrypi/rpi-eeprom/raw/master/firmware/recovery.bin
wget -O /boot/partition/pieeprom.upd https://github.com/raspberrypi/rpi-eeprom/raw/master/firmware/critical/pieeprom-2019-09-10.bin
reboot
The /boot/partition is the first, FAT32 partition on the SD card.
If you want a custom configuration, replace the pieeprom.upd file.
Last edited by Kendek on Thu Oct 10, 2019 10:07 am, edited 1 time in total.

timg236
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 309
Joined: Thu Jun 21, 2018 4:30 pm

Re: Pi 4 EEPROM update with system on USB device (SSD)

Thu Oct 10, 2019 10:07 am

JonG wrote:
Thu Oct 10, 2019 5:35 am
I have set up Raspbian on a USB device using the method described here:
https://www.tomshardware.com/news/boot- ... 39782.html
and also seen in several other places.

I have installed rpi-eeprom, but found that the EEPROM was not updated on reboot.

I tried updating manually, but got the error message "BOOTFS: "/boot" contains no .elf files".

I assume that the update program is looking at /boot on the USB device, not the SD Card.

I ran rpi-eeprom -h, and found the following comment: "If /boot does not correspond to the boot partition on the sd-card and this is not a NOOBS system then the mount point for BOOTFS should be defined in /etc/default/rpi-eeprom-update".

Its not clear to me exactly how to define the mount point for the SD mount, and I don't want to experiment with the EEPROM update process, given the potential to corrupt the EEPROM and/or operating system.

I think the safest option would be to make a separate SD card based raspian system just to update the Pi 4 EEPROM, and then swap back to my "work" SD card.

I would appreciate any comments.
The script has to write recovery.bin to the boot partition on the sd-card. By default it will assume that /boot in the VFS is the appropriate mount point. You can either change fstab to mount /dev/mmcblk0p1 on /boot or if you prefer you can define BOOTFS in /etc/default/rpi-eeprom-update to be a different mount point.

  • There is some special stuff for NOOBs because /boot is an extended partition but the primary boot partition is the recovery one.
  • Replace /dev/mmcblk0p1 with whatever the boot partition actually is, although I'd generally recommend using the first primary partition on the sd-card for boot because it's less confusing.

Return to “Advanced users”