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