Git Product home page Git Product logo

pipxe's Introduction

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:

pipxe's People

Contributors

mcb30 avatar scarjit avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.