]> git.ipfire.org Git - thirdparty/dracut.git/commitdiff
Support different virtualization technologies for run-qemu.
authorAndreas Thienemann <andreas@bawue.net>
Thu, 21 May 2009 10:24:58 +0000 (12:24 +0200)
committerHarald Hoyer <harald@redhat.com>
Mon, 25 May 2009 09:36:32 +0000 (11:36 +0200)
If the host supports kvm, use is. If this is not the case but the kqemu
module is loaded, run qemu with kqemu optimization. Otherwise fall-back to
pure usermode qemu.

test/run-qemu

index c1068e57c1738547b1ebd9fe29d0c828b9a0fda9..ba614c0cc4c1447cec568e576d34c64c980443ff 100644 (file)
@@ -1,9 +1,17 @@
 #!/bin/bash
-for f in kvm qemu-kvm qemu; do
-    type $f >/dev/null 2>&1 || continue
-    $f "$@"
-    exit
-done
-echo "Could not find a working KVM or QEMU to test with!"
-echo "Please install kvm or qemu."
-exit 1
\ No newline at end of file
+
+# Check which virtualization technology to use
+# We prefer kvm, kqemu, userspace in that order.
+[[ -x /usr/bin/qemu ]] && BIN=/usr/bin/qemu && ARGS=""
+$(lsmod | grep -q '^kqemu ') && BIN=/usr/bin/qemu && ARGS="-kernel-kqemu "
+[[ -b /dev/kvm && -x /usr/bin/kvm ]] && BIN=/usr/bin/kvm && ARGS=""
+[[ -b /dev/kvm && -x /usr/bin/qemu-kvm ]] && BIN=/usr/bin/qemu-kvm && ARGS=""
+
+[[ $BIN ]] || {
+   echo "Could not find a working KVM or QEMU to test with!" >&2
+   echo "Please install kvm or qemu." >&2
+   exit 1
+}
+
+echo "Running $BIN $ARGS"
+$BIN $ARGS "$@"