Raspberry Pigilt für Raspberry Pi OS Bookworm
Wie schalte ich den Raspberry Pi mit einem Taster sauber aus und ein?
Einfach den Stecker ziehen kann die Speicherkarte beschädigen. Ein Taster am Gehäuse soll den Raspberry Pi deshalb sauber herunterfahren und später wieder starten, ohne Skript, das im Hintergrund laufen muss.
Lösung
Kurz: Beim Pi 3 und 4 reicht ein Taster zwischen GPIO 3 (Pin 5) und Masse (Pin 6) plus die Zeile dtoverlay=gpio-shutdown in der config.txt. Ein Druck fährt den Pi herunter, ein weiterer weckt ihn wieder auf. Der Raspberry Pi 5 hat dafür einen eingebauten Knopf.
Taster anschließen
Einen Taster, der nur während des Drückens schließt, zwischen Pin 5 (GPIO 3) und Pin 6 (GND) anschließen. Ein Widerstand ist nicht nötig, GPIO 3 hat auf dem Board bereits einen Pull-up.
Overlay einschalten
In /boot/firmware/config.txt eine Zeile ergänzen und neu starten:
dtoverlay=gpio-shutdown
Ab jetzt fährt ein Druck auf den Taster den Pi sauber herunter. Ist er aus, aber noch am Strom, startet ihn ein weiterer Druck wieder. Das Aufwecken klappt nur über GPIO 3, weil der Pi im ausgeschalteten Zustand genau diesen Pin beobachtet.
Raspberry Pi 5: eingebauter Knopf
Der Pi 5 hat einen Einschaltknopf auf der Platine. Ist der Pi aus, startet ein Druck ihn. Im laufenden Betrieb fährt ein Druck ihn herunter, auf dem Desktop erscheint zuerst ein Menü. Wer den Knopf nach außen verlegen will, schließt einen Taster an die zweipolige Buchse J2 neben dem Batterieanschluss an.
Nachträge
Kann ich einen anderen Pin als GPIO 3 nehmen?
Zum Herunterfahren ja: dtoverlay=gpio-shutdown,gpio_pin=17 legt den Taster auf GPIO 17. Das
Aufwecken aus dem ausgeschalteten Zustand funktioniert beim Pi 3 und 4 aber nur über GPIO 3. Wer beides
will, bleibt bei GPIO 3.
GPIO 3 ist schon belegt, was nun?
GPIO 3 ist auch die Taktleitung des I²C-Busses. Wer I²C-Sensoren nutzt, kann den Taster nicht dort anschließen, ohne dass sich beides stört. Dann auf einen anderen Pin ausweichen und aufs Aufwecken per Taster verzichten, oder den Strom über eine schaltbare Steckdose trennen und wieder einschalten.
Brauche ich dafür noch ein Python-Skript?
Nein. Ältere Anleitungen starten ein Skript, das den Pin abfragt und shutdown aufruft. Das
Overlay erledigt das im Kernel, ohne zusätzlichen Dienst.
Ist der Pi nach dem Herunterfahren stromlos?
Nein. Er braucht im ausgeschalteten Zustand nur noch wenig Strom, hängt aber weiter am Netzteil. Das ist gewollt, sonst könnte ihn der Taster nicht wieder starten. Zum Ausstecken warten, bis die grüne LED nicht mehr flackert.