Magellan Linux

Contents of /trunk/virtualbox/virtualbox-config.sh

Parent Directory Parent Directory | Revision Log Revision Log


Revision 230 - (show annotations) (download) (as text)
Thu Jun 28 17:31:50 2007 UTC (16 years, 10 months ago) by niro
File MIME type: application/x-sh
File size: 2346 byte(s)
-fixed a typo

1 #!/bin/bash
2 # $Header: /root/magellan-cvs/src/virtualbox/virtualbox-config.sh,v 1.6 2007-06-28 17:31:50 niro Exp $
3 # Configures virtualbox for Magellan-Linux
4
5 LIBDIR=/usr/lib
6 INSTDIR=${LIBDIR}/virtualbox
7 VBOXMODULE=vboxdrv.ko
8
9 COLRED="\033[1;6m\033[31m"
10 COLGREEN="\033[1;6m\033[32m"
11 COLDEFAULT="\033[0m"
12
13 if [[ ${NOCOLORS} = true ]]
14 then
15 COLRED=""
16 COLGREEN=""
17 COLDEFAULT=""
18 fi
19
20 die() { echo -e "${COLRED}$@${COLDEFAULT}"; exit 1; }
21 mecho() { echo -e "${COLGREEN}$@${COLDEFAULT}"; }
22
23 # must be root
24 [[ $(id -u) != 0 ]] && die "You must be r00t!"
25
26 # check for given argvs
27 for i in $*
28 do
29 case $1 in
30 --kernel-version) shift; KERNEL_VERSION="$1" ;;
31 --kernel-sources) shift; KERNEL_SOURCES="$1" ;;
32 esac
33 shift
34 done
35
36 # some sane defaults
37 [[ -z ${KERNEL_VERSION} ]] && KERNEL_VERSION="$(uname -r)"
38 [[ -z ${KERNEL_SOURCES} ]] && KERNEL_SOURCES="/lib/modules/${KERNEL_VERSION}/source"
39
40 mecho "Running $(basename $0) for kernelversion ${KERNEL_VERSION} ..."
41
42 if [ ! -f ${KERNEL_SOURCES}/include/linux/version.h ]
43 then
44 die "No kernel sources for kernel ${KERNEL_VERSION} found! Aborting."
45 fi
46
47 if [[ -f /lib/modules/${KERNEL_VERSION}/misc/${VBOXMODULE} ]]
48 then
49 mecho "Removing old module ..."
50 rm -f /lib/modules/${KERNEL_VERSION}/misc/${VBOXMODULE}
51 fi
52
53 # compile the module
54 cd ${INSTDIR}/src
55 make -C ${KERNEL_SOURCES} SUBDIRS=$(pwd) SRCROOT=$(pwd) clean modules || die "mod-compile"
56
57 # install the module
58 install -d /lib/modules/${KERNEL_VERSION}/misc
59 install -m0644 ${VBOXMODULE} /lib/modules/${KERNEL_VERSION}/misc || die "mod-install"
60
61 # calc module dependencies
62 mecho "Calculating module dependencies ..."
63 depmod -ae ${KERNEL_VERSION}
64
65 # re-read udev rules to grant the right permissions
66 if [[ -x $(which udevcontrol) ]]
67 then
68 mecho "Reloading udev configuration ..."
69 $(which udevcontrol) reload_rules
70 fi
71
72 # load the module
73 if [[ x$(uname -r) = x${KERNEL_VERSION} ]]
74 then
75 mecho "Loading kernel-module ${VBOXMODULE} ..."
76 modprobe $(basename ${VBOXMODULE} .ko)
77 else
78 echo -e ${COLRED}
79 echo "Your current running kernel does not match the the module target."
80 echo "You must boot into your target kernel and load the module manually,"
81 echo "before you can use virtual box."
82 echo -en ${COLDEFAULT}
83 fi
84
85 echo
86 mecho "Virtualbox is now configured for your system."
87 mecho "Do not forget to add you users to the 'virtualbox' group."
88 echo
89
90 exit 0