12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- #!/bin/sh
- # Begin $RC_BASE/init.d/modules
- ### BEGIN INIT INFO
- # Provides: modules
- # Required-Start: mountvirtfs sysctl
- # Should-Start:
- # Required-Stop:
- # Should-Stop:
- # Default-Start: S
- # Default-Stop:
- # Short-Description: Loads required modules.
- # Description: Loads modules listed in /etc/default/modules.
- # 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/default/modules ] &&
- egrep -qv '^($|#)' /etc/default/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/default/modules 2>/dev/null
- then
- # Read in the configuration file.
- exec 9>&0 < /etc/default/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 $RC_BASE/init.d/modules
|