> > It allows to configure kernel modules parameters from uci config
> > files.
> 
> Interesting.  But is it really good to have a separate config file for
> each module?  This can lead to collisions (if a module has the same
> name as a different config file); also, a set of config files without
> any common pattern would be hard to use in an UI frontend.

Look at the end of this mail for a patch adapted to this configuration.

The way it is done here with a call to "uci show" for each module
implies the config file is opened and parsed each iteration. With a
file per kernel module the config is parsed only for configured modules.

Maybe it would be more efficient to use config_load and callbacks to do
this, but I don't know exactly how yet.

> 
> Maybe a single config file with sections for each module would be
> better?  Something like this:
> 
> config kernel-module scsi_mod
>       option inq_timeout 60
> 
> config kernel-module coolmod2
>       option param1 1
>       option param2 42

Then the patch looks like this if the config file is named
"kernel_modules":

diff --git a/package/base-files/files/etc/functions.sh 
b/package/base-files/files/etc/functions.sh
index 0314692..c7bbbcb 100755
--- a/package/base-files/files/etc/functions.sh
+++ b/package/base-files/files/etc/functions.sh
@@ -165,7 +165,13 @@ config_foreach() {
 load_modules() {
        [ -d /etc/modules.d ] && {
                cd /etc/modules.d
-               sed 's/^[^#]/insmod &/' $* | ash 2>&- || :
+               for mod in $(sed 's/^#.*//' $*) 
+               do 
+                       uci show kernel_modules.$mod 2>/dev/null \
+                       | sed -n 's/[^.]*\.[^.]*\.\([^.]*=[^.]*\)/\1/p' \
+                       | xargs insmod $mod 2>/dev/null \
+                       || :
+               done
        }
 }
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
http://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel

Reply via email to