On Thu, Jul 24, 2008 at 05:26:19PM -0400, Joey Hess wrote: > dann frazier wrote: > > The bnx2 module requests 2 pieces of firmware - maybe that has > > something to do with it? > > Hm, don't think so.. > > If you want to test, I've checked fixes for all the issues I understand > (except for the code page problem) into hw-detect in svn. > > Test image: http://kitenet.net/~joey/tmp/mini.so > sha1sum: 31716cc357ac0db4a315523dd69daade3453ef00
I couldn't get this image to work; it seems to load bnx2 on startup automatically and, after a 'modprobe -r bnx2', it doesn't seem to ever bring up the fw prompt. > If it still tries to install all the firmware .debs, I'd probably need > to see a sh -x check-missing-firmware to figure out why. Though I did > add a little bit of logging, that may help pinpoint it. I collected this (after commenting out debconf stuff, and manually modprobing bnx2 to create the /tmp/missing-firmware file). See [1]. The problem appears to be that the grepfor file contains an empty trailing line: ~ # cat /tmp/grepfor bnx2-06-4.0.5.fw bnx2-06-4.0.5.fw ~ # And this is because "$files" has a trailing space: ~ # cat /tmp/files2.dannf | sed 's/$/,/' bnx2-06-4.0.5.fw bnx2-06-4.0.5.fw , Filtering out the trailing space[2] fixed this for me. [1] BusyBox v1.10.2 (2008-06-06 18:28:20 UTC) built-in shell (ash) Enter 'help' for a list of built-in commands. ~ # modprobe -r bnx2 ~ # ls bin dev init lib mnt root sys usr cdrom etc initrd media proc sbin tmp var ~ # ls /media/ ~ # ls /tmp x ~ # modprobe bnx2 ~ # cat /tmp/missing-firmware bnx2 bnx2-06-4.0.5.fw bnx2 bnx2-06-4.0.5.fw ~ # /bin/check-missing-firmware + set -e + LOG=/tmp/missing-firmware + NL= + first=1 + read_log + modules= + files= + [ -s /tmp/missing-firmware ] + mv /tmp/missing-firmware /tmp/missing-firmware.old + OLDIFS= + IFS= + cat /tmp/missing-firmware.old + module=bnx2 + [ -n bnx2 ] + modules=bnx2 + file=bnx2-06-4.0.5.fw + [ -n bnx2-06-4.0.5.fw ] + files=bnx2-06-4.0.5.fw + module=bnx2 + [ -n bnx2 ] + modules=bnx2 bnx2 + file=bnx2-06-4.0.5.fw + [ -n bnx2-06-4.0.5.fw ] + files=bnx2-06-4.0.5.fw bnx2-06-4.0.5.fw + IFS= + rm -f /tmp/missing-firmware.old + [ -n bnx2 bnx2 ] + return 0 + ask_load_firmware + return 0 + mountmedia mount: option requires an argument -- o BusyBox v1.10.2 (2008-06-06 18:28:20 UTC) multi-call binary Usage: mount [flags] DEVICE NODE [-o options,more-options] umount: cannot umount /media: Invalid argument mount: mounting /dev/cciss/c0d0 on /media failed: Invalid argument + [ -e /media/bnx2-06-4.0.5.fw ] + [ -e /media/bnx2-06-4.0.5.fw ] + umount /media umount: cannot umount /media: Invalid argument + true + mountmedia driver mount: option requires an argument -- o BusyBox v1.10.2 (2008-06-06 18:28:20 UTC) multi-call binary Usage: mount [flags] DEVICE NODE [-o options,more-options] umount: cannot umount /media: Invalid argument mount: mounting /dev/cciss/c0d0 on /media failed: Invalid argument mount: option requires an argument -- o BusyBox v1.10.2 (2008-06-06 18:28:20 UTC) multi-call binary Usage: mount [flags] DEVICE NODE [-o options,more-options] umount: cannot umount /media: Invalid argument mount: mounting /dev/cciss/c0d1 on /media failed: Invalid argument mount: option requires an argument -- o BusyBox v1.10.2 (2008-06-06 18:28:20 UTC) multi-call binary Usage: mount [flags] DEVICE NODE [-o options,more-options] umount: cannot umount /media: Invalid argument mount: mounting /dev/cciss/c0d2 on /media failed: Invalid argument mount: option requires an argument -- o BusyBox v1.10.2 (2008-06-06 18:28:20 UTC) multi-call binary Usage: mount [flags] DEVICE NODE [-o options,more-options] umount: cannot umount /media: Invalid argument + echo bnx2-06-4.0.5.fw bnx2-06-4.0.5.fw + sed -e s/ /\n/g + [ -f /media/atmel-firmware_1.3-3_all.deb ] + list_deb_firmware /media/atmel-firmware_1.3-3_all.deb + ar p /media/atmel-firmware_1.3-3_all.deb data.tar.gz + grep -qf /tmp/grepfor + tar zt + grep ^\./lib/firmware/ + sed -e s!^\./lib/firmware/!! + install_firmware_pkg /media/atmel-firmware_1.3-3_all.deb + echo /media/atmel-firmware_1.3-3_all.deb + grep -q \.deb$ + mkdir -p /var/cache/firmware/ + cp -a /media/atmel-firmware_1.3-3_all.deb /var/cache/firmware/ + basename /media/atmel-firmware_1.3-3_all.deb + udpkg --unpack /var/cache/firmware/atmel-firmware_1.3-3_all.deb (Reading database...) (Updating database...) + [ -f /media/firmware-bnx2_0.12_all.deb ] + list_deb_firmware /media/firmware-bnx2_0.12_all.deb + ar p /media/firmware-bnx2_0.12_all.deb data.tar.gz + grep -qf /tmp/grepfor + tar zt + grep ^\./lib/firmware/ + sed -e s!^\./lib/firmware/!! + install_firmware_pkg /media/firmware-bnx2_0.12_all.deb + echo /media/firmware-bnx2_0.12_all.deb + grep -q \.deb$ + mkdir -p /var/cache/firmware/ + cp -a /media/firmware-bnx2_0.12_all.deb /var/cache/firmware/ + basename /media/firmware-bnx2_0.12_all.deb + udpkg --unpack /var/cache/firmware/firmware-bnx2_0.12_all.deb (Reading database...) (Updating database...) + [ -f /media/firmware-iwlwifi_0.12_all.deb ] + list_deb_firmware /media/firmware-iwlwifi_0.12_all.deb + ar p /media/firmware-iwlwifi_0.12_all.deb data.tar.gz + grep -qf /tmp/grepfor + tar zt + grep ^\./lib/firmware/ + sed -e s!^\./lib/firmware/!! + install_firmware_pkg /media/firmware-iwlwifi_0.12_all.deb + echo /media/firmware-iwlwifi_0.12_all.deb + grep -q \.deb$ + mkdir -p /var/cache/firmware/ + cp -a /media/firmware-iwlwifi_0.12_all.deb /var/cache/firmware/ + basename /media/firmware-iwlwifi_0.12_all.deb + udpkg --unpack /var/cache/firmware/firmware-iwlwifi_0.12_all.deb (Reading database...) (Updating database...) + [ -f /media/firmware-qlogic_0.12_all.deb ] + list_deb_firmware /media/firmware-qlogic_0.12_all.deb + ar p /media/firmware-qlogic_0.12_all.deb data.tar.gz + grep -qf /tmp/grepfor + tar zt + grep ^\./lib/firmware/ + sed -e s!^\./lib/firmware/!! + install_firmware_pkg /media/firmware-qlogic_0.12_all.deb + echo /media/firmware-qlogic_0.12_all.deb + grep -q \.deb$ + mkdir -p /var/cache/firmware/ + cp -a /media/firmware-qlogic_0.12_all.deb /var/cache/firmware/ + basename /media/firmware-qlogic_0.12_all.deb + udpkg --unpack /var/cache/firmware/firmware-qlogic_0.12_all.deb (Reading database...) (Updating database...) + [ -f /media/firmware-ralink_0.12_all.deb ] + list_deb_firmware /media/firmware-ralink_0.12_all.deb + ar p /media/firmware-ralink_0.12_all.deb data.tar.gz + grep -qf /tmp/grepfor + tar zt + grep ^\./lib/firmware/ + sed -e s!^\./lib/firmware/!! + install_firmware_pkg /media/firmware-ralink_0.12_all.deb + echo /media/firmware-ralink_0.12_all.deb + grep -q \.deb$ + mkdir -p /var/cache/firmware/ + cp -a /media/firmware-ralink_0.12_all.deb /var/cache/firmware/ + basename /media/firmware-ralink_0.12_all.deb + udpkg --unpack /var/cache/firmware/firmware-ralink_0.12_all.deb (Reading database...) (Updating database...) + [ -f /media/ixp4xx-microcode_2.4-2_armel.deb ] + list_deb_firmware /media/ixp4xx-microcode_2.4-2_armel.deb + ar p /media/ixp4xx-microcode_2.4-2_armel.deb data.tar.gz + grep -qf /tmp/grepfor + tar zt + grep ^\./lib/firmware/ + sed -e s!^\./lib/firmware/!! + install_firmware_pkg /media/ixp4xx-microcode_2.4-2_armel.deb + echo /media/ixp4xx-microcode_2.4-2_armel.deb + grep -q \.deb$ + mkdir -p /var/cache/firmware/ + cp -a /media/ixp4xx-microcode_2.4-2_armel.deb /var/cache/firmware/ + basename /media/ixp4xx-microcode_2.4-2_armel.deb + udpkg --unpack /var/cache/firmware/ixp4xx-microcode_2.4-2_armel.deb (Reading database...) (Updating database...) + [ -f /media/libertas-firmware_5.110.22.p14-1_all.deb ] + list_deb_firmware /media/libertas-firmware_5.110.22.p14-1_all.deb + ar p /media/libertas-firmware_5.110.22.p14-1_all.deb data.tar.gz + grep -qf /tmp/grepfor + tar zt + grep ^\./lib/firmware/ + sed -e s!^\./lib/firmware/!! + install_firmware_pkg /media/libertas-firmware_5.110.22.p14-1_all.deb + echo /media/libertas-firmware_5.110.22.p14-1_all.deb + grep -q \.deb$ + mkdir -p /var/cache/firmware/ + cp -a /media/libertas-firmware_5.110.22.p14-1_all.deb /var/cache/firmware/ + basename /media/libertas-firmware_5.110.22.p14-1_all.deb + udpkg --unpack /var/cache/firmware/libertas-firmware_5.110.22.p14-1_all.deb (Reading database...) (Updating database...) + [ -f /media/zd1211-firmware_2.16.0.0-0.1_all.deb ] + list_deb_firmware /media/zd1211-firmware_2.16.0.0-0.1_all.deb + ar p /media/zd1211-firmware_2.16.0.0-0.1_all.deb data.tar.gz + grep -qf /tmp/grepfor + tar zt + grep ^\./lib/firmware/ + sed -e s!^\./lib/firmware/!! + install_firmware_pkg /media/zd1211-firmware_2.16.0.0-0.1_all.deb + echo /media/zd1211-firmware_2.16.0.0-0.1_all.deb + grep -q \.deb$ + mkdir -p /var/cache/firmware/ + cp -a /media/zd1211-firmware_2.16.0.0-0.1_all.deb /var/cache/firmware/ + basename /media/zd1211-firmware_2.16.0.0-0.1_all.deb + udpkg --unpack /var/cache/firmware/zd1211-firmware_2.16.0.0-0.1_all.deb (Reading database...) (Updating database...) + [ -f /media/*.udeb ] + [ -f /media/*.ude ] + rm -f /tmp/grepfor + umount /media + modprobe -r bnx2 + modprobe bnx2 + modprobe -r bnx2 + modprobe bnx2 + read_log + modules= + files= + [ -s /tmp/missing-firmware ] + [ -n ] + return 1 [2] --- check-missing-firmware.sh (revision 54571) +++ check-missing-firmware.sh (working copy) @@ -98,7 +98,7 @@ # This does not use anna because debs can have arbitrary # dependencies, which anna might try to install. if mountmedia driver; then - echo "$files" | sed -e 's/ /\n/g' >/tmp/grepfor + echo "$files" | sed 's/\ $//' | sed -e 's/ /\n/g' >/tmp/grepfor for filename in /media/*.deb /media/*.udeb /media/*.ude /media/firmware/*.deb /media/firmware/*.udeb /media/firmware/*.ude; do if [ -f "$filename" ]; then if check_deb_arch "$filename" && list_deb_firmware "$filename" | grep -qf /tmp/grepfor; then -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]