Check for VMWare using the CPUID (thanks: Chetan Loke).
authorRichard Jones <rjones@redhat.com>
Thu, 1 Jul 2010 18:26:26 +0000 (19:26 +0100)
committerRichard Jones <rjones@redhat.com>
Thu, 1 Jul 2010 19:34:36 +0000 (20:34 +0100)
virt-what.in

index 11ca772..313cd06 100644 (file)
@@ -70,14 +70,26 @@ prefix=@prefix@
 exec_prefix=@exec_prefix@
 PATH=@libexecdir@:/sbin:/usr/sbin:$PATH
 
+# Many fullvirt hypervisors give an indication through CPUID.  Use the
+# helper program to get this information.
+
+cpuid=`virt-what-cpuid-helper`
+
 # Check for various products in the BIOS information.
 
 dmi=`dmidecode 2>&1`
 
-if echo "$dmi" | grep -q 'Manufacturer: VMware'; then
+# Check for VMware.
+# cpuid check added by Chetan Loke.
+
+if [ "$cpuid" = "VMwareVMware" ]; then
+    echo vmware
+elif echo "$dmi" | grep -q 'Manufacturer: VMware'; then
     echo vmware
 fi
 
+# Check for VirtualPC.
+
 if echo "$dmi" | grep -q 'Manufacturer: Microsoft Corporation'; then
     echo virtualpc
 fi
@@ -101,14 +113,9 @@ fi
 # Check for UML.
 # Added by Laurent Léonard.
 if grep -q 'UML' /proc/cpuinfo; then
-    echo uml
+    echo uml
 fi
 
-# To tell if it is Xen and KVM HVM (fully virtualized) we can use this
-# helper C program.
-
-cpuid=`virt-what-cpuid-helper`
-
 # Check for Xen.
 
 if [ "$cpuid" = "XenVMMXenVMM" ]; then