[Concept,1/6] docker: Install UEFI firmware packages
Commit Message
From: Simon Glass <simon.glass@canonical.com>
Install UEFI firmware packages needed to run EFI application boards
under QEMU in CI:
- ovmf: OVMF 64-bit firmware for efi-x86_app64
- ovmf-ia32: OVMF 32-bit firmware for efi-x86_app32
- qemu-efi-aarch64: AAVMF firmware for efi-arm_app64
- qemu-efi-riscv64: EDK2 RISC-V firmware for efi-riscv_app64
The ovmf-ia32 and qemu-efi-riscv64 packages are installed from Noble
since the Jammy versions are missing or incomplete (Jammy's ovmf-ia32
only provides the secure-boot variant of the firmware, which causes a
boot timeout).
Co-developed-by: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Simon Glass <simon.glass@canonical.com>
---
tools/docker/Dockerfile | 10 ++++++++++
1 file changed, 10 insertions(+)
@@ -118,10 +118,12 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
net-tools \
ninja-build \
openssl \
+ ovmf \
picocom \
parted \
pkg-config \
python-is-python3 \
+ qemu-efi-aarch64 \
python2.7 \
python3 \
python3-dev \
@@ -146,6 +148,14 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
xxd \
zip
+# Install edk2 packages from Noble (not available or incomplete in Jammy)
+RUN for pkg in ovmf-ia32 qemu-efi-riscv64; do \
+ wget -O /tmp/${pkg}.deb \
+ http://security.ubuntu.com/ubuntu/pool/universe/e/edk2/${pkg}_2024.02-2ubuntu0.7_all.deb && \
+ dpkg-deb -x /tmp/${pkg}.deb / && \
+ rm /tmp/${pkg}.deb; \
+ done
+
# Make kernels readable for libguestfs tools to work correctly
RUN chmod +r /boot/vmlinu*