From: Daan De Meyer Date: Fri, 8 Sep 2023 18:48:22 +0000 (+0200) Subject: Support booting uki images with direct linux boot X-Git-Tag: v17~13^2~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=09e511b6b3250886790d287fa575b7f3eb85be52;p=thirdparty%2Fmkosi.git Support booting uki images with direct linux boot No reason to disallow this since we have the necessary parts available. --- diff --git a/mkosi/qemu.py b/mkosi/qemu.py index 3b855db3d..8019bf412 100644 --- a/mkosi/qemu.py +++ b/mkosi/qemu.py @@ -220,11 +220,11 @@ def run_qemu(args: MkosiArgs, config: MkosiConfig) -> None: if config.output_format not in (OutputFormat.disk, OutputFormat.cpio, OutputFormat.uki): die(f"{config.output_format} images cannot be booted in qemu") - if config.output_format == OutputFormat.uki and config.qemu_firmware not in (QemuFirmware.auto, QemuFirmware.uefi): - die(f"uki images cannot be booted with the '{config.qemu_firmware}' firmware") - - if config.output_format == OutputFormat.cpio and config.qemu_firmware not in (QemuFirmware.auto, QemuFirmware.linux, QemuFirmware.uefi): - die(f"cpio images cannot be booted with the '{config.qemu_firmware}' firmware") + if ( + config.output_format in (OutputFormat.cpio, OutputFormat.uki) and + config.qemu_firmware not in (QemuFirmware.auto, QemuFirmware.linux, QemuFirmware.uefi) + ): + die(f"{config.output_format} images cannot be booted with the '{config.qemu_firmware}' firmware") accel = "tcg" auto = config.qemu_kvm == ConfigFeature.auto and config.architecture.is_native() and qemu_check_kvm_support(log=True) @@ -328,7 +328,7 @@ def run_qemu(args: MkosiArgs, config: MkosiConfig) -> None: if firmware == QemuFirmware.linux or config.output_format in (OutputFormat.cpio, OutputFormat.uki): if config.output_format == OutputFormat.uki: - kernel = fname + kernel = fname if firmware == QemuFirmware.uefi else config.output_dir / config.output_split_kernel elif config.qemu_kernel: kernel = config.qemu_kernel elif "-kernel" not in args.cmdline: @@ -354,6 +354,8 @@ def run_qemu(args: MkosiArgs, config: MkosiConfig) -> None: if config.output_format == OutputFormat.cpio: cmdline += ["-initrd", fname] + elif config.output_format == OutputFormat.uki and firmware == QemuFirmware.linux: + cmdline += ["-initrd", config.output_dir / config.output_split_initrd] elif config.output_format == OutputFormat.disk: if firmware == QemuFirmware.linux: cmdline += ["-initrd", config.output_dir / config.output_split_initrd]