Comment 4 for bug 1989713

Revision history for this message
Dave Jones (waveform) wrote : Re: Old start4.elf / fixup4.dat in 22.04

Test firmware packages now built in ppa:waveform/firmware, including tentative backports for kinetic and jammy:

https://launchpad.net/~waveform/+archive/ubuntu/firmware

I would be grateful if anyone could test these on their particular Pi setups, whether using NVMe or otherwise (to guard against regressions). I've tested locally on a jammy and kinetic setup without issue so far, booting one from USB and one from SD card but I don't have a CM4 NVMe setup to test with.

Theoretically we *should* be testing this on lunar, but there aren't any daily images for that yet and given this will need SRU'ing anyway (and the boot firmware is *relatively* disconnected from the release it happens to be installed upon) we can take jammy and kinetic tests as indicative.

I would recommend the following testing procedure (given we're messing with the boot partition), if you care about the content of your Pi (i.e. assuming this is anything other than an ephemeral installation):

* Shut down your Pi

* Connect your current storage to another computer, and backup the entirety of the boot partition. Assuming it mounts as /media/$USER/system-boot the following should suffice:

  $ tar -C /media/$USER/system-boot -cvzf ~/system-boot-backup.tar.gz .

* Safely remove the storage, connect it back to your Pi, then boot it

* Add the PPA specified above:

  $ sudo add-apt-repository -y ppa:waveform/firmware

* Upgrade the linux-firmware-raspi package and reboot:

  $ sudo apt install linux-firmware-raspi
  $ sudo reboot

* Please report success or failure here (including release tested, boot media used, and model of Pi)

* If everything breaks, the worst-case scenario (short of actually catching fire!) is your Pi cannot boot. To restore the old content of the boot partition, attach your storage to the machine on which you took the backup. Again, assuming the boot partition is mounted as /media/$USER/system-boot:

  $ tar -C /media/$USER/system-boot -xvzf ~/system-boot-backup.tar.gz

* Safely remove the storage, re-connect it to the Pi, and boot it

* Note at this point we've restored the boot partition, but the newer package is still installed, as is the PPA. This means any kernel upgrade (or anything that causes flash-kernel to run) will once again copy the new firmware over to the boot partition. We need to correct that:

  $ sudo add-apt-repository -r -y ppa:waveform/firmware
  $ sudo apt install linux-firmware-raspi/$(lsb_release -sc)

* At this point your Pi should be back to the currently shipping linux-firmware-raspi package on jammy/kinetic/lunar