aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--conf.d.Linux/modules7
-rw-r--r--init.d.Linux/modules.in13
2 files changed, 16 insertions, 4 deletions
diff --git a/conf.d.Linux/modules b/conf.d.Linux/modules
index 7f923e7d..2fc26cf3 100644
--- a/conf.d.Linux/modules
+++ b/conf.d.Linux/modules
@@ -5,8 +5,11 @@
#modules_2_6="tun"
#modules="ohci1394"
-# Give the modules some arguments if needed.
-# module_ieee1394_args="debug"
+# Give the modules some arguments if needed, per version if necessary.
+#module_ieee1394_args="debug"
+#module_ieee1394_args_2_6_23_gentoo_r5="ieee1394 ohci1394"
+#module_ieee1394_args_2_6_23="tun ieee1394"
+#module_ieee1394_args_2_6="tun"
# You should consult your kernel documentation and configuration
# for a list of modules and their options.
diff --git a/init.d.Linux/modules.in b/init.d.Linux/modules.in
index b09620df..1a0c7458 100644
--- a/init.d.Linux/modules.in
+++ b/init.d.Linux/modules.in
@@ -23,7 +23,7 @@ start()
x=${KV#*.*.}
local KV_MICRO=${x%%-*}
- local list= x= args= cnt=0
+ local list= x= xx= y= args= cnt=0
for x in "${KV}" \
${KV_MAJOR}.${KV_MINOR}.${KV_MICRO} \
${KV_MAJOR}.${KV_MINOR} \
@@ -35,7 +35,16 @@ start()
for x in ${list}; do
ebegin "Loading module ${x}"
- eval args=\$module_$(shell_var "${x}")_args
+ xx=$(shell_var "${x}")
+ for y in "${KV}" \
+ ${KV_MAJOR}.${KV_MINOR}.${KV_MICRO} \
+ ${KV_MAJOR}.${KV_MINOR} \
+ ; do
+ eval args=\$module_${xx}_args_$(shell_var "${y}")
+ [ -n "${args}" ] && break
+ done
+ done
+ [ -z "${args}" ] && eval args=\$module_${xx}_args
eval modprobe -q "${x}" "${args}"
eend $? "Failed to load ${x}" && cnt=$((${cnt} + 1))
done