]> git.ipfire.org Git - thirdparty/mkosi.git/commitdiff
qemu: Look for /usr/libexec/qemu-kvm as well
authorDaan De Meyer <daan.j.demeyer@gmail.com>
Tue, 21 Jan 2025 09:40:47 +0000 (10:40 +0100)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Tue, 21 Jan 2025 09:56:44 +0000 (10:56 +0100)
On CentOS Stream, only /usr/libexec/qemu-kvm is available.

mkosi/qemu.py

index e1373a95c251cf96bb6e557fe5f489b6feb8d953..bef8d7c663196fadc96638e7fe564e781c42bfaf 100644 (file)
@@ -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