xref: /OK3568_Linux_fs/yocto/poky/meta/recipes-kernel/modutils-initscripts/files/modutils.sh (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun#!/bin/sh
2*4882a593Smuzhiyun#
3*4882a593Smuzhiyun# SPDX-License-Identifier: MIT
4*4882a593Smuzhiyun#
5*4882a593Smuzhiyun
6*4882a593Smuzhiyun### BEGIN INIT INFO
7*4882a593Smuzhiyun# Provides:          module-init-tools
8*4882a593Smuzhiyun# Required-Start:
9*4882a593Smuzhiyun# Required-Stop:
10*4882a593Smuzhiyun# Should-Start:      checkroot
11*4882a593Smuzhiyun# Should-stop:
12*4882a593Smuzhiyun# Default-Start:     S
13*4882a593Smuzhiyun# Default-Stop:
14*4882a593Smuzhiyun# Short-Description: Process /etc/modules.
15*4882a593Smuzhiyun# Description:       Load the modules listed in /etc/modules.
16*4882a593Smuzhiyun### END INIT INFO
17*4882a593Smuzhiyun
18*4882a593SmuzhiyunLOAD_MODULE=modprobe
19*4882a593Smuzhiyun[ -f /proc/modules ] || exit 0
20*4882a593Smuzhiyun[ -d /lib/modules/`uname -r` ] || exit 0
21*4882a593Smuzhiyun
22*4882a593Smuzhiyun# Test if modules.dep exists and has a size greater than zero
23*4882a593Smuzhiyunif [ ! -s /lib/modules/`uname -r`/modules.dep ]; then
24*4882a593Smuzhiyun	[ "$VERBOSE" != no ] && echo "Calculating module dependencies ..."
25*4882a593Smuzhiyun	depmod -a
26*4882a593Smuzhiyunfi
27*4882a593Smuzhiyun
28*4882a593Smuzhiyun[ -f /etc/modules ] || [ -d /etc/modules-load.d ] || exit 0
29*4882a593Smuzhiyun[ -e /sbin/modprobe ] || LOAD_MODULE=insmod
30*4882a593Smuzhiyun
31*4882a593Smuzhiyunloaded_modules=" "
32*4882a593Smuzhiyun
33*4882a593Smuzhiyunprocess_file() {
34*4882a593Smuzhiyun	file=$1
35*4882a593Smuzhiyun
36*4882a593Smuzhiyun	(cat $file; echo; ) |
37*4882a593Smuzhiyun	while read module args
38*4882a593Smuzhiyun	do
39*4882a593Smuzhiyun		case "$module" in
40*4882a593Smuzhiyun			\#*|"") continue ;;
41*4882a593Smuzhiyun		esac
42*4882a593Smuzhiyun		[ -n "$(echo $loaded_modules | grep " $module ")" ] && continue
43*4882a593Smuzhiyun		[ "$VERBOSE" != no ] && echo -n "$module "
44*4882a593Smuzhiyun		eval "$LOAD_MODULE $module $args >/dev/null 2>&1"
45*4882a593Smuzhiyun		loaded_modules="${loaded_modules}${module} "
46*4882a593Smuzhiyun	done
47*4882a593Smuzhiyun}
48*4882a593Smuzhiyun
49*4882a593Smuzhiyun[ "$VERBOSE" != no ] && echo -n "Loading modules: "
50*4882a593Smuzhiyun[ -f /etc/modules ] && process_file /etc/modules
51*4882a593Smuzhiyun
52*4882a593Smuzhiyun[ -d /etc/modules-load.d ] || exit 0
53*4882a593Smuzhiyun
54*4882a593Smuzhiyunfor f in /etc/modules-load.d/*.conf; do
55*4882a593Smuzhiyun	process_file $f
56*4882a593Smuzhiyundone
57*4882a593Smuzhiyun[ "$VERBOSE" != no ] && echo
58*4882a593Smuzhiyun
59*4882a593Smuzhiyunexit 0
60