Raspberry Pi OS – Update von Bullseye (11) auf Bookworm (12)

Die Raspberry Pi Foundation hat das neue Release des Raspberry Pi OS auf Version 12 und somit auf Debian Bookworm freigegeben.

Natürlich musst du in diesem Zusammenhang auch all deine zusätzlichen Pakete wieder neu installieren, konfigurieren und einrichten. Es kann helfen einzelne Dateien zuvor separat in einer Datensicherung zu sichern.


Anzeige

Ein bestehendes System aktualisieren

Wenn du keine Lust darauf hast, so wie ich, alles von Grund auf neu einzurichten, kannst du es auch mit der folgenden Anleitung versuchen und dein bestehendes System „On the Fly“ aktualisieren.


Schritt 1

Aktualisiere dein System.

sudo apt update && sudo apt upgrade && sudo apt dist-upgrade

Schritt 2

Bearbeite die Source-Dateien, welche deinem System mitteilen, woher es seine Aktualisierungen beziehen soll.

sudo nano /etc/apt/sources.list

Du musst „bullseye“ durch „bookworm“ ersetzen. Zusätzlich muss in dieser Datei noch der Zusatz „non-free-firmware“ an das jeweilige Zeilenende angehangen werden. Es sollte dann also so aussehen:

deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware
deb http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
deb http://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware
#deb http://deb.debian.org/debian bullseye main contrib non-free
#deb http://security.debian.org/debian-security bullseye-security main contrib non-free
#deb http://deb.debian.org/debian bullseye-updates main contrib non-free
# Uncomment deb-src lines below then 'apt-get update' to enable 'apt-get source'
#deb-src http://deb.debian.org/debian bullseye main contrib non-free
#deb-src http://security.debian.org/debian-security bullseye-security main contrib non-free
#deb-src http://deb.debian.org/debian bullseye-updates main contrib non-free

Die Änderungen speicherst du per STRG + O und schließt die Datei mit STRG+X.

Unter /etc/apt/sources.list.d/ gibt es noch weitere Source-Dateien, deren Inhalt du anpassen musst.

Wichtig für das Raspberry Pi OS ist in diesem Pfad die Source-Datei „raspi.list„. Also bearbeitest du auch diese und ersetzt „bullseye“ durch „bookworm“. In dieser Datei muss nichts zusätzlich an das Ende der Zeile angefügt werden.

sudo nano /etc/apt/sources.list.d/raspi.list
deb http://archive.raspberrypi.org/debian/ bookworm main
#deb http://archive.raspberrypi.org/debian/ bullseye main
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
#deb-src http://archive.raspberrypi.org/debian/ bullseye main

Die Änderungen speicherst du per STRG + O und schließt die Datei mit STRG+X.


Schritt 3

Jetzt aktualisiert du noch mal die Paketlisten:

sudo apt update

Schritt 4

In diesem Abschnitt wird es etwas kniffliger. Der Pfad der Boot-Partition muss angepasst werden, damit auch Kernel-Aktualisierungen künftig funktionieren. Und einfach weil Raspberry Pi OS 12 diese Anpassung verlangt. 🙃

Also musst du zunächst die Boot-Partition aushängen (unmount).

sudo umount /boot

Dann erstellst du ein neues Verzeichnis:

sudo mkdir /boot/firmware

Jetzt bearbeitest du die Partitionstabelle:

sudo nano /etc/fstab

Ergänze den Eintrag der Boot-Partition mit „/firmware„.

Die Änderungen speicherst du per STRG + O und schließt die Datei mit STRG+X.

Durch diese Anpassungen müssen die Konfigurationsdateien neu geladen werden:

sudo systemctl daemon-reload

Jetzt kannst du die Boot-Partition wieder einbinden.

sudo mount /boot/firmware

Schritt 5

Du installierst nun den für Raspberry Pi OS 12 benötigten neuen Bootloader und Linux-Kernel.

sudo apt install raspi-firmware linux-image-rpi-v8

Zum Abschluss dieses Schritts deinstallierst du folglich noch den alten Bootloader und Linux-Kernel.

sudo apt remove raspberrypi-kernel raspberrypi-bootloader

Jetzt aktualisiert du noch mal die Paketlisten:

sudo apt update

Schritt 6

