[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#492205: installation-reports: firmware load testing



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





Reply to: