prefix=@prefix@
exec_prefix=@exec_prefix@
PATH="${root}@libexecdir@:${root}/sbin:${root}/usr/sbin:${PATH}"
+export PATH
# Check we're running as root.
EFFUID=$(id -u) || fail "failed to get current user id"
if have_cpuinfo && grep -q '^vendor_id.*IBM/S390' "${root}/proc/cpuinfo"; then
echo ibm_systemz
if [ -f "${root}/proc/sysinfo" ]; then
- if grep -q 'VM.*Control Program.*z/VM' "${root}/proc/sysinfo"; then
+ if grep -q 'VM.*Control Program.*KVM/Linux' "${root}/proc/sysinfo"; then
+ echo ibm_systemz-kvm
+ elif grep -q 'VM.*Control Program.*z/VM' "${root}/proc/sysinfo"; then
echo ibm_systemz-zvm
elif grep -q '^LPAR' "${root}/proc/sysinfo"; then
echo ibm_systemz-lpar
if [ "$cpuid" = "XenVMMXenVMM" ]; then
echo xen; echo xen-hvm
+ # Check for AWS
+ if echo "$dmi" | grep -q 'Version: [0-9]\.[0-9]\.amazon'; then
+ echo aws
+ fi
skip_qemu_kvm=true
elif [ -d "${root}/proc/xen" ]; then
echo xen
if ! "$skip_qemu_kvm"; then
if [ "$cpuid" = "KVMKVMKVM" ]; then
echo kvm
+ elif [ "$cpuid" = "TCGTCGTCGTCG" ]; then
+ echo qemu
+ skip_lkvm=true
elif echo "$dmi" | grep -q 'Product Name: KVM'; then
echo kvm
skip_lkvm=true
echo qemu
skip_lkvm=true
fi
+ elif [ -d /proc/device-tree/hypervisor ] &&
+ grep -q "linux,kvm" /proc/device-tree/hypervisor/compatible; then
+ # We are running as a spapr KVM guest on ppc64
+ echo kvm
+ skip_lkvm=true
else
- # XXX This is known to fail for qemu with the explicit -cpu
+ # This is known to fail for qemu with the explicit -cpu
# option, since /proc/cpuinfo will not contain the QEMU
- # string. The long term fix for this would be to export
- # another CPUID leaf for non-accelerated qemu.
+ # string. QEMU 2.10 added a new CPUID leaf, so this
+ # problem only triggered for older QEMU
if grep -q 'QEMU' "${root}/proc/cpuinfo"; then
echo qemu
fi
fi
fi
fi
+
+# Check for OpenBSD/VMM
+if [ "$cpuid" = "OpenBSDVMM58" ]; then
+ echo vmm
+fi
+
+# Check for LDoms
+if [[ "$arch" == sparc* && -e ${root}/dev/mdesc ]]; then
+ echo ldoms
+ if [[ -d ${root}/sys/class/vlds/ctrl && \
+ -d ${root}/sys/class/vlds/sp ]]; then
+ echo ldoms-control
+ else
+ echo ldoms-guest
+ fi
+ MDPROP="${root}/usr/lib/ldoms/mdprop.py"
+ if [[ -x ${MDPROP} ]]; then
+ if [[ -n $($MDPROP -v iodevice device-type=pciex) ]]; then
+ echo ldoms-root
+ echo ldoms-io
+ elif [[ -n $($MDPROP -v iov-device vf-id=0) ]]; then
+ echo ldoms-io
+ fi
+ fi
+fi