blob: e9aaa66cb719017290d5df7cc5f9d961018932fb [file] [log] [blame]
#!/bin/sh
#
# SPDX-License-Identifier: MIT
#
### 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
LOAD_MODULE=modprobe
[ -f /proc/modules ] || exit 0
[ -d /lib/modules/`uname -r` ] || exit 0
# Test if modules.dep exists and has a size greater than zero
if [ ! -s /lib/modules/`uname -r`/modules.dep ]; then
[ "$VERBOSE" != no ] && echo "Calculating module dependencies ..."
depmod -a
fi
[ -f /etc/modules ] || [ -d /etc/modules-load.d ] || exit 0
[ -e /sbin/modprobe ] || LOAD_MODULE=insmod
loaded_modules=" "
process_file() {
file=$1
(cat $file; echo; ) |
while read module args
do
case "$module" in
\#*|"") continue ;;
esac
[ -n "$(echo $loaded_modules | grep " $module ")" ] && continue
[ "$VERBOSE" != no ] && echo -n "$module "
eval "$LOAD_MODULE $module $args >/dev/null 2>&1"
loaded_modules="${loaded_modules}${module} "
done
}
[ "$VERBOSE" != no ] && echo -n "Loading modules: "
[ -f /etc/modules ] && process_file /etc/modules
[ -d /etc/modules-load.d ] || exit 0
for f in /etc/modules-load.d/*.conf; do
process_file $f
done
[ "$VERBOSE" != no ] && echo
exit 0