#!/bin/bash # $Header: /root/magellan-cvs/src/virtualbox/virtualbox-config.sh,v 1.5 2007-06-28 16:48:21 niro Exp $ # Configures virtualbox for Magellan-Linux LIBDIR=/usr/lib INSTDIR=${LIBDIR}/virtualbox VBOXMODULE=vboxdrv.ko COLRED="\033[1;6m\033[31m" COLGREEN="\033[1;6m\033[32m" COLDEFAULT="\033[0m" if [[ ${NOCOLORS} = true ]] then COLRED="" COLGREEN="" COLDEFAULT="" fi die() { echo -e "${COLRED}$@${COLDEFAULT}"; exit 1; } mecho() { echo -e "${COLGREEN}$@${COLDEFAULT}"; } # must be root [[ $(id -u) != 0 ]] && die "You must be r00t!" # check for given argvs for i in $* do case $1 in --kernel-version) shift; KERNEL_VERSION="$1" ;; --kernel-sources) shift; KERNEL_SOURCES="$1" ;; esac shift done # some sane defaults [[ -z ${KERNEL_VERSION} ]] && KERNEL_VERSION="$(uname -r)" [[ -z ${KERNEL_SOURCES} ]] && KERNEL_SOURCES="/lib/modules/${KERNEL_VERSION}/source" mecho "Running $(basename $0) for kernelversion ${KERNEL_VERSION} ..." if [ ! -f ${KERNEL_SOURCES}/include/linux/version.h ] then die "No kernel sources for kernel ${KERNEL_VERSION} found! Aborting." fi if [[ -f /lib/modules/${KERNEL_VERSION}/misc/${VBOXMODULE} ]] then mecho "Removing old module ..." rm -f /lib/modules/${KERNEL_VERSION}/misc/${VBOXMODULE} fi # compile the module cd ${INSTDIR}/src make -C ${KERNEL_SOURCES} SUBDIRS=$(pwd) SRCROOT=$(pwd) clean modules || die "mod-compile" # install the module install -d /lib/modules/${KERNEL_VERSION}/misc install -m0644 ${VBOXMODULE} /lib/modules/${KERNEL_VERSION}/misc || die "mod-install" # calc module dependencies mecho "Calculating module dependencies ..." depmod -ae ${KERNEL_VERSION} # re-read udev rules to grant the right permissions if [[ -x $(which udevcontrol) ]] then mecho "Reloading udev configuration ..." $(which udevcontrol) reload_rules fi # load the module if [[ xx$(uname -r) = x${KERNEL_VERSION} ]] then mecho "Loading kernel-module ${VBOXMODULE} ..." modprobe $(basename ${VBOXMODULE} .ko) else echo -e ${COLRED} echo "Your current running kernel does not match the the module target." echo "You must boot into your target kernel and load the module manually," echo "before you can use virtual box." echo -en ${COLDEFAULT} fi echo mecho "Virtualbox is now configured for your system." mecho "Do not forget to add you users to the 'virtualbox' group." echo exit 0