diff options
author | Victor Lowther <victor.lowther@gmail.com> | 2009-05-28 21:13:16 -0500 |
---|---|---|
committer | Victor Lowther <victor.lowther@gmail.com> | 2009-05-28 21:13:16 -0500 |
commit | c93d9f62652f9aef21550898bd53890cad5e9732 (patch) | |
tree | 671f2d4f77ab34a588f0e62844df1f34e9f9d02a /dracut-functions | |
parent | 06558b3ee484f20d8529cadf190241614f811a57 (diff) |
Fix firmware installation.
Instead of calling firmware checking once per instmods invocation,
call only when we install an actual module on the initramfs.
Diffstat (limited to 'dracut-functions')
-rwxr-xr-x | dracut-functions | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/dracut-functions b/dracut-functions index 1e3f891..3ef664e 100755 --- a/dracut-functions +++ b/dracut-functions @@ -261,8 +261,8 @@ instmods() { case $mod in =*) # This introduces 2 incompatible meanings for =* arguments # to instmods. We need to decide which one to keep. - if [ "$mod" = "=ata" -a -f $srcmods/modules.block ] ; then - instmods $mpargs $(egrep 'ata|ahci' "${srcmods}/modules.block") + if [ "$mod" = "=ata" -a -f $srcmods/modules.block ] ; then + instmods $mpargs $(egrep 'ata|ahci' "${srcmods}/modules.block") elif [ -f $srcmods/modules.${mod#=} ]; then instmods $mpargs $(cat ${srcmods}/modules.${mod#=} ) else @@ -283,18 +283,18 @@ instmods() { continue fi inst_simple "$modpath" + for fw in $(/sbin/modinfo -F firmware $mod 2>/dev/null); do + if [ -f /lib/firmware/$fw ]; then + inst_simple "/lib/firmware/$fw" + else + dwarning "Possible missing firmware /lib/firmware/${fw} for module ${mod}.ko" + fi + done done ;; - esac + esac shift done - for fw in $(/sbin/modinfo -F firmware $mod 2>/dev/null); do - if [ -f /lib/firmware/$fw ]; then - inst_simple "/lib/firmware/$fw" - else - dwarning "Possible missing firmware /lib/firmware/${fw} for module $(basename ${mod} .ko)" - fi - done } # vim:ts=8:sw=4:sts=4:et |