qemu*/module-setup.sh: provide alternative for systemd-detect-virt
authorHarald Hoyer <harald@redhat.com>
Wed, 25 Jul 2012 14:03:49 +0000 (16:03 +0200)
committerHarald Hoyer <harald@redhat.com>
Wed, 25 Jul 2012 14:03:49 +0000 (16:03 +0200)
modules.d/90qemu-net/module-setup.sh
modules.d/90qemu/module-setup.sh

index 35c8f0f..e617230 100755 (executable)
@@ -3,10 +3,21 @@
 # ex: ts=8 sw=4 sts=4 et filetype=sh
 
 check() {
-    vm=$(systemd-detect-virt --vm &>/dev/null)
-    (($? != 0)) && return 255
-    [[ $vm = "qemu" ]] && return 0
-    [[ $vm = "kvm" ]] && return 0
+    if type -P systemd-detect-virt &>/dev/null; then
+        vm=$(systemd-detect-virt --vm &>/dev/null)
+        (($? != 0)) && return 255
+        [[ $vm = "qemu" ]] && return 0
+        [[ $vm = "kvm" ]] && return 0
+        [[ $vm = "bochs" ]] && return 0
+    fi
+
+    for i in /sys/class/dmi/id/*_vendor; do
+        [[ -f $i ]] || continue
+        read vendor < $i
+        [[  "$vendor" == "QEMU" ]] && return 0
+        [[  "$vendor" == "Bochs" ]] && return 0
+    done
+
     return 255
 }
 
index 3e55f23..fc258ac 100755 (executable)
@@ -3,10 +3,20 @@
 # ex: ts=8 sw=4 sts=4 et filetype=sh
 
 check() {
-    vm=$(systemd-detect-virt --vm &>/dev/null)
-    (($? != 0)) && return 255
-    [[ $vm = "qemu" ]] && return 0
-    [[ $vm = "kvm" ]] && return 0
+    if type -P systemd-detect-virt &>/dev/null; then
+        vm=$(systemd-detect-virt --vm &>/dev/null)
+        (($? != 0)) && return 255
+        [[ $vm = "qemu" ]] && return 0
+        [[ $vm = "kvm" ]] && return 0
+        [[ $vm = "bochs" ]] && return 0
+    fi
+
+    for i in /sys/class/dmi/id/*_vendor; do
+        [[ -f $i ]] || continue
+        read vendor < $i
+        [[  "$vendor" == "QEMU" ]] && return 0
+        [[  "$vendor" == "Bochs" ]] && return 0
+    done
     return 255
 }