-
-
Save jauderho/5f73f16cac28669e56608be14c41006c to your computer and use it in GitHub Desktop.
| ### WARNING: READ CAREFULLY BEFORE ATTEMPTING ### | |
| # | |
| # Officially, this is not recommended. YMMV | |
| # https://www.raspberrypi.com/news/bookworm-the-new-version-of-raspberry-pi-os/ | |
| # | |
| # This mostly works if you are on 64bit. You are on your own if you are on 32bit or mixed 64/32bit | |
| # | |
| # Credit to anfractuosity and fgimenezm for figuring out additional details for kernels | |
| # | |
| # Make sure everything is up-to-date | |
| sudo apt-get -y update && sudo DEBIAN_FRONTEND=noninteractive apt-get -y dist-upgrade | |
| # Point to bookworm repos instead | |
| sudo sed -i -e 's/bookworm/trixie/g' /etc/apt/sources.list | |
| sudo sed -i -e 's/bookworm/trixie/g' /etc/apt/sources.list.d/raspi.list | |
| # Contents of /etc/apt/sources.list | |
| deb http://deb.debian.org/debian trixie main contrib non-free non-free-firmware | |
| deb http://security.debian.org/debian-security trixie-security main contrib non-free non-free-firmware | |
| deb http://deb.debian.org/debian trixie-updates main contrib non-free non-free-firmware | |
| # Uncomment deb-src lines below then 'apt-get update' to enable 'apt-get source' | |
| #deb-src http://deb.debian.org/debian trixie main contrib non-free | |
| #deb-src http://security.debian.org/debian-security trixie-security main contrib non-free | |
| #deb-src http://deb.debian.org/debian trixie-updates main contrib non-free | |
| # Contents of /etc/apt/sources.list.d/raspi.list | |
| deb http://archive.raspberrypi.org/debian/ trixie main | |
| # Uncomment line below then 'apt-get update' to enable 'apt-get source' | |
| #deb-src http://archive.raspberrypi.org/debian/ trixie main | |
| # Do actual update. See also https://forums.raspberrypi.com/viewtopic.php?t=389477 | |
| sudo apt update | |
| sudo apt full-upgrade -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confnew" --purge --auto-remove rpd-wayland-all+ rpd-x-all+ | |
| sudo apt -y clean && sudo apt -y autoremove | |
| # Reboot | |
| sudo reboot | |
| # Modernize sources | |
| sudo apt modernize-sources | |
| # Make sure the following is in /etc/apt/sources.list.d/raspi.sources. The Signed-by: may be missing | |
| Types: deb | |
| URIs: http://archive.raspberrypi.org/debian/ | |
| Suites: trixie | |
| Components: main | |
| Signed-By: /usr/share/keyrings/raspberrypi-archive-keyring.gpg | |
| # Remove the raspi.list.bak after confirming that everything works | |
| sudo rm /etc/apt/sources.list.d/raspi.list.bak |
I gave a headless test Pi 2 running 32 bit, platform
armv7la try - the upgrade worked good so far. Unfortunately,full-upgradegaveupdate-initramfs: Generating /boot/initrd.img-6.12.62+rpt-rpi-v7l WARNING: Unsupported initramfs version (6.12.62+rpt-rpi-v7l) - skipping setup NOTE: Manual boot configuration may be requiredand according to
uname -athe kernel is still on oldLinux Hostname 6.1.70-v7+ #1714 SMP Thu Jan 4 14:48:23 GMT 2024 armv7l GNU/Linux.Any idea why? I did also modernize sources later, which made no difference unfortunately.
I worked around this (ended up) using
sudo rpi-updateunfortunately. That bumped the kernel toLinux Hostname 6.12.73-v7+ #1947 SMP Thu Feb 19 12:27:25 GMT 2026 armv7l GNU/Linuxsudo apt policy raspberrypi-kernel Hinweis: Paket raspberrypi-kernel kann nicht gefunden werden. sudo dpkg -l 'linux-image*' | grep ^ii | grep -i meta ii linux-image-rpi-v7l 1:6.12.62-1+rpt1~bookworm armhf Linux for Raspberry Pi v7 (meta-package) sudo apt-cache policy linux-image-rpi-v7l linux-image-rpi-v7l: Installiert: 1:6.12.62-1+rpt1~bookworm Installationskandidat: 1:6.12.62-1+rpt1~bookworm Versionstabelle: *** 1:6.12.62-1+rpt1~bookworm 100 100 /var/lib/dpkg/statusSo I'm not sure why there's no
raspberrypi-kernelpackage for armhf under Trixie in the sources anymore.
Check the bullseye to bookworm guide. You are supposed to remove those and replace with the correct newer kernel packages.
Also /boot becomes /boot/firmware it’s important to not skip steps.
Check the bullseye to bookworm guide. You are supposed to remove those and replace with the correct newer kernel packages.
Also /boot becomes /boot/firmware it’s important to not skip steps.
Thanks for the hint.
I checked this on a Raspberry Pi 2 (armhf) after upgrading to Trixie:
- The system uses the new /boot/firmware layout (boot partition is mounted there):
$ ls /boot
cmdline.txt config.txt initrd.img-6.12.25+rpt-rpi-v7l System.map-6.12.62+rpt-rpi-v7l
config-6.12.25+rpt-rpi-v7l firmware initrd.img-6.12.62+rpt-rpi-v7l vmlinuz-6.12.25+rpt-rpi-v7l
config-6.12.62+rpt-rpi-v7l firmware.bak System.map-6.12.25+rpt-rpi-v7l vmlinuz-6.12.62+rpt-rpi-v7l
$ ls /boot/firmware
bcm2708-rpi-b.dtb bcm2710-rpi-cm3.dtb bcm2712-rpi-cm5-cm4io.dtb fixup_cd.dat start4cd.elf
bcm2708-rpi-b-plus.dtb bcm2710-rpi-zero-2.dtb bcm2712-rpi-cm5-cm5io.dtb fixup.dat start4db.elf
bcm2708-rpi-b-rev1.dtb bcm2710-rpi-zero-2-w.dtb bcm2712-rpi-cm5l-cm4io.dtb fixup_db.dat start4.elf
bcm2708-rpi-cm.dtb bcm2711-rpi-400.dtb bcm2712-rpi-cm5l-cm5io.dtb fixup_x.dat start4x.elf
bcm2708-rpi-zero.dtb bcm2711-rpi-4-b.dtb bootcode.bin initramfs7l start_cd.elf
bcm2708-rpi-zero-w.dtb bcm2711-rpi-cm4.dtb cmdline.txt issue.txt start_db.elf
bcm2709-rpi-2-b.dtb bcm2711-rpi-cm4-io.dtb config.txt kernel7.img start.elf
bcm2709-rpi-cm2.dtb bcm2711-rpi-cm4s.dtb config.txt.bak kernel7l.img start_x.elf
bcm2710-rpi-2-b.dtb bcm2712d0-rpi-5-b.dtb fixup4cd.dat kernel.img 'System Volume Information'
bcm2710-rpi-3-b.dtb bcm2712-d-rpi-5-b.dtb fixup4.dat LICENCE.broadcom
bcm2710-rpi-3-b-plus.dtb bcm2712-rpi-500.dtb fixup4db.dat LICENSE.oracle
bcm2710-rpi-cm0.dtb bcm2712-rpi-5-b.dtb fixup4x.dat overlays
$ lsblk -f
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
mmcblk0
├─mmcblk0p1 vfat FAT32 BOOT xxxx-xxxx 963,6M 6% /boot/firmware
More importantly:
- The system correctly migrated to the new kernel scheme (linux-image-rpi-v7l)
- But no kernel packages are available in the Trixie repositories for armhf
apt policy linux-image-rpi-v7lonly shows a locally installed Bookworm version (no candidate)apt-cache/apt listreturn no newer versions at all
So the system ends up with an orphaned Bookworm kernel that cannot be upgraded via apt.
As a workaround, I was only able to get a newer kernel via rpi-update (now running 6.12.73-v7+ #1947 SMP Thu Feb 19 12:27:25 GMT 2026 armv7l GNU/Linux since the last run in February), which suggests that newer kernels exist but are not yet published via apt for armhf.
This looks like a repository / packaging gap for armhf rather than just a missed migration step.
Today I sudo apt upgraded two Trixie test systems:
- Raspberry Pi 2, headless, 32 bit, kernel upgraded in February from Pi OS 12.12 to 13.2 following this HOWTO but using "sudo rpi-update", now running
6.12.73-v7+ #1947 SMP Thu Feb 19 12:27:25 GMT 2026 armv7l GNU/Linux
--> today after upgraded to Pi OS 13.4, kernel still at6.12.73-v7+ #1947 SMP Thu Feb 19 12:27:25 GMT 2026 armv7l GNU/Linux - Raspberry Pi 4, with UI, 64 bit, kernel upgraded in March from Pi OS 12.13 to 13.3 following this HOWTO only using regular apt packages, now running
6.12.62+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.12.62-1+rpt1 (2025-12-18) aarch64 GNU/Linux
--> today after upgraded to Pi OS 13.4 kernel got upgraded to6.12.75+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.12.75-1+rpt1 (2026-03-11) aarch64 GNU/Linux
Furthermore, two more Pi's still running Bookworm:
- Pi 5, 64 bit, Pi OS 12.13, kernel
6.12.75+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.12.75-1+rpt1~bookworm (2026-03-11) aarch64 GNU/Linux - Pi 3B+, 32 bit, Pi OS 12.12, kernel
6.1.77-v7+ #1768 SMP Tue Jun 4 14:45:11 BST 2024 armv7l GNU/Linux
That kind of proves my theory: there simply are no kernel updates for 32 bit on armv7l architecture (neither on Bookworm, nor on latest Trixie). Experts, please prove me wrong, but 32 bit seems to be stuck on older kernels, except when running sudo rpi-update.
I gave a headless test Pi 2 running 32 bit, platform
armv7la try - the upgrade worked good so far. Unfortunately,full-upgradegaveand according to
uname -athe kernel is still on oldLinux Hostname 6.1.70-v7+ #1714 SMP Thu Jan 4 14:48:23 GMT 2024 armv7l GNU/Linux.Any idea why? I did also modernize sources later, which made no difference unfortunately.
I worked around this (ended up) using
sudo rpi-updateunfortunately. That bumped the kernel toLinux Hostname 6.12.73-v7+ #1947 SMP Thu Feb 19 12:27:25 GMT 2026 armv7l GNU/LinuxSo I'm not sure why there's no
raspberrypi-kernelpackage for armhf under Trixie in the sources anymore.