Raspberry Pi 4 B GPIO booten und herunterfahren
Ich habe einige Nachforschungen über Netzschalter für den Raspberry Pi angestellt, aber es fällt mir ziemlich schwer, Informationen zu finden. Im Moment arbeitet die Taste an GPIO5, und wenn ich sie an den gegenüberliegenden GND-Pin anschließe, startet der Pi. Ich habe die Leitung dtoverlay=gpio-shutdownzu meiner hinzugefügt /boot/config.txt, damit ich auch mit dieser Verbindung herunterfahren kann. Ich habe jedoch einige Fragen, auf die ich nur schwer Antworten finden kann.
- Wird das Herunterfahren mit dem Verbinden des GPIO3-Pins und des GND-Pins als sicheres Herunterfahren angesehen? Wird das System das Schreiben in den Speicher usw. beenden, genau wie bei
sudo shutdown? - Ich weiß , dass ich den Stift zur Abschaltung ändern kann, indem
dtoverlay=gpio-shutdownandtoverlay=gpio-shutdown,gpio-pin=X, aber gibt es eine Möglichkeit , auch den Stift für Boot bis zu ändern? In Anbetracht dessen wird GPIO3 normalerweise für I2C verwendet.
Antworten
Ich kenne nicht die vollständige Antwort auf alle Ihre Fragen, daher ist dies eine teilweise Antwort.
Q1:
Wird das Herunterfahren mit dem Verbinden des GPIO3-Pins und des GND-Pins als sicheres Herunterfahren angesehen?
Ich erinnere mich an Probleme im Zusammenhang mit der Verwendung von GPIO zum Herunterfahren, aber einige neuere Informationen legen nahe, dass diese Funktion ordnungsgemäß funktioniert, wenn das System ordnungsgemäß konfiguriert ist - dh wenn sie ordnungsgemäß konfiguriert ist, ist das Herunterfahren "sicher". Natürlich die Hardware freier Weg zur Abschaltung ist RPI aus dem Bildschirm oder die CLI über sudo shutdown, sudo haltoder sudo poweroff.
Q2:
Ich weiß, dass ich den Pin zum Herunterfahren ändern kann, indem ich dtoverlay = gpio-shutdown in dtoverlay = gpio-shutdown, gpio-pin = X ändere. Aber gibt es auch eine Möglichkeit, den Pin zum Hochfahren zu ändern?
Sie müssen keinen GPIO-Pin verwenden, um das RPi nach dem Herunterfahren neu zu starten. In der Dokumentation heißt es:
WAKE_ON_GPIO
Wenn 1, wird 'sudo halt' in einem Energiesparmodus ausgeführt, bis entweder GPIO3 oder GLOBAL_EN gegen Masse kurzgeschlossen sind.
Standard: 1 (0 in der Originalversion des Bootloaders 2019-05-10) Version: Alle
POWER_OFF_ON_HALT
Wenn 1 und WAKE_ON_GPIO = 0 sind, schalten Sie alle PMIC-Ausgänge im Stillstand aus. Dies ist der niedrigstmögliche Leistungszustand für das Anhalten, kann jedoch bei einigen HATs zu Problemen führen, da 5 V weiterhin eingeschaltet sind. GLOBAL_EN muss zum Booten gegen Masse kurzgeschlossen werden.
Standard: 0 Version: 2019-07-15
Meine Interpretation der obigen Dokumentation lautet wie folgt: Durch einen kurzen Kurzschluss GLOBAL_ENnach Masse wird das RPi neu gestartet / neu gestartet, unabhängig davon, wie WAKE_ON_GPIOund POWER_OFF_ON_HALTeingestellt es ist. Der GLOBAL_ENKnoten ist auf dem Foto unten dargestellt:
Die Bedienung wird in erklärt /boot/overlays/README
Es ist ziemlich sicher, ich habe es auf allen meinen Pi, falls ich einen kopflosen Pi (oder einen ohne angeschlossene Tastatur) herunterfahren muss, obwohl mein Pi selten heruntergefahren wird, es sei denn, ich füge Hardware hinzu.
Ich benutze, dtoverlay=gpio-shutdown,gpio_pin=21damit ich durch Überbrücken der Stifte 39/40 herunterfahren kann
Name: gpio-shutdown
Info: Initiates a shutdown when GPIO pin changes. The given GPIO pin
is configured as an input key that generates KEY_POWER events.
…
This overlay only handles shutdown. After shutdown, the system
can be powered up again by driving GPIO3 low. The default
configuration uses GPIO3 with a pullup, so if you connect a
button between GPIO3 and GND (pin 5 and 6 on the 40-pin header),
you get a shutdown and power-up button. Please note that
Raspberry Pi 1 Model B rev 1 uses GPIO1 instead of GPIO3.
Load: dtoverlay=gpio-shutdown,<param>=<val>
Params: gpio_pin GPIO pin to trigger on (default 3)
For Raspberry Pi 1 Model B rev 1 set this
explicitly to value 1, e.g.:
dtoverlay=gpio-shutdown,gpio_pin=1
active_low When this is 1 (active low), a falling
edge generates a key down event and a
rising edge generates a key up event.
When this is 0 (active high), this is
reversed. The default is 1 (active low).
gpio_pull Desired pull-up/down state (off, down, up)
Default is "up".
Note that the default pin (GPIO3) has an
external pullup. Same applies for GPIO1
on Raspberry Pi 1 Model B rev 1.
debounce Specify the debounce interval in milliseconds
(default 100)