Long Story Short
I tried running a Fedora 42 bootc image on a Raspberry Pi 5. It’s a partial success, but I got far enough to learn a lot. The Pi 5 boots and I can log in, but the stock kernel can’t see the Ethernet chip, the Wi-Fi chip, or most other drivers. Only the USB ports work.
How I Installed Fedora 42 bootc into RPi5?
- Built an ARM64
disk.rawimage with bootc-image-builder from Raspberry Pi 5 itself. (I know QEMU exists, but I couldn’t get it working due to my lack of knowledge with QEMU) *shrugs - Flashed it on an SD Card with
dd. - Added the community EDK2 UEFI firmware (rpi5-uefi to the EFI partition, next to the existing
EFI/folder. - Booted the Pi5 and reached a Fedora 42 Login. (partially successful).
What worked and what didn’t?
| Hardware | Result |
|---|---|
| Boot to login | Works |
| Password to login | Works |
| USB ports | Works |
| Ethernet | Hardware Not Detected |
| Wifi | Hardware Not Detected |
| USB Tethering | Interface show enu1 |
| USB Ports | Works |
Idle RAM usage was a nice surprise.
htopshowed about 184 MB used out of 8 GB. That’s a minimal image with no desktop, so it’s not a fair comparision with a normal install.
Blockers I Hit
- Firmware copied to the wrong place. The first copy went into an unmounted folder on the PC, instead of the SD Card. Found a tool named
findmntand I used it to rectify the issue. - No way to login. The first image had an SSH key but no password. I rebuilt it with a password(+SSH key).
- No Ethernet,
ip ashowed only the loopback interface. - Tried
Device Tree Mode, but the boot stopped in theinitramfs, waiting for the root disk. It couldn’t see the SD card. (Suggested by Claude). I don’t even know what is “Device Tree Mode” to begin with, so I gave up.
Why the hardware isn’t detected?
At first, I thought it was a missing package issue. It isn’t and all the required packages were installed by default from the base image. Simple enough, the reason is a driver can only attach to hardware the kernel knows/sees, and in UEFI mode nothing describes Pi5’s hardware to the kernel.
Pi5’s Ethernet also sits on a separate chip called RP1, which needs proper Pi 5 kernel and device tree support. The stock Fedora kernel doesn’t have that.
What it needs to work? (from my observation)
- A Raspberry Pi 5 kernel.
- Possibly a U-boot instead of EDK2. As Fedora boots through U-boot with a Device Tree, we’d be able to copy those files to the EFI partition easily. (I haven’t checked how well U-boot supports the Pi 5 on Fedora)
- A newer base bootc image. Probably Fedora 44 which seemed to make ethernet work. (but I haven’t tested it)
- I should have tried USB to Ethernet adapter to connect to the network, but even the USB tethering was bugging out so I’m not sure that’s actually a solution here.
Why the Raspberry Pi 5 doesn’t use GRUB or UEFI
These are my general knowledge and some I just discovered after experimenting with RPi5.
A normal x86 PC starts with UEFI and then GRUB. The Pi 5 doesn’t. It starts from its own bootloader, which is stored on a small EEPROM chip on the board.
- The Pi’s VideoCore GPU starts first, sets up the RAM, then starts the CPU.
- By default the bootloader tries the SD card, then NVMe, then USB. That’s a fallback order, not a boot menu.
- It can load a Linux kernel straight from a FAT32 boot partition, so GRUB isn’t really needed.
- UEFI was never part of this design, so Fedora’s UEFI-based boot chain has nothing to start from.
The Pi 4 has a third-party UEFI firmware that fills this gap pftf/RPi4. I used the Pi 5 version of it, worproject/rpi5-uefi
This is a progress report on my Fedora experiments, not a final guide/documentation, so don’t take everything here as the final fact. I’ll follow up with the next experiments and my progression. Stay tuned! ;)