Netbooting Raspberry Pi
![]() Consult Official Reference pages for Pi 3B, 3B+, 2B v1.2, 4, 5 for updated information. |
The Raspberry Pi 4 bootloader can be configured to boot from the network. Configure the bootloader with at least
BOOT_ORDER=0xf142 TFTP_PREFIX=1
and optionally also
TFTP_IP=x.x.x.x
where x.x.x.x
is the IP address of your TFTP server.
If not configuring TFTP_IP
in the bootloader, you'll need to configure your DHCP server to advertise the TFTP server IP address. This varies depending on your DHCP server; use the following details if applicable:
- Vendor class:
PXEClient:Arch:00000:UNDI:002001
- Filename:
/
The minimal set of files that your TFTP server needs to host are:
bcm2711-rpi-4-b.dtb
(from raspberrypi/firmware/master/boot/bcm2711-rpi-4-b.dtb)cmdline.txt
(see below)config.txt
(see below)fixup4.dat
(from raspberrypi/firmware/master/boot/fixup4.dat, alternativelyfixup4cd.dat
for the cut down version)initramfs-rpi4
(from alpine/edge/releases/aarch64/netboot/initramfs-rpi4)start4.elf
(from raspberrypi/firmware/master/boot/start4.elf, alternativelystart4cd.elf
for the cut down version)vmlinuz-rpi4
(from alpine/edge/releases/aarch64/netboot/vmlinuz-rpi4)
The config files can be as follows
Contents of config.txt
Contents of cmdline.txt
Instead of using the http://dl-cdn.alpinelinux.org/alpine/edge/releases/aarch64/netboot/ base URL above, pinning to a specific point in time is preferred. Raspberry Pi 4 netboot files are available from https://dl-cdn.alpinelinux.org/alpine/edge/releases/aarch64/netboot-20230329/ onward.
With the above configured the Raspberry Pi 4 should be able to boot from the network without an SD card.