* Jesse Adelman <je...@boldandbusted.com> [2015-06-20 20:35]: > When I upgrade this package on my Debian Wheezy Sheevaplug, I get this error: > > Couldn't find /usr/lib/linux-image-3.2.0-4-kirkwood/kirkwood-sheevaplug.dtb
> Full log: > > flash-kernel: installing version 3.2.0-4-kirkwood > 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. > Couldn't find /usr/lib/linux-image-3.2.0-4-kirkwood/kirkwood-sheevaplug.dtb > dpkg: error processing package flash-kernel (--configure): > subprocess installed post-installation script returned error exit status 1 Sorry for the delay in responding to this bug. I believe I know what the issue is. I've copied Ian Campbell who knows the code best. Ian, I've attached a proposed patch below. Do you agree with the logic described or am I missing something? The log also shows: > update-initramfs: Generating /boot/initrd.img-3.2.0-4-kirkwood > /usr/lib/linux-image-3.2.0-4-kirkwood/kirkwood-sheevaplug.dtb not found > /usr/lib/linux-image-3.2.0-4-kirkwood/kirkwood-sheevaplug.dtb not found I'm not sure where this is from but it seems isn't not causing an actual error. Only create DTB boot file on kernels that require DTB Boot-DTB-Path can be specified to install the DTB to a file. Some machines, such as the SheevaPlug, contain both a DTB-Append-From and a Boot-DTB-Path. If DTB-Append-From is set, a verson check is performed to see if the DTB is required and dtb_append is set to "yes" or "no" accordingly. However, there is no version check for Boot-DTB-Path. This can lead to errors that the DTB couldn't be found on older kernels (i.e. older than the version specified in DTB-Append-From). Arguably, DTB-Append-From and Boot-DTB-Path together don't make sense (why would you append the DTB _and_ install it to /boot), but it's possible that users rely on this behaviour. Therefore, only honour Boot-DTB-Path if $dtb_append is not "no". If it's "yes" or empty, we want to install the DTB to Boot-DTB-Path. But if $dtb_append is "no", it means we're on an old kernel without DTBs. diff --git a/functions b/functions index 368cbf2..c4ef6a3 100644 --- a/functions +++ b/functions @@ -939,7 +939,7 @@ case "$method" in boot_script="$tmpdir/boot.scr" backup_and_install "$boot_script" "$boot_script_path" fi - if [ -n "$boot_dtb_path" ]; then + if [ -n "$boot_dtb_path" ] && [ "$dtb_append" != "no" ]; then boot_dtb_path="$boot_mnt_dir/$boot_dtb_path" boot_dtb=$(find_dtb_file) if [ ! -f "$boot_dtb" ]; then -- Martin Michlmayr http://www.cyrius.com/