From c94472dc0e24d234eb8e135cfcc4029018072dc3 Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Sat, 23 Jun 2018 09:53:54 -0300 Subject: Check for requirements and use spicy as default spice_client --- kvmx | 12 +++++++++++- kvmx-create | 16 ++++++++++------ kvmxfile | 4 +++- lib/kvmx/functions | 14 ++++++++++++++ 4 files changed, 38 insertions(+), 8 deletions(-) diff --git a/kvmx b/kvmx index 1718ac5..c6c9137 100755 --- a/kvmx +++ b/kvmx @@ -88,6 +88,9 @@ function __kvmx_initialize { export APP_BASE="`$DIRNAME/kvmx app_base`" source $APP_BASE/lib/kvmx/functions || exit 1 + # Check dependencies + __kvmx_check_dependencies + # Alias to be used in config files KVMX_BASE="$APP_BASE" @@ -215,6 +218,10 @@ function __kvmx_initialize { echo "$BASENAME: WARNING: Intel VT or AMD-V not present at /proc/cpuinfo, expect slow performance" fi + if ! lsmod | grep -q '^kvm '; then + echo "$BASENAME: WARNING: kvm kernel module not loaded, expect slow performance" + fi + if ! groups `whoami` | grep -q 'kvm'; then echo "$BASENAME: WARNING: user `whoami` not in kvm group, expect slow performance" fi @@ -247,11 +254,14 @@ function kvmx_spice { spicy -h localhost -p $PORT & elif [ "$spice_client" == "virt-viewer" ] && which virt-viewer &> /dev/null; then remote-viewer spice://localhost:$PORT & - else + elif [ "$spice_client" == "spicec" ]; then if which spicec &> /dev/null; then # https://lists.freedesktop.org/archives/spice-devel/2013-September/014643.html SPICE_NOGRAB=1 spicec --host localhost --port $PORT &> $SPICELOG & fi + else + echo "$BASENAME: spice_client $spice_client not currently supported" + exit 1 fi SPICEPID="$!" diff --git a/kvmx-create b/kvmx-create index 9d956ab..64a66ec 100755 --- a/kvmx-create +++ b/kvmx-create @@ -197,6 +197,16 @@ function kvmx_create_vmdebootstrap { # Custom version # function kvmx_create_custom { + # Check dependencies + DEPENDENCIES="sudo apt qemu-img sed awk tr head debootstrap chroot" + __kvmx_check_dependencies + + # Check for package requirements + #for req in debootstrap parted apt-transport-https; do + for req in debootstrap parted; do + kvmx_install_package $req + done + if [ -z "$TMP" ]; then TMP="/tmp" fi @@ -231,12 +241,6 @@ function kvmx_create_custom { fi fi - # Check for requirements. - #for req in debootstrap parted apt-transport-https; do - for req in debootstrap parted; do - kvmx_install_package $req - done - if [ -z "$image_type" ] || [ "$image_type" == "file" ]; then echo "Creating image file..." #kvmx_sudo_run dd if=/dev/zero of=$image bs=$size count=1 diff --git a/kvmxfile b/kvmxfile index 660132d..a8979e7 100644 --- a/kvmxfile +++ b/kvmxfile @@ -85,7 +85,9 @@ spice="1" run_spice_client="1" # SPICE client -spice_client="spicec" +#spice_client="spicec" +#spice_client="virt-viewer" +spice_client="spicy" # Set this if you want to start an xpra session when the machine boots. run_xpra="0" diff --git a/lib/kvmx/functions b/lib/kvmx/functions index 134f4be..d1a1015 100755 --- a/lib/kvmx/functions +++ b/lib/kvmx/functions @@ -19,3 +19,17 @@ function __kvmx_ssh_keygen { ssh-keygen -t rsa -b 4096 -f $1 -N '' -C $2 fi } + +# Check dependencies +function __kvmx_check_dependencies { + if [ -z "$DEPENDENCIES" ]; then + DEPENDENCIES="ssh sudo apt kvm virt-viewer spicy socat screen sed awk" + fi + + for dependency in $DEPENDENCIES; do + if ! which $dependency &> /dev/null; then + echo "$BASENAME: cannot find dependency program $dependency" + exit 1 + fi + done +} -- cgit v1.2.3