Using dash instead of bash, dist-upgrade passed finally. It's a bit strange that update-initramfs gets processed twice and finally apt complains, that less has been done than planned (see attached log). But never the less it works.
Ian, thanks a lot for your professional help! Cheers Mich Ian Campbell <i...@debian.org> schrieb am Do., 3. Aug. 2017 um 21:15 Uhr: > On Wed, 2017-08-02 at 21:29 +0200, noone never wrote: > > Please find my answers inline. > > Thanks! In particular for... > > > [...] > > > The message: > > > Couldn't find DTB in /usr/lib/linux-image-4.9.0-3-marvell or > > > /etc/flash-kernel/dtbs > > > is interesting since the double space in "DTB in" is supposed to > > > contain $dtb_name, i.e. the path to look for, but it doesn't not. > > > Please could you attach the full output of running `sh -x > > > /usr/sbin/flash-kernel`, maybe that will include a clue as to where > > > things have gone astray. > > > > Log is attached > > ... this. > > Looking at uses of dtb in you trace: > $ grep dtb ~/tmp/flash-kernel-log.txt > [...] > + dtb_name=kirkwood-sheevaplug.dtb > + '[' -n kirkwood-sheevaplug.dtb ']' > + echo 'Using DTB: kirkwood-sheevaplug.dtb' > Using DTB: kirkwood-sheevaplug.dtb > > So dtb_name is successfully assigned and reported here. > > + handle_dtb > + '[' xkirkwood-sheevaplug.dtb = x ']' > + local dtb > + local dtb_name > > But here it is redeclared as a local shadowing the original, but > unassigned. > > ++ find_dtb_file > ++ local dtb > ++ case "$dtb_name" in > +++ find /etc/flash-kernel/dtbs -name > ++ dtb= > ++ dtb= > ++ error 'Couldn'\''t find DTB in > /usr/lib/linux-image-4.9.0-3-marvell or /etc/flash-kernel/dtbs' > ++ echo 'Couldn'\''t find DTB in /usr/lib/linux-image-4.9.0-3-marvell > or /etc/flash-kernel/dtbs' > Couldn't find DTB in /usr/lib/linux-image-4.9.0-3-marvell or > /etc/flash-kernel/dtbs > > and we end up using the blank version here. > > I have a suspicious this was introduced by the fix to #836697 in [0] > which seems to have added the shadowing "local dtb_name". > > It's a bit naughty but if you edit /usr/share/flash-kernel/functions > and near the top of handle_dtb() change the: > local dtb > local dtb_name > into > local dtb > local dtb_name=$(basename $dtb_name) > > and then remove the "dtb_name=$(basename $dtb_name)" from both halves > of the following if statement, does that fix it? > > Martin, does that fix seem correct to you? > > I think the "local dtb" bit could also move into the else have with the > "dtb=$(find_dtb_file)" as well, but that would be an unrelated change. > > This ultimately seems to be down to a difference in the behaviour of > /bin/dash vs /bin/bash, which I suppose is why it has not been widely > seen: > > $ cat > t.sh <<EOF > c() { > echo "c.a = \"$a\"" > } > > b() { > local a > echo "b.a = \"$a\"" > } > > a() { > local a=foo > echo "a.a = \"$a\"" > b > c > } > > a > EOF > $ dash t.sh > a.a = "foo" > b.a = "foo" > c.a = "foo" > $ bash t.sh > a.a = "foo" > b.a = "" > c.a = "foo" > > I s uppose you have /bin/sh as a link to /bin/bash on your > system still. > > So an alternative workaround would probably be "sudo dpkg-reconfigure > dash" and make dash the system shell. > > Ian. > > [0] > https://anonscm.debian.org/cgit/d-i/flash-kernel.git/commit/?id=0eb2ec06735e4a5712796836f7061190dfcf3a37 > >
sheeva:~# dpkg-reconfigure dash Removing 'diversion of /bin/sh to /bin/sh.distrib by bash' Adding 'diversion of /bin/sh to /bin/sh.distrib by dash' Removing 'diversion of /usr/share/man/man1/sh.1.gz to /usr/share/man/man1/sh.distrib.1.gz by bash' Adding 'diversion of /usr/share/man/man1/sh.1.gz to /usr/share/man/man1/sh.distrib.1.gz by dash' sheeva:~# sh -x /usr/sbin/flash-kernel > flash-kernel-log.txt^C sheeva:~# apt-get dist-upgrade Reading package lists... Done Building dependency tree Reading state information... Done Calculating upgrade... Done The following packages were automatically installed and are no longer required: gnupg-curl imagemagick-common libapt-inst1.5 libapt-pkg4.12 libasprintf0c2 libasyncns0 libilmbase6 libjasper1 libjpeg8 liblensfun-data liblensfun0 liblinear1 libopenexr6 libpth20 libpulse0 libsctp1 libuuid-perl libxapian22 linux-image-3.2.0-4-kirkwood lksctp-tools lockfile-progs python-debianbts python-httplib2 python-pysimplesoap python-reportbug python-soappy python-support Use 'apt autoremove' to remove them. 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 4 not fully installed or removed. After this operation, 0 B of additional disk space will be used. Do you want to continue? [Y/n] Setting up initramfs-tools (0.130) ... update-initramfs: deferring update (trigger activated) Setting up linux-image-4.9.0-3-marvell (4.9.30-2+deb9u2) ... /etc/kernel-img.conf:4: W: ignoring unknown parameter relative_links /etc/kernel-img.conf:6: W: ignoring unknown parameter do_bootfloppy /etc/kernel/postinst.d/initramfs-tools: update-initramfs: Generating /boot/initrd.img-4.9.0-3-marvell I: The initramfs will attempt to resume from /dev/sda3 I: (UUID=6fcd0aea-6301-4c47-a3fd-9f5eb2c1f8b5) I: Set the RESUME variable to override this. W: mdadm: /etc/mdadm/mdadm.conf defines no arrays. Using DTB: kirkwood-sheevaplug.dtb Installing /usr/lib/linux-image-4.9.0-3-marvell/kirkwood-sheevaplug.dtb into /boot/dtbs/4.9.0-3-marvell/kirkwood-sheevaplug.dtb Installing new kirkwood-sheevaplug.dtb. Installing /usr/lib/linux-image-4.9.0-3-marvell/kirkwood-sheevaplug.dtb into /boot/dtbs/4.9.0-3-marvell/kirkwood-sheevaplug.dtb Taking backup of kirkwood-sheevaplug.dtb. Installing new kirkwood-sheevaplug.dtb. flash-kernel: deferring update (trigger activated) /etc/kernel/postinst.d/zz-flash-kernel: Using DTB: kirkwood-sheevaplug.dtb Installing /usr/lib/linux-image-4.9.0-3-marvell/kirkwood-sheevaplug.dtb into /boot/dtbs/4.9.0-3-marvell/kirkwood-sheevaplug.dtb Taking backup of kirkwood-sheevaplug.dtb. Installing new kirkwood-sheevaplug.dtb. Installing /usr/lib/linux-image-4.9.0-3-marvell/kirkwood-sheevaplug.dtb into /boot/dtbs/4.9.0-3-marvell/kirkwood-sheevaplug.dtb Taking backup of kirkwood-sheevaplug.dtb. Installing new kirkwood-sheevaplug.dtb. flash-kernel: deferring update (trigger activated) Setting up linux-image-marvell (4.9+80+deb9u1) ... Setting up linux-image-kirkwood (4.9+80+deb9u1) ... Processing triggers for initramfs-tools (0.130) ... update-initramfs: Generating /boot/initrd.img-4.9.0-3-marvell I: The initramfs will attempt to resume from /dev/sda3 I: (UUID=6fcd0aea-6301-4c47-a3fd-9f5eb2c1f8b5) I: Set the RESUME variable to override this. W: mdadm: /etc/mdadm/mdadm.conf defines no arrays. Using DTB: kirkwood-sheevaplug.dtb Installing /usr/lib/linux-image-4.9.0-3-marvell/kirkwood-sheevaplug.dtb into /boot/dtbs/4.9.0-3-marvell/kirkwood-sheevaplug.dtb Taking backup of kirkwood-sheevaplug.dtb. Installing new kirkwood-sheevaplug.dtb. Installing /usr/lib/linux-image-4.9.0-3-marvell/kirkwood-sheevaplug.dtb into /boot/dtbs/4.9.0-3-marvell/kirkwood-sheevaplug.dtb Taking backup of kirkwood-sheevaplug.dtb. Installing new kirkwood-sheevaplug.dtb. flash-kernel: installing version 4.9.0-3-marvell flash-kernel: appending /usr/lib/linux-image-4.9.0-3-marvell/kirkwood-sheevaplug.dtb to kernel Generating kernel u-boot image... done. Taking backup of uImage. Installing new uImage. Generating initramfs u-boot image... done. Taking backup of uInitrd. Installing new uInitrd. Taking backup of dtb. Installing new dtb. Processing triggers for flash-kernel (3.79) ... Using DTB: kirkwood-sheevaplug.dtb Installing /usr/lib/linux-image-4.9.0-3-marvell/kirkwood-sheevaplug.dtb into /boot/dtbs/4.9.0-3-marvell/kirkwood-sheevaplug.dtb Taking backup of kirkwood-sheevaplug.dtb. Installing new kirkwood-sheevaplug.dtb. flash-kernel: installing version 4.9.0-3-marvell flash-kernel: appending /usr/lib/linux-image-4.9.0-3-marvell/kirkwood-sheevaplug.dtb to kernel Generating kernel u-boot image... done. Taking backup of uImage. Installing new uImage. Generating initramfs u-boot image... done. Taking backup of uInitrd. Installing new uInitrd. Taking backup of dtb. Installing new dtb. W: APT had planned for dpkg to do more than it reported back (6 vs 13). Affected packages: initramfs-tools:armel linux-image-4.9.0-3-marvell:armel sheeva:~# uname -a Linux sheeva... 3.16.0-4-kirkwood #1 Debian 3.16.43-2+deb8u2 (2017-06-26) armv5tel GNU/Linux sheeva:~# reboot ... sheeva:~# uname -a Linux sheeva... 4.9.0-3-marvell #1 Debian 4.9.30-2+deb9u2 (2017-06-26) armv5tel GNU/Linux