aboutsummaryrefslogtreecommitdiffstats
path: root/bootscripts/contrib/lsb-v3/init.d/modules
diff options
context:
space:
mode:
Diffstat (limited to 'bootscripts/contrib/lsb-v3/init.d/modules')
-rw-r--r--bootscripts/contrib/lsb-v3/init.d/modules99
1 files changed, 99 insertions, 0 deletions
diff --git a/bootscripts/contrib/lsb-v3/init.d/modules b/bootscripts/contrib/lsb-v3/init.d/modules
new file mode 100644
index 000000000..d5e1ad646
--- /dev/null
+++ b/bootscripts/contrib/lsb-v3/init.d/modules
@@ -0,0 +1,99 @@
+#!/bin/sh
+# Begin /etc/init.d/modules
+
+### BEGIN INIT INFO
+# Provides: modules
+# Required-Start: mountkernfs
+# Should-Start: sysctl
+# Required-Stop:
+# Should-Stop:
+# Default-Start: sysinit
+# Default-Stop:
+# Short-Description: Loads required modules.
+# Description: Loads modules listed in /etc/sysconfig/modules.
+# X-LFS-Default-Start: S10
+# X-LFS-Default-Stop:
+# X-LFS-Provided-By: LFS
+### END INIT INFO
+
+. /lib/lsb/init-functions
+
+# Assure that the kernel has module support.
+[ -e /proc/ksyms -o -e /proc/modules ] || exit 0
+
+case "${1}" in
+ start)
+
+ # Exit if there's no modules file or there are no
+ # valid entries
+ [ -r /etc/sysconfig/modules ] &&
+ egrep -qv '^($|#)' /etc/sysconfig/modules ||
+ exit 0
+
+ # If proc is mounted, find the current kernel
+ # message level
+ if [ -f /proc/sys/kernel/printk ]; then
+ prev_msg=`cat /proc/sys/kernel/printk | \
+ sed 'l 1' | sed -n '2~0p' | \
+ sed 's/\\\//'`
+ else
+ prev_msg="6"
+ fi
+
+ # Now set the message level to 1 so not to make too
+ # much noise when loading modules
+ dmesg -n 1
+
+ # Only try to load modules if the user has actually given us
+ # some modules to load.
+ if egrep -qv '^(#|$)' /etc/sysconfig/modules 2>/dev/null
+ then
+
+ # Read in the configuration file.
+ exec 9>&0 < /etc/sysconfig/modules
+
+ message="${INFO}Loading modules:"
+
+ while read module args
+ do
+ # Ignore comments and blank lines.
+ case "${module}" in
+ ""|\#*) continue ;;
+ esac
+
+ # Attempt to load the module, making
+ # sure to pass any arguments provided.
+ modprobe ${module} ${args} > /dev/null
+
+ # Print the module name if successful,
+ # otherwise take note.
+ if [ ${?} -eq 0 ]; then
+ message="${message}${NORMAL} ${module}"
+ else
+ failedmod="${failedmod} ${module}"
+ fi
+ done
+
+ # Print a message about successfully loaded
+ # modules on the correct line.
+ log_success_msg "${message}"
+
+ # Print a failure message with a list of any
+ # modules that may have failed to load.
+ if [ "${failedmod}" ]; then
+ log_failure_msg "${FAILURE}Failed to load modules:${failedmod}"
+ fi
+
+ exec 0>&9 9>&-
+
+ fi
+ # Set the kernel message level back to it's previous value.
+ dmesg -n "${prev_msg}"
+ ;;
+ *)
+ echo "Usage: ${0} {start}"
+ exit 1
+ ;;
+esac
+
+# End /etc/init.d/modules