From: Daan De Meyer Date: Tue, 14 Jan 2025 09:18:48 +0000 (+0100) Subject: Make grub EFI logic architecture independent X-Git-Tag: v25~58 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=30a5443a3fb018bb5556dbd3a3dc59440f2d86e3;p=thirdparty%2Fmkosi.git Make grub EFI logic architecture independent Fixes #3352 --- diff --git a/mkosi/bootloader.py b/mkosi/bootloader.py index 9e9ea3d6b..d2a4c9022 100644 --- a/mkosi/bootloader.py +++ b/mkosi/bootloader.py @@ -72,8 +72,11 @@ def want_grub_efi(context: Context) -> bool: if context.config.bootloader != Bootloader.grub: return False + if not (arch := context.config.architecture.to_grub()): + return False + if context.config.shim_bootloader != ShimBootloader.signed: - have = find_grub_directory(context, target="x86_64-efi") is not None + have = find_grub_directory(context, target=f"{arch}-efi") is not None if not have and context.config.bootable == ConfigFeature.enabled: die("An EFI bootable image with grub was requested but grub for EFI is not installed") @@ -339,7 +342,13 @@ def install_grub(context: Context) -> None: else: sbat = None - grub_mkimage(context, target="x86_64-efi", output=output, modules=("chain",), sbat=sbat) + grub_mkimage( + context, + target=f"{context.config.architecture.to_grub()}-efi", + output=output, + modules=("chain",), + sbat=sbat, + ) if context.config.secure_boot: sign_efi_binary(context, output, output) diff --git a/mkosi/config.py b/mkosi/config.py index 9c7e866ce..8ef2c15fb 100644 --- a/mkosi/config.py +++ b/mkosi/config.py @@ -422,6 +422,14 @@ class Architecture(StrEnum): Architecture.loongarch64: "loongarch64", }.get(self) # fmt: skip + def to_grub(self) -> Optional[str]: + return { + Architecture.x86_64: "x86_64", + Architecture.x86: "i386", + Architecture.arm64: "arm64", + Architecture.arm: "arm", + }.get(self) # fmt: skip + def to_qemu(self) -> str: a = { Architecture.alpha: "alpha",