
Raspberry Pi 4 can finally boot directly from USB - ethanpil
https://github.com/raspberrypi/rpi-eeprom/issues/28
======
Uehreka
This sounds pretty cool! Features like this really open up exciting ways to
deploy RPis, even for DIY folks like me who use them to do things like control
projectors in a theatre show.

But man oh man, this page is a striking reminder that GitHub could probably
use finer grained controls for commenting on issues. I sympathize with the
person who wanted to close the issue originally, it looks like it just became
a magnet for "Are we there yet?" seat-kicking and "I prefer commenting to
thumbs-upping" spam. If there isn't already, there should be a way to toggle a
single issue so that anyone can react but only org members can comment.

~~~
FullyFunctional
Honest question, why couldn't you do this before, having the boot loader on an
SDcard and everything else hanging off USB?

~~~
segfaultbuserr
You can. See the other comments.

------
LeoPanthera
Best decision I ever made was setting up a Pi netboot server on my LAN. Now I
have a whole bunch of Pi 3's and 4's scattered around my home with no local
storage at all doing cool things, and I can make them boot into a completely
different OS just by renaming a symlink on the server.

~~~
umvi
> Now I have a whole bunch of Pi 3's and 4's scattered around my home with no
> local storage at all doing cool things

Elaborate? I have a single pi3 as a Plex server, looking for more ideas.

~~~
LeoPanthera
Two play music, one into my hifi, one into my home audio distribution system.

One is setup for RetroPie. One has LibreELEC installed, showing TV from my
HDHomeRun. One has a GPS hat and is a local NTP server.

And one boots into an Amiga emulator because I'm very old and nostalgic.

~~~
enobrev
Can I ask what software you're using for music on your home audio system? I
have an HTD system with speakers throughout and while Chromecast Audio was
great for a while, stability has been an issue that I'm no longer interested
in hassling with.

(Also looking forward to researching this netboot solution you speak of)

~~~
hanklazard
Not the parent but I have a similar setup. I use volumio music software on 4
raspberry pi 3b+, each with a hifiberry amp to drive speakers. If you couple
these with snapcast, you have a diy whole house sonos-like setup. Works well
and I control volumes through home assistant.

Not familiar with netbooting, but will be looking into it!

~~~
enobrev
I had been considering a similar setup and then got a notification for a
barely used htd lync12 with amps on Craigslist at an insanely good price and
hopped right on it. I've spent the past year or so wiring up the house a room
at a time, which has been painful and sometimes stressful. But I've become
such a huge fan of the simplicity and stability of a wired setup that it's all
been absolutely worth it.

Thanks for the recommendation. I'll give volumio a closer look.

------
vkaku
This is such a misleading title. 2 and 3 have had this for a while, one can do
this with 4.

I'm currently using a recent MicroSD card on my Pi 4 though, haven't had any
real issues with it.

~~~
tyingq
"Finally available for the RPI4 in the default bootloader" is probably more
accurate.

------
loop0
Honest question, why did this take so long? Is this feature technically too
difficult to implement?

~~~
Jaruzel
As I understand it - the Pi4 has completely different USB hardware.

------
rwmj
Good timing! Only today I was following these instructions to install 64 bit
Fedora on a RPi 4B, booting from a USB 3 drive:

[https://fwmotion.com/blog/operating-
systems/2020-09-04-insta...](https://fwmotion.com/blog/operating-
systems/2020-09-04-installing-fedora-server-onto-pi4/)

(Unfortunately I didn't get to the end because my ancient spinning-rust USB
drives take up a bit too much power to work reliably without a powered USB
hub, so now I have to wait for some SSD-based USB drives to be delivered.)

------
sdfhbdf
From this page [1] on Raspberry Pi's Docs it seems like it's been like that
for a while. Had there been a big change with this ROM specifically?

