--- module-init-tools.old/debian/module-init-tools.init Fri May 30 17:17:12 2008 +++ /opt/emdebian/trunk/m/module-init-tools/trunk/module-init-tools-3.4/debian/module-init-tools.init Fri May 30 17:17:12 2008 @@ -77,3 +77,82 @@ exit 0 +#!/bin/sh -e +### BEGIN INIT INFO +# Provides: module-init-tools +# Required-Start: +# Required-Stop: +# Should-Start: checkroot +# Should-stop: +# Default-Start: S +# Default-Stop: +# Short-Description: Process /etc/modules. +# Description: Load the modules listed in /etc/modules. +### END INIT INFO + +# Silently exit if the kernel does not support modules or needs modutils. +[ -f /proc/modules ] || exit 0 +[ ! -f /proc/ksyms ] || exit 0 +[ -x /sbin/modprobe ] || exit 0 + +. /etc/default/rcS +. /lib/lsb/init-functions + +PATH="/sbin:/bin" + +KVER=$(uname -r) +KMAJ=${KVER%${KVER#*.*[^.]}} +KMAJ=${KMAJ%.} + +if [ -e /etc/modules-$KVER ]; then + MODULES_FILE=/etc/modules-$KVER +elif [ -e /etc/modules-$KMAJ ]; then + MODULES_FILE=/etc/modules-$KMAJ +else + MODULES_FILE=/etc/modules +fi + +load_module() { + local module args + module="$1" + args="$2" + + if [ "$VERBOSE" != no ]; then + log_action_msg "Loading kernel module $module" + modprobe $module $args || true + else + modprobe $module $args > /dev/null 2>&1 || true + fi +} + +if [ "$VERBOSE" = no ]; then + log_action_begin_msg 'Loading kernel modules' +fi + +# Loop over every line in /etc/modules. +grep '^[^#]' $MODULES_FILE | \ +while read module args; do + [ "$module" ] || continue + load_module "$module" "$args" +done + +# Just in case a sysadmin prefers generic symbolic links in +# /lib/modules/boot for boot time modules we will load these modules. +boot="$(modprobe --list --type boot)" +for d in $boot; do + mod="${d##*/}" + mod="${mod%.ko}" + load_module "$mod" "" +done + +if [ "$VERBOSE" = no ]; then + log_action_end_msg 0 +fi + +if [ -r /etc/modprobe.conf ] \ + && ! grep -q '^include.*modprobe.d' /etc/modprobe.conf; then + log_warning_msg '/etc/modprobe.conf exists but does not include /etc/modprobe.d/!' +fi + +exit 0 +