modutils-initscripts: improve modutils.sh
modutils.sh reads /etc/modules to load the listed modules at boot time. /etc/modules is generated by update-modules which scans /etc/modules-load.d directory. However, update-modules became obsolete because the files it generates are not used by modprobe anymore. Hence, change modutils.sh to scan also /etc/modules-load.d/*.conf and load the modules listed there. Basically, the behavior is this: * if /etc/modules exists, load those modules; * if the directory /etc/modules-load.d exists, load the modules listed in the .conf files but ignore those already loaded (from /etc/modules); [YOCTO #3598] (From OE-Core rev: f2d6e84cb1694e2365beca331439bb2d23843a5b) Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
e7ebff0a98
commit
36a6430727
|
@ -13,7 +13,7 @@
|
||||||
|
|
||||||
LOAD_MODULE=modprobe
|
LOAD_MODULE=modprobe
|
||||||
[ -f /proc/modules ] || exit 0
|
[ -f /proc/modules ] || exit 0
|
||||||
[ -f /etc/modules ] || exit 0
|
[ -f /etc/modules ] || [ -d /etc/modules-load.d ] || exit 0
|
||||||
[ -e /sbin/modprobe ] || LOAD_MODULE=insmod
|
[ -e /sbin/modprobe ] || LOAD_MODULE=insmod
|
||||||
|
|
||||||
if [ ! -f /lib/modules/`uname -r`/modules.dep ]; then
|
if [ ! -f /lib/modules/`uname -r`/modules.dep ]; then
|
||||||
|
@ -21,15 +21,31 @@ if [ ! -f /lib/modules/`uname -r`/modules.dep ]; then
|
||||||
depmod -Ae
|
depmod -Ae
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
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: "
|
[ "$VERBOSE" != no ] && echo -n "Loading modules: "
|
||||||
(cat /etc/modules; echo; ) |
|
[ -f /etc/modules ] && process_file /etc/modules
|
||||||
while read module args
|
|
||||||
do
|
[ -d /etc/modules-load.d ] || exit 0
|
||||||
case "$module" in
|
|
||||||
\#*|"") continue ;;
|
for f in /etc/modules-load.d/*.conf; do
|
||||||
esac
|
process_file $f
|
||||||
[ "$VERBOSE" != no ] && echo -n "$module "
|
|
||||||
eval "$LOAD_MODULE $module $args >/dev/null 2>&1"
|
|
||||||
done
|
done
|
||||||
[ "$VERBOSE" != no ] && echo
|
[ "$VERBOSE" != no ] && echo
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue