A bootloader for the Raspberry Pi using the ethernet device
FreeAbout A bootloader for the Raspberry Pi using the ethernet device
Etherboot is an experimental bootloader for the Raspberry Pi (model B and above) that enables uploading custom kernels to the device over its Ethernet port at runtime. It consists of two parts: a kernel that runs on the Raspberry Pi and a Linux program that runs on a host machine. The host program sends a kernel image to the Pi via raw Ethernet frames, allowing developers to quickly test custom kernels without swapping SD cards. The project uses the USPi library for USB driver support and environment components. Configuration is done through a header file (etherbootdefs.h) where MAC addresses and kernel load address are specified. Building is automated via a makeall script. The tool is licensed under GPL-2.0 and is primarily written in C and C++.
Key Features
Pros & Cons
- Eliminates need to swap SD cards for kernel updates
- Open source (GPL-2.0) and free to use
- Simple two-step usage: boot Pi, then run host command
- Supports arbitrary kernel loading (within ~5.5 MB size limit)
- Experimental — may not work with all kernels (e.g., cannot boot the Linux kernel)
- Only tested on Raspberry Pi B+ model and wired Ethernet connections
- Maximum kernel size limited to approximately 5.5 MB
- Requires root privileges on the host to use raw sockets
- Wireless connectivity not guaranteed; only wired tested