1 |
#!/bin/bash |
#!/bin/bash |
2 |
# $Header: /root/magellan-cvs/src/virtualbox/virtualbox-config.sh,v 1.4 2007-04-14 14:54:32 niro Exp $ |
# $Header: /root/magellan-cvs/src/virtualbox/virtualbox-config.sh,v 1.5 2007-06-28 16:48:21 niro Exp $ |
3 |
# Configures virtualbox for Magellan-Linux |
# Configures virtualbox for Magellan-Linux |
4 |
|
|
5 |
LIBDIR=/usr/lib |
LIBDIR=/usr/lib |
23 |
# must be root |
# must be root |
24 |
[[ $(id -u) != 0 ]] && die "You must be r00t!" |
[[ $(id -u) != 0 ]] && die "You must be r00t!" |
25 |
|
|
26 |
mecho "Running $(basename $0) for kernelversion $(uname -r) ..." |
# 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 |
if [ ! -f /lib/modules/$(uname -r)/source/include/linux/version.h ] |
mecho "Running $(basename $0) for kernelversion ${KERNEL_VERSION} ..." |
41 |
|
|
42 |
|
if [ ! -f ${KERNEL_SOURCES}/include/linux/version.h ] |
43 |
then |
then |
44 |
die "No kernel headers for $(uname -r) found! Aborting." |
die "No kernel sources for kernel ${KERNEL_VERSION} found! Aborting." |
45 |
fi |
fi |
46 |
|
|
47 |
if [[ -f /lib/modules/$(uname -r)/misc/${VBOXMODULE} ]] |
if [[ -f /lib/modules/${KERNEL_VERSION}/misc/${VBOXMODULE} ]] |
48 |
then |
then |
49 |
mecho "Removing old module ..." |
mecho "Removing old module ..." |
50 |
rm -f /lib/modules/$(uname -r)/misc/${VBOXMODULE} |
rm -f /lib/modules/${KERNEL_VERSION}/misc/${VBOXMODULE} |
51 |
fi |
fi |
52 |
|
|
53 |
# compile the module |
# compile the module |
54 |
cd ${INSTDIR}/src |
cd ${INSTDIR}/src |
55 |
make -C /lib/modules/$(uname -r)/source SUBDIRS=$(pwd) SRCROOT=$(pwd) clean modules || die "mod-compile" |
make -C ${KERNEL_SOURCES} SUBDIRS=$(pwd) SRCROOT=$(pwd) clean modules || die "mod-compile" |
56 |
|
|
57 |
# install the module |
# install the module |
58 |
install -d /lib/modules/$(uname -r)/misc |
install -d /lib/modules/${KERNEL_VERSION}/misc |
59 |
install -m0644 ${VBOXMODULE} /lib/modules/$(uname -r)/misc || die "mod-install" |
install -m0644 ${VBOXMODULE} /lib/modules/${KERNEL_VERSION}/misc || die "mod-install" |
60 |
|
|
61 |
# calc module dependencies |
# calc module dependencies |
62 |
mecho "Calculating module dependencies ..." |
mecho "Calculating module dependencies ..." |
63 |
depmod -ae |
depmod -ae ${KERNEL_VERSION} |
64 |
|
|
65 |
# re-read udev rules to grant the right permissions |
# re-read udev rules to grant the right permissions |
66 |
if [[ -x $(which udevcontrol) ]] |
if [[ -x $(which udevcontrol) ]] |
70 |
fi |
fi |
71 |
|
|
72 |
# load the module |
# load the module |
73 |
mecho "Loading kernel-module ${VBOXMODULE} ..." |
if [[ xx$(uname -r) = x${KERNEL_VERSION} ]] |
74 |
modprobe $(basename ${VBOXMODULE} .ko) |
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 |
echo |
86 |
mecho "Virtualbox is now configured for your system." |
mecho "Virtualbox is now configured for your system." |