[1]:
[https://www.raspberrypi.org/documentation/hardware/raspberry...](https://www.raspberrypi.org/documentation/hardware/raspberrypi/bootmodes/msd.md)

~~~
angryold
It was previously in beta (may still be). I've been using this feature for
some time now (at least 2-3 months I feel?).

~~~
kaszanka
The bootloader with USB support was first marked "stable" on 2020-06-17. This
post is about a firmware with USB boot support being released on the
"critical" update channel, which Raspbian will install by default without any
user intervention.

------
pronoiac
Oh man I feel for the maintainers here, with the many "this isn't the place
for that" and now-deleted comments.

It's on my mind, as I just set up a vpn gateway on a Pi, and while I sorta
want to document the process, I don't want to support randos.

~~~
ggm
Yes, the sense of frustration in the threads is palpable. Its a no-win
situation: bleed time/labour dealing with "no" answers and the consequences,
and get hated, or, be harsh up front, and get hated.

~~~
web007
I feel like the RPi reps were incredibly condescending and rude in the thread.
Starting with the immediate closing as a support request they were off on the
wrong foot. Once they reopened, if people are looking for one place to follow
for "can I boot from USB?" then their responses were between pointless and
confusing:

"We have this thing updated, but it's not ready for anyone to use" so why did
they send an update?

Followed predictably by "So when can we use it?"

Then they threaten the user asking about it and lock the thread, only to
unlock it the next day.

All the while none of that matters, because only this week they finally got
whatever was left finished (GPU firmware?) so it can work.

~~~
ggm
I do get this, but i also get the other side. The sense of entitlement
inherent in the requests, the frustration of people who can't be bothered to
read before posting

(I am btw, a serial offender of this, in FreeBSD land)

------
systemvoltage
Not a fan of Raspberry Pi. It hides behind proprietary Broadcom chip, no
DSI/MIPI support and you're at the mercy of Raspberry PI for any sort of
commercial implementation (RPi Zero and independent module). They do guarantee
upto 2026 availability for their DIMM modules which is nice. We wanted to
build commercial device using RPi but its a no go due to its blackbox nature.

What they should do is to leverage their position in the market and convince
Broadcom to open source the bootloader and drivers. There are a bunch of
binary blobs from Broadcom that are a mystery as to what they do. No docs, no
anything. HAL layer is completely at the mercy of Raspbery Pi.

Raspberry Pi is an ecosystem which is based on proprietary technologies and
masquerading as an open source friendly thing.

If you want to support proper open source development (I understand, at some
point things get proprietary the closer you get to the hardware, but with RPi,
there isn't even a datasheet for the processor that you can get your hands
on), buy Beagle board and other alternatives.

~~~
grahamm
I think people forget what it was designed for. It was to reboot IT education
which was (is) badly floundering. It's success was so good it started to be
used in small commercial applications. The Foundation tried to help fill this
gap in the market with the compute module. Even though there is a lot of open
source features the use of the Broadcom chipset was probably driven by cost as
keeping the Pi price down was a factor. If a fully open source and open
document solution is required perhaps the Pi isn't the right choice but then
that was never it's original goal.

~~~
paulmd
I can't imagine having to sysadmin a bunch of raspberry pis in a serious
"production" setting with all the reliability problems they have, that would
be godawful, you'd go through a brace of SD cards every month

~~~
shakna
I can talk to managing Pis in an educational setting, and honestly, it is less
bad than expected. (Disclaimer: No longer a school sysadmin. But was for a
number of years.)

First some comparisons. Kids are seriously rough on technology. We had a fleet
of about three hundred laptops, two hundred iPads, and two hundred Pis in the
junior school.

In a year, we'd end up with about a hundred laptop screen replacements, two
hundred keyboard replacements and about a hundred hard drive replacements.
About ten "I accidentally dropped the laptop in the river"s. We'd cycle the
laptop out for a brand new one at four years, if it survived.

In the same year, about sixty iPad screen replacements, ten or so battery
replacements, and twenty or so river dunkings. Only ever had one hard drive
failure, apart from water damage, but the iPads were on a short two-year
upgrade cycle.

The Pis were used for the robotics clubs (optional) and programming
(compulsary). Pis aren't great for kids and robotics due to lack of protection
on the pins for dumb mistakes. We had about twenty fizzle the mysterious smoke
every year. About twenty more than experienced SD card failure in the year,
usually related to yanking a power cord, not direct write failure. We also had
a couple students a year who snapped theirs in half.

All in all, the cost of maintaining the Pi fleet was negligible besides the
rest.

~~~
glenneroo
I've snapped/bent a few microSD cards myself trying to remove them from
"exotic" cases, both times in hasty situations (interactive art shows). I've
learned to slowly remove them while not exerting any vertical pressure when
it's still halfway inside the Pi - just keep trying to slide the card out
while using fingernails to catch the bump on the end.

~~~
shakna
Ah, sorry. When I said "kids snapped theirs in half", I wasn't referring to
the SD card. I was referring to the Pi itself. Kids can be monstrous when it
comes to technology.

------
627467
I'd love to boot my por from usb as I have plenty of usb sticks/disks and not
many as cards. Is there a performance benefit to this?

~~~
maxioatic
Jeff Geerling has some great and very detailed write ups on this.

To quote directly from his post: "The results really speak for themselves. For
sequential operations, using a USB SSD is 3-4x faster than using a microSD
card."[0]

[0] - [https://www.jeffgeerling.com/blog/2020/im-booting-my-
raspber...](https://www.jeffgeerling.com/blog/2020/im-booting-my-raspberry-
pi-4-usb-ssd) [1] - [https://www.jeffgeerling.com/blog/2020/fastest-usb-
storage-o...](https://www.jeffgeerling.com/blog/2020/fastest-usb-storage-
options-raspberry-pi)

~~~
geerlingguy
Just posted more results talking about TRIM and UASP support too!
[https://www.jeffgeerling.com/blog/2020/raspberry-pi-usb-
boot...](https://www.jeffgeerling.com/blog/2020/raspberry-pi-usb-boot-uasp-
trim-and-performance)

~~~
maxioatic
I thought you'd stop by this thread! Thanks for all your work, it's very
helpful and much appreciated.

------
silicon2401
As a pi noob: does this make it more reliable/feasible to use a pi to run a
home server/application/etc? I've read in the past that SD cards aren't good
with repeated read/writes, which makes it somewhat unreliable in the long run.
If a pi is configured to run via USB, does that make it as reliable as other
consumer hardware like a pc/laptop?

~~~
jagger27
Other commenters in this thread have mentioned netbooting their Pis to avoid
that exact issue. A typical USB flash device won't be any more reliable than
an SD card, though it might be better cooled.

~~~
ComputerGuru
> A typical USB flash device won't be any more reliable than an SD card,
> though it might be better cooled.

That’s not strictly true, as the USB storage controller abstracts away the
NAND and can manage wear leveling and free blocks. There are also more
“enterprise class” USB sticks than SD cards, and the USB3 interface to USB
drives is much faster than pretty much any SD card interface.

Best SD cards and best USB drives are Sandisk Extreme Pro, built entirely
differently from their other lines. While Samsung Evo SSDs are top-of-the-line
in each budget class, stay far away from their Evo SD cards which shamelessly
borrow off the SSD reputation then drive it to the ground. They all tend to go
read-only after undergoing “extended” writes.

Suggestion: if you’re using Linux, stay away from the ext family of file
systems when using SD cards. Use nilfs or f2fs, and XFS if you absolutely must
use a journaled fs.

~~~
GekkePrutser
Can confirm the read only. Indeed had it with 2 cards now. It's really
annoying because the OS still caches writes in RAM so you only find out when
you reboot and all your changes are lost.

Still, not quite as bad as completely corrupting I suppose...

------
AgloeDreams
I have a Pi4 set up to do this with a cheap Walmart portable SSD, it all has
been far more reliable and faster than microSD.

------
del_operator
Been using my Pi 4 8GB with K3s and found it to already be quite enjoyable.
I’ve seen some odd things being new to the Pi. I started off with the full
desktop raspberry os and saw my usb storage devices weren’t mounted when I did
not connect my a monitor or set a default resolution in rasp config.

------
etaioinshrdlu
Which devices now support this? Does this require updating some built-in
flash/eeprom memory?

~~~
rwmj
The bottom of this page has the instructions for it:
[https://www.raspberrypi.org/documentation/hardware/raspberry...](https://www.raspberrypi.org/documentation/hardware/raspberrypi/bcm2711_bootloader_config.md)

It doesn't seem to say which specific versions support it, so perhaps all of
them?

~~~
JonathonW
That page is for the Pi 4; it has a somewhat different boot setup than earlier
versions.

Instructions for USB boot on Pi 2 and 3 variants are here; this has been
officially supported for a few years now (Pi 4 took longer because its boot
process is different):
[https://www.raspberrypi.org/documentation/hardware/raspberry...](https://www.raspberrypi.org/documentation/hardware/raspberrypi/bootmodes/msd.md)

------
Abishek_Muthian
Almost all of my SBCs run from USB storage, the performance improvements over
SD card are obviously night and day; but I never had success with the direct
boot from USB(official methods) and had to jump from SD card to USB storage
after boot i.e. having only /boot on SD card. RPi 4 being newer, I assume it's
designed with USB boot in mind and perhaps USB boot might work better than
earlier iterations.

~~~
gorgoiler
Can you elaborate on the performance improvements over SD card?

(I have always assumed that the SD card had a much faster, more performant bus
than USB. It sounds like that’s wrong?)

~~~
Abishek_Muthian
Sorry, that's not the case. Also I'm on USB SSD, which I should have
mentioned.

Even UHS card with over clocked card reader can reach only ~ 40 MB/s on
RPi[1].

[1][https://www.jeffgeerling.com/blog/2019/raspberry-pi-
microsd-...](https://www.jeffgeerling.com/blog/2019/raspberry-pi-microsd-card-
performance-comparison-2019)

------
snvzz
Rpi4 and still no usb version of bootloader. What am I missing?

    
    
        # rpi-eeprom-update
        BCM2711 detected
        BOOTLOADER: up-to-date
        CURRENT: Tue 10 Sep 2019 10:41:50 UTC (1568112110)
         LATEST: Tue 10 Sep 2019 10:41:50 UTC (1568112110)
        VL805: up-to-date
        CURRENT: 000137ab
         LATEST: 000137ab
    

I wish this was better documented.

~~~
simongr3dal
You gotta do:

    
    
      $ sudo apt update
      $ sudo apt upgrade
      $ sudo apt dist-upgrade
    

Then do a restart and the bootloader should be updated, if that doesn't work
you also need to do a:

    
    
      $ sudo rpi-update
    

Now the eeprom should be updated and the default option should be to boot from
SD, then USB.

~~~
snvzz
... figured it out.

rpi-eeprom is not in archlinuxarm, but rather, I did install it ages ago from
the AUR, manually.

There's a new version, which does the trick.

It turns out, the updater does not look online for the latest version as I'd
imagine it did, but rather, it looks at a local path, and the hope is that the
distribution will take care of the latest firmware being in that path for you.

------
geerlingguy
FYI the EEPROM page in the Raspberry Pi docs still says:

> USB boot support is currently being beta-tested. See > the "USB mass storage
> boot" section of the Bootloader > Configuration Page for further details.

But in general, it seems like it works without having to change your
'FIRMWARE_RELEASE_STATUS' setting from 'critical' to 'stable' anymore.

------
omnifischer
Please add rpi4 to the title

------
cogburnd02
I wonder if this will help improve its status on
[https://www.fsf.org/resources/hw/single-board-
computers](https://www.fsf.org/resources/hw/single-board-computers), moving it
out of the category of SBCs which have "fatal flaws"

~~~
yjftsjthsd-h
Boot media isn't the problem, proprietary firmware is, and that's not changing
here.

~~~
cogburnd02
So where does the firmware reside? On the sd card/usb drive? Or on a chip on-
board? Or somewhere else I haven't thought of?

~~~
yjftsjthsd-h
I believe the main blob is loaded from the SD card and boots the GPU, which
then starts the CPU and loads the OS (the Pi architecture is weird), although
I suppose there must be some tiny blob on a chip on the actual Pi board to
load that stage from the SD card. There's an attempt to make an replacement
for the part on the SD card: [https://github.com/christinaa/rpi-open-
firmware](https://github.com/christinaa/rpi-open-firmware)

------
maxioatic
Might be a silly question because I'm a noob in this area, but:

Does this work with the official Ubuntu images or only Raspbian?

~~~
paines
From the github page ([https://github.com/raspberrypi/rpi-
eeprom/issues/28](https://github.com/raspberrypi/rpi-eeprom/issues/28)) you
can see that this needs an updated firmware which you can install via rpi-
update. Never used Ubuntu on the Pi only raspbian, but I am sure they also
have those rpi tools. How does Ubuntu run on the Pi work? I never got passed
installation, because after install the first boot just hangs. It seems to me
it wants to install additional stuff via ethernet which in my case is not
attached and I never had the option to configure wifi....

~~~
ComputerGuru
It’s not clear what method you used but for the benefit of others: Don’t
install Ubuntu, it doesn’t have the needed closed source firmware blobs and
isn’t compiled with some of the kernel modules the Pi uses. Instead burn a
copy of the preinstalled Ubuntu Raspberry Pi disk images to an SD card.

Downloads here: [https://ubuntu.com/download/raspberry-
pi](https://ubuntu.com/download/raspberry-pi)

64-bit is only supported on newer 3B and 4 devices and is missing some Pi-
specific features.

------
amelius
Now if someone could make this possible across NVidia's Jetson platform ...

~~~
yjftsjthsd-h
It's pretty tied to the hardware. Closest obvious option might be to boot your
board to uboot and then chain to the real payload?

------
FullyFunctional
It's nice but I'm honestly baffled that it's seen as such a big deal as it's
pretty trivial to make grub boot off USB, leaving the SDcard only being used
doing the initial boot. Is it just about the convenience?

~~~
FullyFunctional
Instead of downvoting me, maybe you could explain what I'm missing?

~~~
boredpenguin
> Instead of downvoting me, maybe you could explain what I'm missing?

I didn't downvote you, just my opinion:

> it's pretty trivial to make grub boot off USB, leaving the SDcard only being
> used doing the initial boot

In that case you still need an SDcard, and it requires manual setup. With this
you can truly boot from USB drives easily WITHOUT the SD card.

~~~
vaccinator
You have to update it using an SD card?

~~~
progval
After the initial update, you can use it for something else.

------
teslalang
Big improvement over having to use SD chip!

------
agustif
Is thhere any way to use OS X on a Pi?

Asking for a friend

~~~
askvictor
Once OSX on ARM arrives, this would be a lot easier; however, I'd expect
Apple's silicon would be a lot newer (and have more instructions) than the
rpi's, so it might not end up being possible/feasible.

~~~
agustif
Nice one, can't wait to try it! hope hackintosh is still a thing then

------
pmarreck
Can I boot on ZFS root yet?

