Here is another draft, this time also providing the module name.  I
dropped the code looking in /proc/modules, as three ways to find
firmware seem a bit too much.  I added similar code to the
isenkram-cli package to install needed firmware packages into
/target/, and it seem to work well there. :)

This new version is not yet tested in the udeb, but the key parts
worked when I tested on the command line.

diff --git a/check-missing-firmware.sh b/check-missing-firmware.sh
index 60c6ff4..87f2839 100755
--- a/check-missing-firmware.sh
+++ b/check-missing-firmware.sh
@@ -69,6 +69,29 @@ check_missing () {
        
        modules=""
        files=""
+
+       # Workaround for bug #725714, the kernel and udev no longer
+       # let us know via /dev/.udev/firmware-missing and
+       # /run/udev/firmware-missing which firmware files the kernel
+       # drivers look for.
+       fwlist=/tmp/check-missing-firmware-dmesg.list
+       dmesg | grep 'firmware: failed to load' \
+           | cut -d\] -f2- | cut -d" " -f2,8 > $fwlist
+       while read module fwfile ; do
+           log "looking for firmware file $fwfile requested by $module"
+           if [ ! -e /lib/firmware/$fwfile ] ; then
+               if grep -q "^$fwfile$" $DENIED 2>/dev/null; then
+                   log "listed in $DENIED"
+                   continue
+               fi
+               files="${files:+$files }$fwfile"
+               modules="$module${modules:+ $modules}"
+           fi
+       done < $fwlist
+
+       # This block looking in $MISSING should be removed when
+       # hw-detect no longer should support installing using older
+       # udev and kernel versions.
        for missing_dir in $MISSING
        do
                if [ ! -d "$missing_dir" ]; then
@@ -121,7 +144,7 @@ check_missing () {
                log "missing firmware files ($files) for $modules"
                return 0
        else
-               log "no missing firmware in $MISSING"
+               log "no missing firmware loaded kernel modules"
                return 1
        fi
 }

-- 
Happy hacking
Petter Reinholdtsen


-- 
To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to