- Notifications
You must be signed in to change notification settings - Fork39
ipxe/pipxe
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
piPXE is a build of theiPXE network boot firmware for theRaspberry Pi.
Downloadsdcard.img and write it onto any blank micro SD cardusing a tool such as
dd
orEtcher.Insert the micro SD card into your Raspberry Pi.
Power on your Raspberry Pi.
Within a few seconds you should see iPXE appear and begin booting fromthe network:
To build from source, clone this repository and runmake
. This willbuild all of the required components and eventually generate the SDcard imagesdcard.img.
You will need various build tools installed, including across-compiling version ofgcc
for building AArch64 binaries.
Fedora build tools:
sudo dnf install -y binutils gcc gcc-aarch64-linux-gnu \ git-core iasl libuuid-devel make \ mtools perl python subversion xz-devel
Ubuntu build tools:
sudo apt install -y build-essential gcc-aarch64-linux-gnu \ git iasl lzma-dev mtools perl python \ subversion uuid-dev
The SD card image contains:
- BroadcomVC4 boot firmware:
bootcode.bin
and related files - TianoCore EDK2 UEFI firmware built for theRPi3 platform:
RPI_EFI.fd
- iPXE built for the
arm64-efi
platform:/efi/boot/bootaa64.efi
The Raspberry Pi has a somewhat convoluted boot process in which theVC4 GPU is responsible for loading the initial executable ARM CPUcode. The flow of execution is approximately:
- The GPU code in the onboard boot ROM loads
bootcode.bin
from the SD card. - The GPU executes
bootcode.bin
and loadsRPI_EFI.fd
from the SD card. - The GPU allows the CPU to start executing
RPI_EFI.fd
. - The CPU executes
RPI_EFI.fd
and loadsbootaa64.efi
from the SD card. - The CPU executes
bootaa64.efi
(i.e. iPXE) to boot from the network.
Every component is under an open source licence. See the individualsubproject licensing terms for more details: