X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=virt-what.in;h=6e9aef11c2df77790b1007115a8f754c2e371c83;hb=468ae304e6a02bd433c3f282fab9ab0a2f468269;hp=c04203e442e02ee218d655dd2895e4efec150e81;hpb=4f9dc9931fdfb8a2cb43d54bc8add7f9df278d80;p=virt-what.git diff --git a/virt-what.in b/virt-what.in index c04203e..6e9aef1 100644 --- a/virt-what.in +++ b/virt-what.in @@ -1,4 +1,4 @@ -#!/bin/bash - +#!/bin/sh - # @configure_input@ # Copyright (C) 2008-2011 Red Hat Inc. # @@ -33,12 +33,16 @@ skip_qemu_kvm=false VERSION="@VERSION@" -function fail { +have_cpuinfo() { + test -e "${root}/proc/cpuinfo" +} + +fail() { echo "virt-what: $1" >&2 exit 1 } -function usage { +usage() { echo "virt-what [options]" echo "Options:" echo " --help Display this help" @@ -74,11 +78,18 @@ exec_prefix=@exec_prefix@ PATH="${root}@libexecdir@:${root}/sbin:${root}/usr/sbin:${PATH}" # Check we're running as root. +EFFUID=$(id -u) || fail "failed to get current user id" -if [ "x$root" = "x" ] && [ "$EUID" -ne 0 ]; then +if [ "x$root" = "x" ] && [ "$EFFUID" -ne 0 ]; then fail "this script must be run as root" fi +# Try to locate the CPU-ID helper program +CPUID_HELPER=$(which virt-what-cpuid-helper 2>/dev/null) +if [ -z "$CPUID_HELPER" ] ; then + fail "virt-what-cpuid-helper program not found in \$PATH" +fi + # Many fullvirt hypervisors give an indication through CPUID. Use the # helper program to get this information. @@ -145,7 +156,8 @@ if [ -e "${root}/proc/1/environ" ] && fi # Check for Linux-VServer -if cat "${root}/proc/self/status" | grep -q "VxID: [0-9]*"; then +if test -e "${root}/proc/self/status" \ + && cat "${root}/proc/self/status" | grep -q "VxID: [0-9]*"; then echo linux_vserver if grep -q "VxID: 0$" "${root}/proc/self/status"; then echo linux_vserver-host @@ -156,12 +168,13 @@ fi # Check for UML. # Added by Laurent Léonard. -if grep -q 'UML' "${root}/proc/cpuinfo"; then +if have_cpuinfo && grep -q 'UML' "${root}/proc/cpuinfo"; then echo uml fi # Check for IBM PowerVM Lx86 Linux/x86 emulator. -if grep -q '^vendor_id.*PowerVM Lx86' "${root}/proc/cpuinfo"; then +if have_cpuinfo && grep -q '^vendor_id.*PowerVM Lx86' "${root}/proc/cpuinfo" +then echo powervm_lx86 fi @@ -172,7 +185,7 @@ if echo "$dmi" | grep -q 'Manufacturer.*HITACHI' && fi # Check for IBM SystemZ. -if grep -q '^vendor_id.*IBM/S390' "${root}/proc/cpuinfo"; then +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