Ipxe compile
iPXE - compilation, configuration and including in firmware
NOTE: this procedure applies to legacy releases older than v4.0.14
Compilation
- Prepare build environment, if you haven't done so yet
- Build firmware, if you haven't done so yet
-
Clone iPXE repository:
git clone git@github.com:pcengines/ipxe.git
-
Configure and run build in container:
docker run -v ${PWD}/../src/coreboot:/coreboot -v ${PWD}/../src/ipxe:/ipxe -t -i pc-engines/apu2b cd /ipxe wget https://raw.githubusercontent.com/pcengines/apu2-documentation/master/ipxe/general.h -O src/config/local/general.h wget https://raw.githubusercontent.com/pcengines/apu2-documentation/master/ipxe/shell.ipxe -O src/shell.ipxe
wget
downloads iPXE configuration that maximize feature set that is exposed. Supported features:- net proto: IPV4, IPV6, STP
- download proto: TFTP, HTTP, HTTPS, FTP, SLAM, NFS
- image: NBI, ELF, MULTIBOOT, PXE, SCRIPT, BZIMAGE, COMBOOT, SDI, PNM, PNG
For more details please check general.h.
make bin/8086157b.rom EMBED=./shell.ipxe
Note that
${PWD}/../src/ipxe
is absolute path to repository cloned in point 3.
As a result you will have bin/8086157b.rom
Including in firmware image
To include iPXE ROM in coreboot.rom
please use cbfstool
.
To add iPXE ROM to existing image inside container:
cd /
./coreboot/build/cbfstool ./coreboot/build/coreboot.rom add -f /ipxe/src/bin/8086157b.rom -n genroms/pxe.rom -t raw
If you already have genroms/pxe.rom
, please remove it and then add new
version:
./coreboot/build/cbfstool ./coreboot/build/coreboot.rom remove -n genroms/pxe.rom