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(+) diff --git a/tools/docker/Dockerfile b/tools/docker/Dockerfile index 90ad3708101..7aa9e0a22bd 100644 --- a/tools/docker/Dockerfile +++ b/tools/docker/Dockerfile @@ -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* -- 2.43.0