#!/bin/sh
if ! [ -x /usr/sbin/dkms ]; then
unfreeze-rc.d
apt-get install dkms
freeze-rc.d
fi
VBOX="$(dpkg -l|awk '/^ii/&&/virtualbox/{print $2}')"
VER="$(dpkg -l|awk '/^ii/&&/virtualbox/{print $3}')"
VER="${VER/-*}"
[ -z "$VER" ] && exit 1
PKG=0
/etc/init.d/vboxdrv stop
dpkg --purge vboxdrv-dkms 2>/dev/null
dkms remove $(dkms status 2>/dev/null|awk '/^vboxdrv/{print "-m "$1" -v "$2}'|sed 's/,//g;s/:$//'|uniq) --all >/dev/null 2>&1
rm -rf /var/lib/dkms/vboxdrv
find /lib/modules -name vboxdrv.ko -exec rm -f {} \;
cd /usr/src
rm -rf vboxdrv-$VER
cp -r /usr/share/$VBOX/src vboxdrv-$VER
cat > vboxdrv-$VER/dkms.conf <<EOT
BUILT_MODULE_NAME="vboxdrv"
DEST_MODULE_LOCATION="/kernel/misc"
PACKAGE_NAME="vboxdrv"
PACKAGE_VERSION="$VER"
AUTOINSTALL="yes"
EOT
dkms add -m vboxdrv -v $VER
LANG= dkms mkdeb -m vboxdrv -v $VER --source-only
dpkg -i /var/lib/dkms/vboxdrv/$VER/deb/vboxdrv-dkms_${VER}_all.deb
/etc/init.d/vboxdrv start
