A bootloader for the Raspberry Pi using the ethernet device logo

A bootloader for the Raspberry Pi using the ethernet device

Free
FreeFree tier
Type
Open Source

About 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

Uploads custom kernels to Raspberry Pi over Ethernet port at runtime
Two-part architecture: boot kernel on Pi + Linux host program
Uses USPi library for USB driver and environment components
Configurable MAC addresses and kernel memory address via etherbootdefs.h
Automated build with provided makeall script
Requires root access for raw socket usage on host
Open source under GPL-2.0 license

Pros & Cons

Pros
  • 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)
Cons
  • 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

Best For

Rapid development and testing of custom Raspberry Pi kernelsEmbedded systems prototyping requiring frequent kernel iterationsEducational projects to understand bootloading and Ethernet communication

FAQ

What is Etherboot?
Etherboot is an experimental bootloader for the Raspberry Pi that uses the Ethernet port to upload custom kernels at runtime.
How does Etherboot work?
It consists of a kernel running on the Raspberry Pi and a Linux program on the host. The host program sends a kernel image over raw Ethernet frames to the Pi, which then loads it into memory.
Which Raspberry Pi models are supported?
It requires an Ethernet port, so Raspberry Pi B and above. It has only been tested on the B+ model.
What kernels can Etherboot load?
Custom kernels up to about 5.5 MB. It cannot boot the standard Linux kernel.
Does Etherboot work over Wi-Fi?
It has only been tested on a wired Ethernet connection. It may not work over wireless, and the interface name would need to be changed in the configuration.
How do I build Etherboot?
Edit etherbootdefs.h with your MAC addresses and kernel load address, edit kernel/Makefile to set RASPPI version and toolchain prefix, then run the makeall script.