summaryrefslogtreecommitdiffstats
path: root/virtualbox_bin/vboxdrv
blob: df1bfeb868a7be83dc08458c722e93303cc9b450 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#!/bin/bash

. /etc/rc.conf
. /etc/rc.d/functions
. /etc/vbox/vbox.cfg

LOG="/var/log/vbox-install.log"
if [ -n "$INSTALL_DIR" ]; then
    VBOXMANAGE="$INSTALL_DIR/VBoxManage"
    BUILDVBOXDRV="$INSTALL_DIR/src/vboxdrv/build_in_tmp"
    BUILDVBOXNETFLT="$INSTALL_DIR/src/vboxnetflt/build_in_tmp"
    BUILDVBOXNETADP="$INSTALL_DIR/src/vboxnetadp/build_in_tmp"
else
    echo "missing vbox.cfg"
    exit 0
fi
case "$1" in
    setup)
	if find /lib/modules/`uname -r` -name "vboxnetadp\.*" 2>/dev/null|grep -q vboxnetadp; then
	    stat_busy "Removing old VirtualBox netadp kernel module"
	    find /lib/modules/`uname -r` -name "vboxnetadp\.*" 2>/dev/null|xargs rm -f 2>/dev/null
	    stat_done
	fi
	if find /lib/modules/`uname -r` -name "vboxnetflt\.*" 2>/dev/null|grep -q vboxnetflt; then
	    stat_busy "Removing old VirtualBox netflt kernel module"
	    find /lib/modules/`uname -r` -name "vboxnetflt\.*" 2>/dev/null|xargs rm -f 2>/dev/null
	    stat_done
	fi
	if find /lib/modules/`uname -r` -name "vboxdrv\.*" 2>/dev/null|grep -q vboxdrv; then
	    stat_busy "Removing old VirtualBox kernel module"
	    find /lib/modules/`uname -r` -name "vboxdrv\.*" 2>/dev/null|xargs rm -f 2>/dev/null
	    stat_done
	fi
	stat_busy "Recompiling VirtualBox kernel modules"
	if ! $BUILDVBOXDRV \
	    --save-module-symvers /tmp/vboxdrv-Module.symvers \
	    --no-print-directory install > $LOG 2>&1; then
	    echo  "Look at $LOG to find out what went wrong"
	fi
	if ! $BUILDVBOXNETFLT \
	    --use-module-symvers /tmp/vboxdrv-Module.symvers \
	    --no-print-directory install >> $LOG 2>&1; then
	    echo "Look at $LOG to find out what went wrong"
	fi
	if ! $BUILDVBOXNETADP \
	    --use-module-symvers /tmp/vboxdrv-Module.symvers \
	    --no-print-directory install >> $LOG 2>&1; then
	    echo "Look at $LOG to find out what went wrong"
	fi
	stat_done
	;;
    *)
	echo "usage: $0 {setup}"
esac