Jetzt kommt’s. Das eigentliche Update.

sudo apt full-upgrade  

Feuer frei.


Schritt 7

Weil es so schön war, einfach noch mal die Paketlisten aktualisieren:

sudo apt update

Sollten sich noch mal Updates gefunden haben, dann diese installieren lassen:

sudo apt upgrade

Nicht mehr benötigte Pakete deinstallieren:

sudo apt autoremove

Und den Paketcache leeren:

sudo apt clean

Schritt 8

Jetzt startest du noch den Raspberry neu:

sudo reboot now

Und erfreust dich dann mit folgenden Befehl, dass nun Raspberry Pi OS 12 (Bookworm) installiert ist.

sudo cat /etc/os-release

Bekannte Probleme

RealVNC und Wayland

Bezugnehmend auf das Kommentar von Reaper zu dieser Anleitung möchte ich hier auf ein Problem zwischen RealVNC und Wayland aufmerksam machen.

Sofern man nach dem Update anhand dieser Anleitung Wayland aktiviert, funktioniert der Zugriff per RealVNC nicht mehr. RealVNC ist bisher der Standard-VNC-Server in Raspberry Pi OS gewesen, hat jedoch Probleme mit Wayland die voraussichtlich in der ersten Hälfte 2024 durch ein Update gelöst werden sollen.

Hat man sein System mit Raspberry Pi OS Bookworm komplett neu aufgesetzt, soll es wohl ausreichen, wenn man per raspi-config wieder auf X11 umstellt, um dann wieder mit RealVNC arbeiten zu können.

Hat man sein System anhand dieser Anleitung aktualisiert, dann zum testen auf Wayland gewechselt, hilft der Wechsel auf X11 scheinbar nicht mehr. Es kommt zur Meldung „The connection was refused by the computer„. Ich hatte nur die Möglichkeit mein Backup wieder einzuspielen und X11 aktiv zu lassen. – Vllt. hat ja aber ein anderer Leser noch einen Tipp, wie man auch ohne Backup wieder auf X11 wechseln kann und RealVNC somit wieder funktioniert?

Michael Kofler berschreibt auf seiner Seite einen anderen Weg, wenn man mit Wayland arbeiten will. Dazu sollte wayvnc auf dem Raspberry installiert sein, man kann sich dann per TigerVNC aufschalten.

Ich selbst bleibe zunächst bei RealVNC in Kombination mit X11. TigerVNC hat mich jetzt nicht so überzeugt.


Kommuniziere mit mir über die Kommentarfunktion, wenn es an irgendeiner Stelle scheitern sollte.


Anzeige

