• Stars
    star
    189
  • Rank 204,649 (Top 5 %)
  • Language Makefile
  • Created about 5 years ago
  • Updated 9 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

iPXE for the Raspberry Pi

piPXE - iPXE for the Raspberry Pi

Build Release

piPXE is a build of the iPXE network boot firmware for the Raspberry Pi.

Quick start

  1. Download sdcard.img and write it onto any blank micro SD card using a tool such as dd or Etcher.

  2. Insert the micro SD card into your Raspberry Pi.

  3. Power on your Raspberry Pi.

Within a few seconds you should see iPXE appear and begin booting from the network:

Screenshot

Building from source

To build from source, clone this repository and run make. This will build all of the required components and eventually generate the SD card image sdcard.img.

You will need various build tools installed, including a cross-compiling version of gcc 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

How it works

The SD card image contains:

The Raspberry Pi has a somewhat convoluted boot process in which the VC4 GPU is responsible for loading the initial executable ARM CPU code. The flow of execution is approximately:

  1. The GPU code in the onboard boot ROM loads bootcode.bin from the SD card.
  2. The GPU executes bootcode.bin and loads RPI_EFI.fd from the SD card.
  3. The GPU allows the CPU to start executing RPI_EFI.fd.
  4. The CPU executes RPI_EFI.fd and loads bootaa64.efi from the SD card.
  5. The CPU executes bootaa64.efi (i.e. iPXE) to boot from the network.

Licence

Every component is under an open source licence. See the individual subproject licensing terms for more details:

More Repositories

1

ipxe

iPXE network bootloader
C
1,440
star
2

wimboot

WIM bootloader
C
220
star
3

shimdemo

UEFI shim transparent loader demo
Makefile
16
star
4

ProxyLoaderPkg

UEFI loader protocol proxy
C
11
star
5

cx

Privacy-compatible distributed contact tracing
C
9
star
6

keyflogger

USB keyboard/mouse injector
Assembly
7
star
7

vendor-displaylink-dlpxe

DisplayLink DLPXE repository
C
6
star
8

sanbootconf

SAN Boot Configuration Driver for Windows
C
6
star
9

bochs

Bochs SVN mirror
C++
5
star
10

vendor-mellanox-flexboot

Mellanox FlexBoot public repository
C
5
star
11

osbootd

Operating System boot daemon
Python
4
star
12

sanbootable

SAN bootability package
M4
4
star
13

vendor-ccboot-sanbootconf

CCBoot sanbootconf repository
C
3
star
14

people-rjn-quickusb

QuickUSB device driver and utilities
C
2
star
15

vendor-2pint-ipxe

2Pint Software iPXE repository
C
2
star
16

people-sha0-winvblock

Shao's WinVBlock repository
C
2
star
17

people-mareo-ipxe

Marin Hannache's iPXE repository
C
2
star
18

efikit

UEFI Userspace Development Kit
C
2
star
19

vendor-ccboot-ipxe

CCBoot iPXE repository
C
2
star
20

people-rjn-ni4462

National Instruments NI4462 hacks
C
1
star
21

fcoed

FCoE userspace test daemon
C
1
star
22

people-rjn-pulseblaster

SpinCore PulseBlaster driver
PHP
1
star
23

vendor-qlogic-ipxe

QLogic public iPXE repository
C
1
star
24

vendor-broadcom-ipxe

Broadcom iPXE repository
C
1
star
25

people-cottsay-ipxe

cottsay's iPXE repository
C
1
star
26

vendor-honeywell-ipxe

Honeywell iPXE repository
C
1
star
27

people-dewyatt-ipxe

Daniel Wyatt's iPXE repository
C
1
star
28

vendor-jentu-ipxe

JentuPXE public repository
C
1
star
29

people-meteger-ipxe

Thomas Miletich's iPXE repository
C
1
star
30

people-cooldavid-ipxe

GuoFuTseng's iPXE repository
C
1
star
31

people-peper-ipxe

Piotr's iPXE repository
C
1
star
32

people-jbjohnso-ipxe

Jarrod's iPXE repository
C
1
star
33

vendor-2pint-wimboot

2Pint Software wimboot repository
C
1
star
34

vendor-xcat-ipxe

xCAT public iPXE repository
C
1
star
35

vendor-vmware-ipxe

VMware public iPXE repository
C
1
star
36

people-budrys-ipxe

Adrian JamrΓ³z's iPXE repository
C
1
star
37

vendor-alcatel-lucent-ipxe

Alcatel-Lucent iPXE repository
C
1
star
38

people-sha0-ipxe

Sha0's iPXE repository
C
1
star
39

shimbuilder

UEFI shim reproducible build container
Dockerfile
1
star