From: Daan De Meyer Date: Tue, 21 Jan 2025 09:40:47 +0000 (+0100) Subject: qemu: Look for /usr/libexec/qemu-kvm as well X-Git-Tag: v25~18 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=00db6f1a12fb04ed9f837b40ff34f82fab4d4a03;p=thirdparty%2Fmkosi.git qemu: Look for /usr/libexec/qemu-kvm as well On CentOS Stream, only /usr/libexec/qemu-kvm is available. --- diff --git a/mkosi/qemu.py b/mkosi/qemu.py index e1373a95c..bef8d7c66 100644 --- a/mkosi/qemu.py +++ b/mkosi/qemu.py @@ -170,6 +170,22 @@ class KernelType(StrEnum): return KernelType.unknown +def find_qemu_binary(config: Config) -> Path: + options = [f"qemu-system-{config.architecture.to_qemu()}"] + + if config.architecture.is_native(): + options += ["/usr/libexec/qemu-kvm"] + + for o in options: + if qemu := config.find_binary(o): + return qemu + + die( + "qemu not found.", + hint=f"Is qemu-system-{config.architecture.to_qemu()} installed?", + ) + + @dataclasses.dataclass(frozen=True) class OvmfConfig: description: Path @@ -1024,11 +1040,7 @@ def run_qemu(args: Args, config: Config) -> None: if d.feature(config) != ConfigFeature.disabled and d.available(log=True) } - if not (qemu := config.find_binary(f"qemu-system-{config.architecture.to_qemu()}")): - die( - "qemu not found.", - hint=f"Is qemu-system-{config.architecture.to_qemu()} installed on the host system?", - ) + qemu = find_qemu_binary(config) have_kvm = (qemu_version(config, qemu) < QEMU_KVM_DEVICE_VERSION and QemuDeviceNode.kvm.available()) or ( qemu_version(config, qemu) >= QEMU_KVM_DEVICE_VERSION and QemuDeviceNode.kvm in qemu_device_fds