Annotation of /trunk/virtualbox/virtualbox-config.sh
Parent Directory | Revision Log
Revision 520 -
(hide annotations)
(download)
(as text)
Sat Mar 22 20:19:30 2008 UTC (16 years, 6 months ago) by niro
File MIME type: application/x-sh
File size: 2483 byte(s)
Sat Mar 22 20:19:30 2008 UTC (16 years, 6 months ago) by niro
File MIME type: application/x-sh
File size: 2483 byte(s)
-try to unload the vboxdrv module before deleting it
1 | niro | 126 | #!/bin/bash |
2 | niro | 520 | # $Header: /root/magellan-cvs/src/virtualbox/virtualbox-config.sh,v 1.8 2008-03-22 20:19:30 niro Exp $ |
3 | niro | 126 | # Configures virtualbox for Magellan-Linux |
4 | |||
5 | LIBDIR=/usr/lib | ||
6 | INSTDIR=${LIBDIR}/virtualbox | ||
7 | VBOXMODULE=vboxdrv.ko | ||
8 | |||
9 | niro | 129 | COLRED="\033[1;6m\033[31m" |
10 | COLGREEN="\033[1;6m\033[32m" | ||
11 | COLDEFAULT="\033[0m" | ||
12 | |||
13 | if [[ ${NOCOLORS} = true ]] | ||
14 | niro | 127 | then |
15 | niro | 129 | COLRED="" |
16 | COLGREEN="" | ||
17 | COLDEFAULT="" | ||
18 | niro | 127 | fi |
19 | |||
20 | niro | 129 | die() { echo -e "${COLRED}$@${COLDEFAULT}"; exit 1; } |
21 | mecho() { echo -e "${COLGREEN}$@${COLDEFAULT}"; } | ||
22 | niro | 126 | |
23 | niro | 129 | # must be root |
24 | [[ $(id -u) != 0 ]] && die "You must be r00t!" | ||
25 | |||
26 | niro | 229 | # 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 | niro | 129 | |
36 | niro | 229 | # 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 | niro | 126 | then |
44 | niro | 229 | die "No kernel sources for kernel ${KERNEL_VERSION} found! Aborting." |
45 | niro | 126 | fi |
46 | |||
47 | niro | 229 | if [[ -f /lib/modules/${KERNEL_VERSION}/misc/${VBOXMODULE} ]] |
48 | niro | 126 | then |
49 | niro | 129 | mecho "Removing old module ..." |
50 | niro | 520 | # try to unload the module |
51 | if [[ -n $(grep "${VBOXMODULE} " /proc/modules 2> /dev/null) ]] | ||
52 | then | ||
53 | modprobe -r ${VBOXMODULE/.ko/} | ||
54 | fi | ||
55 | niro | 229 | rm -f /lib/modules/${KERNEL_VERSION}/misc/${VBOXMODULE} |
56 | niro | 126 | fi |
57 | |||
58 | # compile the module | ||
59 | cd ${INSTDIR}/src | ||
60 | niro | 229 | make -C ${KERNEL_SOURCES} SUBDIRS=$(pwd) SRCROOT=$(pwd) clean modules || die "mod-compile" |
61 | niro | 126 | |
62 | # install the module | ||
63 | niro | 229 | install -d /lib/modules/${KERNEL_VERSION}/misc |
64 | install -m0644 ${VBOXMODULE} /lib/modules/${KERNEL_VERSION}/misc || die "mod-install" | ||
65 | niro | 126 | |
66 | # calc module dependencies | ||
67 | niro | 129 | mecho "Calculating module dependencies ..." |
68 | niro | 229 | depmod -ae ${KERNEL_VERSION} |
69 | niro | 126 | |
70 | niro | 129 | # re-read udev rules to grant the right permissions |
71 | if [[ -x $(which udevcontrol) ]] | ||
72 | then | ||
73 | mecho "Reloading udev configuration ..." | ||
74 | niro | 131 | $(which udevcontrol) reload_rules |
75 | niro | 129 | fi |
76 | |||
77 | niro | 126 | # load the module |
78 | niro | 230 | if [[ x$(uname -r) = x${KERNEL_VERSION} ]] |
79 | niro | 229 | then |
80 | mecho "Loading kernel-module ${VBOXMODULE} ..." | ||
81 | modprobe $(basename ${VBOXMODULE} .ko) | ||
82 | else | ||
83 | echo -e ${COLRED} | ||
84 | echo "Your current running kernel does not match the the module target." | ||
85 | echo "You must boot into your target kernel and load the module manually," | ||
86 | echo "before you can use virtual box." | ||
87 | echo -en ${COLDEFAULT} | ||
88 | fi | ||
89 | niro | 126 | |
90 | echo | ||
91 | niro | 129 | mecho "Virtualbox is now configured for your system." |
92 | niro | 313 | mecho "Do not forget to add your users to the 'virtualbox' group." |
93 | niro | 126 | echo |
94 | |||
95 | exit 0 |