#!/bin/bash # # Script to build VirtualBox host kernel modules # Copyright C 2017 by Larry Finger # # This script is part of the openSUSE VirtualBox package # SOURCE="/usr/src/kernel-modules/virtualbox/src" LOGFILE="/var/log/virtualbox.log" INCLUDE="/lib/modules/`uname -r`/build/include" # # Test if vboxpci module loaded. If it is, skip everything else loaded=$(lsmod | grep vboxpci) if [ -n "$loaded" ] ; then echo "Kernel modules available - exiting..." exit 0 fi # # Force installation of VB host sources. Zypper will install all the prerequisies echo "Installing all required packages..." killproc PackageKit zypper install -y virtualbox-host-source > /dev/null 2>&1 if [ "$?" -ne 0 ] ; then echo "Installation of required packages failed." echo "Use 'sudo zypper install virtualbox-host-source' to see the reason." exit 1 fi # Prerequisites are available, start build pushd $SOURCE > /dev/null 2>&1 echo "Building kernel modules..." make > $LOGFILE 2>&1 if [ "$?" -ne 0 ] ; then echo "" echo "Build of VirtualBox host kernel modules failed." echo "Look at $LOGFILE to find reasons." popd > /dev/null 2>&1 exit 1 else echo "Kernel modules built correctly. They will now be installed." fi make install >> $LOGFILE 2>&1 if [ "$?" -ne 0 ] ; then echo "" echo "Installation of VirtualBox host kernel modules failed." echo "Look at $LOGFILE to find reasons." popd > /dev/null 2>&1 exit 1 fi depmod -a modprobe -av vboxnetflt vboxnetadp vboxpci popd > /dev/null 2>&1 echo "Kernel modules are installed and loaded." exit 0