summaryrefslogtreecommitdiffstats
path: root/dkms_autoinstaller
diff options
context:
space:
mode:
Diffstat (limited to 'dkms_autoinstaller')
-rwxr-xr-xdkms_autoinstaller65
1 files changed, 65 insertions, 0 deletions
diff --git a/dkms_autoinstaller b/dkms_autoinstaller
new file mode 100755
index 0000000..2cd31b9
--- /dev/null
+++ b/dkms_autoinstaller
@@ -0,0 +1,65 @@
+#!/bin/sh
+#
+# dkms_autoinstaller - A service to automatically install DKMS modules for new kernels.
+#
+# chkconfig: 345 04 04
+# description: Compiles and install kernel modules automatically for new \
+# kernels at boot.
+
+### BEGIN INIT INFO
+# Provides: dkms_autoinstaller dkms
+# Default-Start: 3 4 5
+# Default-Stop: 0 1 2 6
+# Required-Start: $local_fs
+# Required-Stop: $local_fs
+# Short-Description: DKMS kernel modules installer service
+# Description: A service to automatically install DKMS modules for new kernels.
+### END INIT INFO
+
+
+if [ -f /lib/lsb/init-functions ]; then
+ . /lib/lsb/init-functions
+elif [ -f /etc/rc.d/init.d/functions ]; then
+ . /etc/rc.d/init.d/functions
+fi
+
+# We only have these functions on debian/ubuntu
+# so on other distros just stub them out
+if [ ! -f /etc/debian_version ]; then
+ alias log_daemon_msg=/bin/echo
+ log_end_msg() { if [ "$1" = "0" ]; then echo " Done. "; else echo " Failed. "; fi; }
+ alias log_action_begin_msg=log_daemon_msg
+ alias log_action_end_msg=log_end_msg
+fi
+
+exec="/usr/sbin/dkms"
+prog=${exec##*/}
+
+test -f $exec || exit 0
+
+[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog
+
+case "$1" in
+ start)
+ if [ -n "$2" ]; then
+ kernel="$2"
+ else
+ kernel=$(uname -r)
+ fi
+ if [ -f /etc/dkms/no-autoinstall ]; then
+ log_daemon_msg "$prog: autoinstall for dkms modules has been disabled"
+ else
+ log_daemon_msg "$prog: running auto installation service for kernel $kernel"
+ dkms autoinstall --kernelver $kernel
+ log_end_msg $?
+ fi
+ ;;
+ stop|restart|force-reload|status|reload)
+ # There is no stop action, this and the 04 priority during stop is
+ # added to make RHEL chkconfig happy.
+ # Ignore others on debian/ubuntu too
+ ;;
+ *)
+ echo $"Usage: $0 {start}"
+ exit 2
+esac