Public bug reported:

## Upgraded systems are left with a broken dpkg (flash-kernel → piboot-
try migration)

**Package:** piboot-try 1.1ubuntu0.1 / flash-kernel 3.110ubuntu2.1
**Title:** `flash-kernel → piboot-try migration does not happen on upgrade, 
leaving dpkg permanently broken on Raspberry Pi`

Related: LP #2142169 (same package, different failure mode — in that
report piboot-try is installed and running; here it was never installed
at all)

### System information
Ubuntu Server 26.04 (resolute), arm64
Board: Raspberry Pi 4 Model B Rev 1.1
compatible: raspberrypi,4-model-b brcm,bcm2711
Kernel: 7.0.0-1015-raspi
piboot-try:            1.1ubuntu0.1
flash-kernel:          3.110ubuntu2.1 (was installed, now removed)
linux-firmware-raspi:  14-0ubuntu1
initramfs-tools:       0.151ubuntu1
Boot layout: A/B tryboot (/boot/firmware/{current,new}, os_prefix, 
tryboot_a_b=1)
System history: installed from a 2020 image, upgraded through every release 
since (kernel traces from 5.11 onwards)

### Description

On a Raspberry Pi system upgraded through successive Ubuntu releases 
(originally installed from a
2020 image), `flash-kernel` was never replaced by `piboot-try`. Since 
flash-kernel 3.110 dropped
Raspberry Pi support, the still-installed `flash-kernel` no longer has any 
database entry matching
the board, and its initramfs hook fails on every kernel update:

```
update-initramfs: Generating /boot/initrd.img-7.0.0-1015-raspi
Unsupported platform 'Raspberry Pi 4 Model B Rev 1.1'.
run-parts: /etc/initramfs/post-update.d//flash-kernel exited with return code 1
dpkg: error processing package initramfs-tools (--configure):
 old initramfs-tools package postinst maintainer script subprocess failed with 
exit status 1
```

This leaves `initramfs-tools` in state `iF` and `flash-kernel` in state `it`, 
which **blocks every
subsequent apt operation** — the system can no longer be updated at all, 
including for security
updates.

Critically, this happens **silently**: kernel packages keep installing on `/`, 
but nothing is ever
deployed to `/boot/firmware`. The machine had been running kernel 6.14.0-1017 
since 2025-11-29
while 7.0.0-1014 and 7.0.0-1015 sat installed but undeployed; 
`/boot/firmware/new/` had been
frozen since 2026-05-18.

### Why the migration does not happen

`linux-image-*-raspi` declares:

```
Breaks: flash-kernel
Recommends: flash-kernel | piboot-try
```

Since `flash-kernel` is already installed, the `Recommends` alternative is 
satisfied and apt never
pulls `piboot-try`. The `Breaks` relationship alone does not trigger the 
replacement in a normal
`apt upgrade`.

Additionally, flash-kernel 3.110ubuntu2.1 still ships obsolete conffiles from 
the Pi era it no
longer supports — `/etc/flash-kernel/piboot-validate` (which documents a 
`piboot-try-validate`
service that does not exist in that package) and 
`/etc/flash-kernel/bootscript/bootscr.rpi` —
which makes the situation very confusing to diagnose.

### Steps to reproduce

1. Take a Raspberry Pi running an older Ubuntu release with `flash-kernel` 
installed.
2. Upgrade through releases up to 26.04.
3. Run `sudo apt upgrade` when a kernel update is pending.

### Expected

The upgrade replaces `flash-kernel` with `piboot-try` automatically, or fails 
loudly and early
with an actionable message.

### Actual

`dpkg` breaks, apt becomes unusable, and no kernel is deployed to the boot 
partition — silently,
for months.

### Workaround

```
sudo apt install piboot-try          # removes flash-kernel, unblocks dpkg
sudo apt install linux-firmware-raspi # required, otherwise boot firmware is 
not copied to new/
```

Note that `linux-firmware-raspi` was not installed either on this system; 
without it the deploy
step prints `find: '/usr/lib/linux-firmware-raspi': No such file or directory` 
and `new/` is left
without `start4.elf` / `fixup4.dat` / `bootcode.bin`.

### Suggested fix

Make the transition automatic, e.g. by having `piboot-try` 
`Replaces`/`Conflicts` in a way apt acts
on during upgrades, by having the kernel package `Depends` on `piboot-try` on 
Raspberry Pi, or by
shipping a transitional `flash-kernel` on arm64 that depends on `piboot-try`
(`flash-kernel-piboot` exists but nothing pulls it in).

** Affects: flash-kernel (Ubuntu)
     Importance: Undecided
         Status: New

** Attachment added: "apport.piboot-try.44rhinpp.apport"
   
https://bugs.launchpad.net/bugs/2162655/+attachment/5988629/+files/apport.piboot-try.44rhinpp.apport

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2162655

Title:
  Upgraded systems are left with a broken dpkg (flash-kernel → piboot-
  try migration)

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/flash-kernel/+bug/2162655/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to