blob: 67e1dcd9907e2a0fe09641f3bd125bbb89571864 [file] [log] [blame]
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001#!/bin/sh
2### BEGIN INIT INFO
3# Provides: module-init-tools
4# Required-Start:
5# Required-Stop:
6# Should-Start: checkroot
7# Should-stop:
8# Default-Start: S
9# Default-Stop:
10# Short-Description: Process /etc/modules.
11# Description: Load the modules listed in /etc/modules.
12### END INIT INFO
13
14LOAD_MODULE=modprobe
15[ -f /proc/modules ] || exit 0
Andrew Geisslerc926e172021-05-07 16:11:35 -050016[ -d /lib/modules/`uname -r` ] || exit 0
Patrick Williamsc124f4f2015-09-15 14:41:29 -050017
Andrew Geissler09209ee2020-12-13 08:44:15 -060018# Test if modules.dep exists and has a size greater than zero
19if [ ! -s /lib/modules/`uname -r`/modules.dep ]; then
Patrick Williamsc124f4f2015-09-15 14:41:29 -050020 [ "$VERBOSE" != no ] && echo "Calculating module dependencies ..."
Andrew Geisslerd1e89492021-02-12 15:35:20 -060021 depmod -a
Patrick Williamsc124f4f2015-09-15 14:41:29 -050022fi
23
Andrew Geissler09209ee2020-12-13 08:44:15 -060024[ -f /etc/modules ] || [ -d /etc/modules-load.d ] || exit 0
25[ -e /sbin/modprobe ] || LOAD_MODULE=insmod
26
Patrick Williamsc124f4f2015-09-15 14:41:29 -050027loaded_modules=" "
28
29process_file() {
30 file=$1
31
32 (cat $file; echo; ) |
33 while read module args
34 do
35 case "$module" in
36 \#*|"") continue ;;
37 esac
38 [ -n "$(echo $loaded_modules | grep " $module ")" ] && continue
39 [ "$VERBOSE" != no ] && echo -n "$module "
40 eval "$LOAD_MODULE $module $args >/dev/null 2>&1"
41 loaded_modules="${loaded_modules}${module} "
42 done
43}
44
45[ "$VERBOSE" != no ] && echo -n "Loading modules: "
46[ -f /etc/modules ] && process_file /etc/modules
47
48[ -d /etc/modules-load.d ] || exit 0
49
50for f in /etc/modules-load.d/*.conf; do
51 process_file $f
52done
53[ "$VERBOSE" != no ] && echo
54
55exit 0