Using NVMe Base: boot order for USB, NVMe?

What is the correct BOOT_ORDER to try a USB stick first? I’m out of guesses.

Thanks

It is not critical so long as you avoid the network boot as this could take a while before giving up. Just remove the SD card and the boot software will find the USB drive. It might spend a few seconds looking for it first time through.

I used to find the lower USB-3 socket is checked first so try that.

Edit: using raspi-config, 6 advanced-options, A4 Boot Order, it is option:

B2 NVMe/USB Boot

that you probably want long-term for the quickest boot.

It’s not found in any of the ports. I tried several different boot_order strings to no avail.
BOOT_ORDER=0x4,0xf416 was my last gasp. Ran the imager on the USB drive twice.

Tried option B1 and B2 in raspi advanced.

Something has gone wrong. If you use raspi-config to set things up you do not need to add boot-order strings anywhere. raspi-config does all the configuring for you.

I have 2 Pi 5’s in front of me, one set up to run with the Pimoroni NVMe base and the other from a Samsung T5 USB drive. Both set up using standard RPi OS and raspi-config to set boot order, and also PCIe speed for the NVMe base. Both boot flawlessly. I hope you get it sorted.

One thought though - and you probably know this but for completeness… You might need to upgrade your Pi firmware. I recall the Pimoroni NVMe Base notes mention this.

Firmware is the latest.
10A power supply. I see that referenced a lot, but doubt it applies here.
Unplugged the SSD and it boots from the USB drive.

My cmdline.txt is explicitly choosing the SSD to boot from. I think that might be the issue, but I’m afraid to modify it :)

Can I ask what is in your config.txt and cmdline.txt?

I have no idea. I just use raspi-config. I got rid of my Linux handbooks years ago. I exaggerate a bit but editing config files is something I rarely do these days.

I should add that the Pi is just a means to an end. If it runs Thonny for Python and Micropython I am happy.

If you can be so kind
cat /boot/firmware/cmdline.txt

My guess is:
console=serial0,115200 console=tty1 root=/dev/sda2 rootfstype=ext4 rootdelay=5 fallbackroot=/dev/nvme0n1p2 fsck.repair=yes rootwait cfg80211.ieee80211_regdom=US


1 Like

Thanks for the pics.

For posterity: Your settings were effectively the same as mine, so I tried tried what I posted above and that was the answer for me.

So you have it working? 👍

It is now, but there is weirdness to follow:

That line above (not needed at all now) let the USB drive boot when installed, but the SSD wouldn’t when there wasn’t one. I went around the world searching for a fix but stumbled on a working solution. I set the boot order backwards: 0x641. That is supposed to mean SSD,USB,SD.

FYI: raspi-config just sticks some version of that boot order into the EEPROM for you. When you save and exit you can see it do that. equivalent to sudo rpi-eeprom-config --edit