19 Kommentare

  1. Vielen Dank für die Anleitung. Das Update scheint geklappt zu haben – bis auf die Tatsache, dass jetzt keine Verbindung über VNC möglich ist: Mein -Client meldet „The connection was refused by the computer“. Ein Wechsel zwischen x11 und wayland (raspi config) oder andere Clients haben nicht geholfen.

    1. Hallo Reaper,

      freut mich, wenn dir die Anleitung soweit helfen konnte. Ich hatte bei meinem ersten Updateversuch selbiges Problem.

      Da ich keine Lösung gefunden habe, hatte ich ein zuvor erstelltes Backup wieder eingespielt. Dann hatte ich das Update noch mal neu laufen lassen und habe in der raspi-config erst mal nichts mehr bzgl. Wayland angefasst und die Einstellung für X11 bestehen lassen. Lief und läuft ja alles.

      RealVNC, welche ja den VNC-Server für Raspberry Pi OS bereitstellen, verweisen auf bekannte Probleme zwischen VNC und Wayland und empfehlen daher X11 aktuell aktiv zu lassen. – Sofern man VNC nutzen möchte / muss. Man geht davon aus in der ersten Hälfte 2024 ein Update bereitstellen zu können, welches Wayland unterstützt.

      Ich hatte es bei mir gerade auch noch mal getestet, natürlich nach einem Backup. 🙂 Sobald ich auf Wayland wechsle sagt mir VNC erst, es könne die Auflösung nicht darstellen. Hier helfen dann auch diese Kniffe nicht wirklich weiter. Zurück auf X11 gewechselt und es kommt nur noch der von dir benannte Hinweis „The connection was refused by the computer“. Also das zuvor erstellte Backup wieder eingespielt bei dem X11 noch aktiv war und wieder, wie oben schon geschrieben, Wayland über die raspi-config nicht mehr aktiviert. So sollte man es dann lassen, bis RealVNC ein Update mit Wayland-Unterstützung bringt.

      Sorry, wenn ich dir also keine Lösung des Problems liefern kann und hoffe, dass du ein Backup hast. – Dann das Update noch mal anhand der Anleitung installieren und X11 zunächst aktiv lassen.

      Ich werde das mal als „Problem“ in die Anleitung aufnehmen.

    1. Super. Darauf hatte ich hier dann auch noch mal Bezug genommen.

      Schön, wenn das für dich geklappt hat. Wie findest du TigerVNC? Ich finde es im Vergleich zu RealVNC bspw. nicht so prall und mobile Apps für einen schnellen Zugriff unterwegs scheint es auch nicht zu bieten.

  2. Hallo,
    da scheint sich inzwischen etwas geändert zu haben:
    Wenn ich per sudo raspi-config auf Wayland umstelle, kommt eigentlich eine Erfolgsmeldung. Wenn ich dann VNC aktiviere, lädt ein X1VNC.
    Baue ich eine VNC-Verbindung auf bekomme ich einen X11-Desktop mit RealVNC.

    Ich kann also gar nicht auf Wayland umstellen. Ist für mich jetzt aber auch nicht so tragisch.

    Danke jedenfalls für die Anleitung. Jetzt habe ich meine alte Installation auch mal wieder auf aktuellem Betriebssystem.

    1. Hallo EastSoft,

      vielen Dank für deinen Besuch. Es freut mich, wenn dir die Anleitung helfen konnte. Tatsächlich gab es mittlerweile wieder einige Updates, auch Seitens RealVNC. Ich schaue mir deinen Hinweis bei Gelegenheit mal an. Danke dir dafür.

      Lass es dir gut gehen.

      Sascha

  3. Hallo,
    durch mehrere positive Kommentare ermutigt, habe ich es auch mal probiert, allerdings läuft das upgrade bei mir (4er raspi) nicht durcht, steht dann beim „full upgrade“ bei ca. 40 % still, mit Fehler:

    „/tmp/apt-dpkg-install-ijFE5B/072-php-composer-pcre_3.1.0-1_all.deb
    E: Sub-process /usr/bin/dpkg returned an error code (1)“

    ich habe mehrere „extra“ repos eingebunden, z.b. auch das von php.
    vorkommen von „bullseye“ wurden aber in allen Repos durch „bookworm“ ersetzt,
    ich bin allerdings unsicher, ob auf die richtige Weise.

    habe jetzt nicht weiter rumprobiert und das backup wiederhergestellt.
    wird wohl doch auf komplett neu aufsetzen rauslaufen?
    oder weiss jemand Rat?

  4. Hallo Sascha,
    vielen Dank für die tolle und funktionierende Anleitung. Danke für die Zeit und die damit verbundene Recherche im Vorfeld.
    Du hast genau das beschrieben, wonach ich gesucht habe. So konnte ich meine zwei Systeme problemlos auf Bookworm upgraden.

    Grüße aus Halle

  5. Erstmal herzlichen Dank für diese klare Anleitung – genau das, wonach ich suchte!

    Leider war ich im ersten Anlauf bei meinem Raspberry Pi Zero 2 W über SSH nicht bis zum Ende erfolgreich. Bei 99 % von Schritt 6 (apt full-upgrade) brach die Verbindung ab, als der networkmanager eingerichtet wurde. Ich konnte mich dann noch lokal anmelden, aber ich vermute beim Verbindungsabbruch kam es zu Problemen. Kurze Recherche ergab Wechsel von dhcpcd zu networkmanager von bullseye zu bookworm. dhcpcd war tatsächlich auch nach Reboot und apt auto-remove noch aktiv – aber auch manuelles Deaktivieren ergab keine Besserung. Insoweit vermute ich, dass beim Verbindungsabbruch quasi das „Aufräumen“ nicht stattfand und es daher Konflikte gibt, da ich (mit minimalem Wissen) auch mit nmcli in der Konsole nicht erfolgreich war. Mein Fazit (nachdem ich erstmal das Image von vor dem Upgradeversuch zurückgespielt habe): Nächster Versuch von der lokalen Konsole und nicht per SSH. Ich berichte, ob es das Problem löst.

    Bzgl. des WLAN-Problems siehe auch hier: https://gist.github.com/jauderho/6b7d42030e264a135450ecc0ba521bd8

    1. Hallo JS,

      vielen Dank für deinen Kommentar. Leider habe ich bzgl. des Zero keine Erfahrungswerte. Mein Pi ist halt per LAN-Kabel angeschlossen, das Update selbst hatte ich per SSH machen können.

      Ich drücke dir die Daumen, dass du das Update auch abgeschlossen bekommst. Berichte gern.

      Viele Grüße

      Sascha

      1. Heureka – einfache Lösung gefunden. Hauptquelle dafür: https://gist.github.com/jauderho/6b7d42030e264a135450ecc0ba521bd8

        Auch mit lokaler Ausführung (nicht per ssh) verliere ich die Netzwerkverbindung trotz sauber abgeschlossenem Upgrade. Lösung: Entsprechend Zeilen 81 & 82 NetworkManager enabled und dhcpcd disabled. Ohne weitere Aktion ist die alte Verbindung wieder aktiv. Damit läuft mein Zero 2 W wieder.

        Weiterhin habe ich entsprechend obiger Quelle /boot/firmware/config.txt um auto_initramfs=1 ergänzt.

        Neben anderen kleineren Wehwehchen (lösbar durch Anpassung von Skripten) scheitere ich aktuell noch an diesem Problem: „mount: (hint) your fstab has been modified, but systemd still uses the old version; use ’systemctl daemon-reload‘ to reload.“ Letzterer Hinweis hilft nur bis zum Neustart und auch diese Lösung (https://forums.raspberrypi.com/viewtopic.php?t=362156) hat bisher nichts gebracht. Nichts, was bisher ein Showstopper ist, aber etwas hässlich.

  6. Hallo Sascha, ich habe einen Raspi 4; 64 bit; Bullseye (11) als Server mit umfangreicher iobroker Installation.
    Wenn ich nach deiner Anleitung ein Update von Bullseye auf Bookworm mache, funktioniert iobroker danach noch?
    Vielen Dank für die Antwort.

    1. Hallo Henning,

      da ich selbst iobroker nicht in Verwendung habe, kann ich leider nur empfehlen ein vollständiges Backup der SD-Karte / HDD zu machen und das Upgrade auszuprobieren.

      Bei mir selbst lief alles nach dem Update ohne Komplikationen weiter.

      Viel Erfolg. ✊🏻

  7. Hallo Sascha,
    ich habe es gemacht! Es hat super geklappt, die vorhandene iobroker – Installation läuft nach dem Update auf Bookworm genau wie zuvor unter Bullseye. Da ich den raspi vom USB – Stick boote hatte ich mir zuvor den Stick als Image gesichert. Jetzt kann ich mit der Installation Raspi 4 Bookworm ohne Probleme auf den Raspi 5 umziehen. Vielen Dank für diese super Anleitung. LG

  8. In meine /etc/apt/sources.list hat kam von Raspbian buster und wurde manuell auf bullseye geupdated. Sie sieht im Moment so aus:
    deb http://raspbian.raspberrypi.org/raspbian/ bullseye main contrib non-free rpi

    Ich kann zwar bookworm setzen, aber non-free-firmware wird nicht erkannt.

    Ich bin mir jetzt unsicher, soll ich auf das Debian repo mit non-free-firmware umsteigen, oder soll ich im raspbian repo bleiben (ohne non-free-firmware). Ich habe Sorge dass ich etwas kaputt mache

    1. Hi. Sorry für die verspätete Antwort. Irgendwie habe ich keine Benachrichtigung über dein Kommentar bekommen.

      Also grundsätzlich sollte die Sourcelist genau die drei Zeilen enthalten, wie im Schritt 2 der Anleitung beschrieben. Woraus schließt du, dass „non-free-firmware“ nicht erkannt wird?

      Wenn du dir vorher ein vollständiges BackUp machst, kannst du nichts kaputt machen, da du im schlimmsten Fall einfach das BackUp wieder einspielen kannst.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.