summaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
authorLaurentiu Palcu <laurentiu.palcu@intel.com>2013-01-17 16:58:43 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-01-18 13:28:07 +0000
commit36a64307274c5940332ceb139d2b4eff33663e29 (patch)
tree8b500bd582627b53524dc6c436d68bec6771480e /meta
parente7ebff0a9865cfbb5ce00de095a47a7b12b26196 (diff)
downloadpoky-36a64307274c5940332ceb139d2b4eff33663e29.tar.gz
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>
Diffstat (limited to 'meta')
-rwxr-xr-xmeta/recipes-kernel/modutils-initscripts/files/modutils.sh34
1 files changed, 25 insertions, 9 deletions
diff --git a/meta/recipes-kernel/modutils-initscripts/files/modutils.sh b/meta/recipes-kernel/modutils-initscripts/files/modutils.sh
index 9049bbb8aa..a78adf5729 100755
--- a/meta/recipes-kernel/modutils-initscripts/files/modutils.sh
+++ b/meta/recipes-kernel/modutils-initscripts/files/modutils.sh
@@ -13,7 +13,7 @@
13 13
14LOAD_MODULE=modprobe 14LOAD_MODULE=modprobe
15[ -f /proc/modules ] || exit 0 15[ -f /proc/modules ] || exit 0
16[ -f /etc/modules ] || exit 0 16[ -f /etc/modules ] || [ -d /etc/modules-load.d ] || exit 0
17[ -e /sbin/modprobe ] || LOAD_MODULE=insmod 17[ -e /sbin/modprobe ] || LOAD_MODULE=insmod
18 18
19if [ ! -f /lib/modules/`uname -r`/modules.dep ]; then 19if [ ! -f /lib/modules/`uname -r`/modules.dep ]; then
@@ -21,15 +21,31 @@ if [ ! -f /lib/modules/`uname -r`/modules.dep ]; then
21 depmod -Ae 21 depmod -Ae
22fi 22fi
23 23
24loaded_modules=" "
25
26process_file() {
27 file=$1
28
29 (cat $file; echo; ) |
30 while read module args
31 do
32 case "$module" in
33 \#*|"") continue ;;
34 esac
35 [ -n "$(echo $loaded_modules | grep " $module ")" ] && continue
36 [ "$VERBOSE" != no ] && echo -n "$module "
37 eval "$LOAD_MODULE $module $args >/dev/null 2>&1"
38 loaded_modules="${loaded_modules}${module} "
39 done
40}
41
24[ "$VERBOSE" != no ] && echo -n "Loading modules: " 42[ "$VERBOSE" != no ] && echo -n "Loading modules: "
25(cat /etc/modules; echo; ) | 43[ -f /etc/modules ] && process_file /etc/modules
26while read module args 44
27do 45[ -d /etc/modules-load.d ] || exit 0
28 case "$module" in 46
29 \#*|"") continue ;; 47for f in /etc/modules-load.d/*.conf; do
30 esac 48 process_file $f
31 [ "$VERBOSE" != no ] && echo -n "$module "
32 eval "$LOAD_MODULE $module $args >/dev/null 2>&1"
33done 49done
34[ "$VERBOSE" != no ] && echo 50[ "$VERBOSE" != no ] && echo
35 51