Raspberry Pi 4 B GPIO booten und herunterfahren

Sep 18 2020

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-shutdownan dtoverlay=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

1 Seamus Sep 19 2020 at 00:27

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:

Milliways Sep 19 2020 at 00:25

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)