[build] Add support for including a UEFI shim in filesystem images

Add support for loading iPXE via a UEFI shim in ISO and USB images.
Since the iPXE shim's default loader filename is currently "ipxe.efi"
for all CPU architectures, at most one architecture within an image
may use a shim.  (This limitation should be removed in the next signed
release of the iPXE shim.)

Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
Michael Brown
2026-03-02 16:10:49 +00:00
parent 1fbc3bca70
commit 3680a4ae52
2 changed files with 73 additions and 12 deletions
+22 -1
View File
@@ -382,6 +382,11 @@ jobs:
bin-riscv32-efi/${DRIVERS}.efi
bin-riscv64-efi/${DRIVERS}.efi
bin-x86_64-efi/${DRIVERS}.efi
sbarchs: >-
arm64
x86_64
sbbinaries: >-
bin-${ARCH}-efi-sb/ipxe.efi
srvbinaries: >-
bin/ipxe.pxe
bin/ipxe-legacy.pxe
@@ -424,7 +429,7 @@ jobs:
with:
pattern: "{bin,bin-x86_64-pcbios,bin-*-efi,bin-*-efi-sb,shim}"
- name: ISO + USB
- name: Autoexec
run: |
# Provide an editable placeholder autoexec.ipxe for the USB image
cat > autoexec.ipxe <<'EOF'
@@ -434,12 +439,24 @@ jobs:
Press Ctrl-B for the iPXE command line... \
&& shell || autoboot
EOF
- name: ISO + USB
run: |
for DRIVERS in ipxe ipxe-legacy ; do
./src/util/genfsimg -o ${DRIVERS}.iso ${{ env.fsbinaries }}
./src/util/genfsimg -o ${DRIVERS}.usb -s autoexec.ipxe \
${{ env.fsbinaries }}
done
- name: ISO + USB (SB)
run: |
for ARCH in ${{ env.sbarchs }} ; do
./src/util/genfsimg -o ipxe-${ARCH}-sb.iso \
${{ env.efishims }} ${{ env.sbbinaries }}
./src/util/genfsimg -o ipxe-${ARCH}-sb.usb -s autoexec.ipxe \
${{ env.efishims }} ${{ env.sbbinaries }}
done
- name: Server
run: |
./src/util/gensrvimg -o ipxeboot.tar.gz ${{ env.efishims }} \
@@ -455,6 +472,10 @@ jobs:
ipxe.usb
ipxe-legacy.iso
ipxe-legacy.usb
ipxe-arm64-sb.iso
ipxe-arm64-sb.usb
ipxe-x86_64-sb.iso
ipxe-x86_64-sb.usb
ipxeboot.tar.gz
version: