aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSilvio Rhatto <rhatto@riseup.net>2018-06-23 09:53:54 -0300
committerSilvio Rhatto <rhatto@riseup.net>2018-06-23 09:53:54 -0300
commitc94472dc0e24d234eb8e135cfcc4029018072dc3 (patch)
tree7f0f25257e4da4d5c82ea1c74f98a41fea81153e
parent23e5ab8db41d37ae70a226fc5446dc9ba51a26bc (diff)
downloadkvmx-c94472dc0e24d234eb8e135cfcc4029018072dc3.tar.gz
kvmx-c94472dc0e24d234eb8e135cfcc4029018072dc3.tar.bz2
Check for requirements and use spicy as default spice_client
-rwxr-xr-xkvmx12
-rwxr-xr-xkvmx-create16
-rw-r--r--kvmxfile4
-rwxr-xr-xlib/kvmx/functions14
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
+}