Skip to content

Instantly share code, notes, and snippets.

@jauderho
Last active February 28, 2026 02:12
Show Gist options
  • Select an option

  • Save jauderho/5f73f16cac28669e56608be14c41006c to your computer and use it in GitHub Desktop.

Select an option

Save jauderho/5f73f16cac28669e56608be14c41006c to your computer and use it in GitHub Desktop.
HOWTO: Upgrade Raspberry Pi OS from Bookworm to Trixie
### 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
@zonzille
Copy link

Tried this yesterday on my 3B+ running PiHole and PiVPN, complete success ! Not even a service interruption if not for the final reboot. This is a great guide, thank you

@bcutter
Copy link

bcutter commented Nov 23, 2025

Minor irrelevant typo:

# Point to bookworm repos instead

Plus you are linking to an old, probably superseded forums topic here:

# Do actual update. See also https://forums.raspberrypi.com/viewtopic.php?t=389477

See a newer forums post with a bit different/enhanced information in my still unanswered question post at https://gist.github.com/jauderho/5f73f16cac28669e56608be14c41006c?permalink_comment_id=5786287#gistcomment-5786287 @jauderho

@bcutter
Copy link

bcutter commented Feb 28, 2026

I gave a headless test Pi 2 running 32 bit, platform armv7l a try - the upgrade worked good so far. Unfortunately, full-upgrade gave

update-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 required

and according to uname -a the kernel is still on old Linux 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-update unfortunately. That bumped the kernel to
Linux Hostname 6.12.73-v7+ #1947 SMP Thu Feb 19 12:27:25 GMT 2026 armv7l GNU/Linux

sudo 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/status

So I'm not sure why there's no raspberrypi-kernel package for armhf under Trixie in the sources anymore.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment