#!/bin/sh # # Script to register/build/unregister a kernel module with DKMS. # # Copyright (C) 2010 Oracle Corporation # # This file is part of VirtualBox Open Source Edition (OSE), as # available from http://www.virtualbox.org. This file is free software; # you can redistribute it and/or modify it under the terms of the GNU # General Public License (GPL) as published by the Free Software # Foundation, in version 2 as it comes in the "COPYING" file of the # VirtualBox OSE distribution. VirtualBox OSE is distributed in the # hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. # DKMS=`which dkms 2>/dev/null` if [ -n "$DKMS" ] then if [ "$1" = "uninstall" ]; then echo "Uninstalling modules from DKMS" for m in _OLDMODULES_ do $DKMS status -m $m | while read line # first, remove _any_ old module do if echo "$line" | grep -q added > /dev/null || echo "$line" | grep -q built > /dev/null || echo "$line" | grep -q installed > /dev/null; then # either 'vboxvideo, : added' # or 'vboxvideo, , ...: installed' version=`echo "$line" | sed "s/$m,\([^,]*\)[,:].*/\1/;t;d"` echo " removing old DKMS module $m version $version" $DKMS remove -m $m -v $version --all fi done done # there should not be any more matches status=`$DKMS status -m _MODULE_ -v _VERSION_` if echo $status | grep added > /dev/null || echo $status | grep built > /dev/null || echo $status | grep installed > /dev/null then $DKMS remove -m _MODULE_ -v _VERSION_ --all fi exit 0 elif [ "$1" = "install" ]; then echo "Attempting to install using DKMS" if $DKMS add -m _MODULE_ -v _VERSION_ && $DKMS build -m _MODULE_ -v _VERSION_ && $DKMS install -m _MODULE_ -v _VERSION_ --force then exit 0 fi echo "Failed to install using DKMS, attempting to install without" fi fi exit 1