[PATCH] vm: do not require KVM to run QEMU

Demi Marie Obenour
2025-08-07T18:22:45Z

This prevented running QEMU on Qubes OS.

Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com>
---
img/app/Makefile | 2 +-
scripts/run-qemu.sh | 5 ++++-
2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/img/app/Makefile b/img/app/Makefile
index 5380ffb76e7bdf8867dcb61560d77028bf910fa3..e458ffebb7db0718007dd15af6a17dda74d36d0a 100644
--- a/img/app/Makefile
+++ b/img/app/Makefile
@@ -148,7 +148,7 @@ start-virtiofsd: scripts/start-virtiofsd.elb
.PHONY: start-virtiofsd

run-qemu: $(imgdir)/appvm/blk/root.img start-vhost-user-net start-virtiofsd
- @../../scripts/run-qemu.sh -m 256 -cpu host -kernel $(KERNEL) -vga none \
+ @../../scripts/run-qemu.sh -m 256 -kernel $(KERNEL) -vga none \
-drive file=$(imgdir)/appvm/blk/root.img,if=virtio,format=raw,readonly=on \
-append "root=PARTLABEL=root nokaslr" \
-gdb unix:build/gdb.sock,server,nowait \
diff --git a/scripts/run-qemu.sh b/scripts/run-qemu.sh
index 64fd29259ab108bc547cb7c74623ae9dc288b3b7..9fa240aed44822a0aff295d246cb23a0e1cf7b8a 100755
--- a/scripts/run-qemu.sh
+++ b/scripts/run-qemu.sh
@@ -5,6 +5,8 @@
# This script wraps around QEMU to paper over platform differences,
# which can't be handled portably in Make language.

+cpu='-cpu host'
+if [ ! -f /dev/kvm ]; then cpu=; fi
case "${ARCH:="$(uname -m)"}" in
aarch64)
machine=virt,accel=kvm:tcg,gic-version=3,iommu=smmuv3
@@ -51,7 +53,7 @@ while [ $i -lt $# ]; do
virtualization=on)
case "$ARCH" in
aarch64)
- opt="$opt,accel=tcg"
+ opt="$opt,accel=tcg" cpu=
;;
*)
continue
@@ -88,4 +90,5 @@ exec ${QEMU_SYSTEM:-qemu-system-$ARCH} \
-machine "$machine" \
${kernel:+${append:+-append "$append"}} \
${iommu:+-device "$iommu"} \
+ $cpu \
"$@"

---
base-commit: 39baa378367d95fac6ce4d0140b25203b2ee9b53
change-id: 20250807-no-require-kvm-c6755f4ade76
--
Sincerely,
Demi Marie Obenour (she/her/hers)