#!/bin/sh -e ### BEGIN INIT INFO # Provides: kmod # Required-Start: # Required-Stop: # Should-Start: checkroot # Should-Stop: # Default-Start: S # Default-Stop: # Short-Description: Load the modules listed in /etc/modules. # Description: Load the modules listed in /etc/modules. ### END INIT INFO # Silently exit if the kernel does not support modules. test -f /proc/modules || exit 0 test -x /sbin/modprobe || exit 0 test -f /etc/default/rcS && source /etc/default/rcS source /lib/lsb/init-functions setglobal PATH = ''/sbin:/bin'' match $1 { with start if init_is_upstart { exit 1 } with stop|restart|reload|force-reload log_warning_msg "Action '$1' is meaningless for this init script" exit 0 with * log_success_msg "Usage: $0 start" exit 1 } proc load_module { var module = '', args = '' set module = $1 set args = $2 if test $VERBOSE != no { log_action_msg "Loading kernel module $module" modprobe $module $args || true } else { modprobe $module $args > /dev/null !2 > !1 || true } } proc modules_files { var modules_load_dirs = ''/etc/modules-load.d /run/modules-load.d /usr/local/lib/modules-load.d /usr/lib/modules-load.d /lib/modules-load.d'' var processed = '' '' var add_etc_modules = 'true' for dir in [$modules_load_dirs] { test -d $dir || continue for file in [$[run-parts --list --regex='\.conf$' $dir !2 > /dev/null || true]] { var base = $(file##*/) if echo -n $processed | grep -qF " $base " { continue } if test $add_etc_modules -a -L $file \ -a $[readlink -f $file] = /etc/modules { set add_etc_modules = '' } set processed = ""$processed$base "" echo $file } } if test $add_etc_modules { echo /etc/modules } } if test $VERBOSE = no { log_action_begin_msg 'Loading kernel modules' } setglobal files = $[modules_files] if test $files { grep -h '^[^#]' $files | while read module args { test $module || continue load_module $module $args } } if test $VERBOSE = no { log_action_end_msg 0 }