Ticket #103: modules.diff

File modules.diff, 0 bytes (added by roy, 2 years ago)

Allow module aliasing

  • conf.d/modules

    diff --git a/conf.d/modules b/conf.d/modules
    index 2fc26cf..c5a3627 100644
    a b  
    55#modules_2_6="tun" 
    66#modules="ohci1394" 
    77 
     8# You can give modules a different name when they load - the new name 
     9# will also be used to pick arguments below. 
     10#modules="dummy:dummy1" 
     11 
    812# Give the modules some arguments if needed, per version if necessary. 
    913#module_ieee1394_args="debug" 
    1014#module_ieee1394_args_2_6_23_gentoo_r5="ieee1394 ohci1394" 
  • init.d/modules.in

    diff --git a/init.d/modules.in b/init.d/modules.in
    index da5550c..ba0742d 100644
    a b start() 
    2323        x=${KV#*.*.} 
    2424        local KV_MICRO=${x%%-*} 
    2525 
    26         local list= x= xx= y= args= cnt=0 
     26        local list= x= xx= y= args= mpargs= cnt=0 a= 
    2727        for x in "${KV}" \ 
    2828                ${KV_MAJOR}.${KV_MINOR}.${KV_MICRO} \ 
    2929                ${KV_MAJOR}.${KV_MINOR} \ 
    start() 
    3434        [ -z "${list}" ] && list=${modules} 
    3535 
    3636        for x in ${list}; do 
    37                 ebegin "Loading module ${x}" 
     37                a=${x#*:} 
     38                if [ "${a}" = "${x}" ]; then 
     39                        ebegin "Loading module ${x}" 
     40                else 
     41                        x=${x%%:*} 
     42                        mpargs="-o ${a}" 
     43                        ebegin "Loading module ${x} as ${a}" 
     44                fi 
     45                aa=$(shell_var "${a}") 
    3846                xx=$(shell_var "${x}") 
    3947                for y in "${KV}" \ 
    4048                        ${KV_MAJOR}.${KV_MINOR}.${KV_MICRO} \ 
    4149                        ${KV_MAJOR}.${KV_MINOR} \ 
    4250                ; do 
     51                        eval args=\$module_${aa}_args_$(shell_var "${y}") 
     52                        [ -n "${args}" ] && break 
    4353                        eval args=\$module_${xx}_args_$(shell_var "${y}") 
    4454                        [ -n "${args}" ] && break 
    4555                done 
     56                [ -z "${args}" ] && eval args=\$module_${aa}_args 
    4657                [ -z "${args}" ] && eval args=\$module_${xx}_args 
    47                 eval modprobe -q "${x}" "${args}" 
     58                eval modprobe -q "${mpargs}" "${x}" "${args}" 
    4859                eend $? "Failed to load ${x}" && cnt=$((${cnt} + 1)) 
    4960        done 
    5061        einfo "Autoloaded ${cnt} module(s)"