[ARM] Raspberry Pi 4 series - boot from USB device

The people over at Archlinux Arm have been putting out some really great enhancements lately. Kudos to everyone involved with this.

One of the enhancements is the ability to boot from a USB device.
Another is linux-raspberrypi4 5.10.16-3 mainline kernel.

So today was spent playing with booting from a USB device. It culminated in a new version of the image installer.

EDIT:
In order to boot a RPi 4b or 400 from a USB device,
the onboard eeprom must have the latest version of firmware.
See Post # 3 on this topic.

Follow the instructions to git clone image-install, launch image-install, and answer some basic questions

So far, this only works on the 32 Bit OS. Then


and you end up with an Archlinux Arm base image install on a USB device.
Plug the USB device in your RPi4 and then install EndeavourOS with your choice of Desktop Environments.

Here are five USB devices I successfully installed Archlinux Arm on, and the three test beds I tested on.

Left to right: Sandisk USB Thumb drive 16 GB, Samsung 560 EVO 256 GB, Samsung T5 500 GB, Samsung T7 500 GB, and a Samsung m.2 NVME 970 + 500 GB in a NVME to USB C enclosure. I think they are pretty much lined up in order of speed also. No proof, just a subjective guess. Although between the last four the speed difference is probably insignificate.

Tested on a Raspberry Pi 4b 4 GB RAM, a Raspbery Pi 4b 8 GB RAM, and a Raspberry Pi 400.

As they say, no neofetch means it never happened.

Pudge

7 Likes

Wow !!! That fast… look like I clean ssd later today​:blush: :pray: so much for this…

2 Likes

Many thanks to @Shjim for doing some testing on this. :pray: It came up that in order for a RPi 4b or 400 to boot from a USB device, the board must have the latest eeprom firmware installed.

Here is how to check for the installed eeprom firmware version, and how to update it IF you choose to do so.

The first thing that needs to be done, is check the EEPROM version in the Raspberry Pi 4b. If it isn’t the latest version, it needs to be updated to do USB boot. This only needs to be done once, then you are good to go. Raspberry Pi OS will be utilized to do this EEPROM upgrade. It is the official OS for RPi4, and the EEPROM update is now official and in their stable repository. This has to be the safest way to flash the EEPROM, but you still do this at YOUR OWN RISK.

Install Raspberry Pi OS Lite on a 8GB or bigger micro SD card.
In a Operational Linux computer, in a internet browser go to:

and click on the ‘Raspberry Pi OS Lite’ download button.

After it is downloaded, using a file manager, go to the Downloads directory. Then on the downloaded file, right click, and use an Archive Manager to extract the image file.

Use gnome-disks or your favorite ISO burner to install the image on a 8 GB or larger micro SD card. When finished, insert the micro SD card in the Raspberry Pi 4b and power it up.

When the RPi4 is finished booting and doing a little house cleaning, log in as username ‘ pi ‘ and password ‘ raspberry ‘. Update the image.

$ sudo apt update
$ sudo apt full-upgrade
$ sudo systemctl reboot

After reboot, as user ‘ pi ’ edit the following config file using nano or vi

$ sudo nano /etc/default/rpi-eeprom-update
change
From: FIRMWARE_RELEASE_STATUS=”critical”
To: FIRMWARE_RELEASE_STATUS=”stable”
close file.

Check the Current firmware version

pi@raspberrypi:~ $ sudo rpi-eeprom-update

BCM2711 detected
VL805 firmware in bootloader EEPROM
Checking for updates in /lib/firmware/raspberrypi/bootloader/stable
Use raspi-config to select either the default-production release or latest update.
BOOTLOADER: up-to-date
CURRENT: Sat 16 Jan 2021 02:10:13 PM UTC (1610806213)
LATEST: Sat 16 Jan 2021 02:10:13 PM UTC (1610806213)
RELEASE: stable
VL805: up-to-date
CURRENT: 000138a1
LATEST: 000138a1

Check the installed version of the installed firmware. If it reads
CURRENT: 000138a1
It is up to date. If it is not 000138a1 (probably a lower number) then it is not up to date.

If it is not up to date, you have to make a decision whether to upgrade the firmware or not.

Update the firmware.
$ sudo rpi-eeprom-update -d -a
The EEPROM is now updated. Raspberry Pi OS and the micro SD card it is on are no longer needed.

Your RPI 4b or 400 should now be capable of booting from a USB device.

Pudge

3 Likes