Wie schalte ich den Raspberry Pi sicher aus?

30

Wenn ich einen Desktop-Computer verwende, sudo shutdown -P nowschaltet sich der Computer normalerweise vollständig aus und ich kann ihn mit einer Taste wieder einschalten. (Wenn der Computer abstürzt, kann ich einen Neustart erzwingen, indem ich den Netzschalter etwa 5 Sekunden lang gedrückt halte.)

Der Raspberry Pi hat keinen Einschaltknopf. Wenn ich laufe sudo shutdown -P now, scheint die Strom-LED immer noch an zu sein, und um sie erneut zu starten, muss sie anscheinend herausgezogen und wieder eingesteckt werden. Dies scheint etwas analog zu "Es ist jetzt sicher, Ihren Computer auszuschalten" in alten Versionen von Windows.

Wann ist es sicher, den Stecker am Raspberry Pi zu ziehen? Mache ich etwas falsch?

George Simms
quelle
2
Die rote LED zeigt nur an, dass das Gerät mit Strom versorgt wird. Das, auf das Sie achten möchten, ist das Grüne. Wenn es blinkt, bedeutet dies, dass das oi auf die microSD-Karte zugreift. Wenn Sie herunterfahren, beobachten Sie es. Es sollte 4-10 mal blinken. Sobald dies eintritt, ist es sicher, den Stecker zu ziehen.
TheXed
1
Vorausgesetzt, Ihre SD-Karte ist in ext4 (oder einem anderen Journaling-FS) formatiert, ist es offen gesagt mehr oder weniger sicher, sie auszuschalten, wenn der Pi nur im Leerlauf herumsteht. Zumindest sicherer als das Ausschalten eines Windows95-Computers. (Nicht, dass ich es für sicherheitskritische Anwendungen empfehle ... aber ein Pi ist dann sowieso nicht gerade ideal.)
linksum den
4
@leftaroundabout, Journaling macht nicht viel, wenn das zugrunde liegende Medium einen Stromausfall nicht sauber handhaben kann. Ich muss meine SD-Karten nach einem Stromausfall häufig neu formatieren.
Mark
@Mark: möglich. Ich habe ein Pi, das ich oft ohne Komplikationen unsicher ausgeschaltet habe, aber in der Tat verwendet dieses nur die Karte nur für den Bootloader und hat alles andere auf einer USB-Festplatte.
linksum den
@Mark Es bedeutet auch nicht viel, wenn gerade Daten geschrieben werden. Sie werden immer noch Ihre Daten verlieren. Es garantiert lediglich die Konsistenz des Dateisystems.
Bob

Antworten:

18

Du machst nichts falsch.

Die Aktivitäts-LED sollte kurz vor dem Ausschalten drei- oder viermal blinken. Es ist dann sicher, die Stromversorgung zu unterbrechen.

Normalerweise fahre ich herunter, gehe ein paar Minuten weg und ziehe dann das Netzkabel heraus.

joan
quelle
15

Sie müssen die Stromversorgung nicht trennen, um Pi neu zu starten. In der Nähe der SD-Karte befinden sich ein Paar Pads (ich denke, Reset ist möglicherweise aktiv - ich kann es auf meinem Pi nicht sehen, da alle Schalter auf der Platine gelötet sind.) Momentan kurz, um neu zu starten.

Neuere Rasbpianer haben einen eingebauten Prozess zum Herunterfahren (gehandhabt von systemd-logind)

Fügen Sie Folgendes hinzu zu /boot/config.txt

dtoverlay=gpio-shutdown,gpio_pin=5

Dies ermöglicht es einem zwischen Pin 29 (GPIO 5) und Pin 30 (Gnd) angeschlossenen Schalter, ein ordnungsgemäßes Herunterfahren des Pi auszulösen.

Es kann fast jeder Pin verwendet werden - der Standard ist Pin 5 (GPIO 3), obwohl dieser häufig für I²C ,gpio_pin=21verwendet wird und die gleichen Pins verwendet werden, die in den Skript-Pins 40 (GPIO 21) und 39 (Gnd) verwendet werden.

Ich empfehle sudo poweroff, den Pi herunterzufahren. Es ist nichts falsch an dem, was Sie tun, aber poweroffdie grüne LED blinkt 10 Mal im Abstand von 1 Sekunde, wenn das Gerät ausgeschaltet werden kann.

Ich habe ein Python-Skript, das den Pi mit einem Druckknopf herunterfährt.

#!/usr/bin/env python2.7
#-------------------------------------------------------------------------------
# Name:         Shutdown Daemon
#
# Purpose:      This program gets activated at the end of the boot process by
#               cron. (@ reboot sudo python /home/pi/shutdown_daemon.py)
#               It monitors a button press. If the user presses the button, we
#               Halt the Pi, by executing the poweroff command.
#
#               The power to the Pi will then be cut when the Pi has reached the
#               poweroff state (Halt).
#               To activate a gpio pin with the poweroff state, the
#               /boot/config.txt file needs to have :
#               dtoverlay=gpio-poweroff,gpiopin=27
#
# Author:      Paul Versteeg
#
# Created:     15-06-2015, revised on 18-12-2015
# Copyright:   (c) Paul 2015
# https://www.raspberrypi.org/forums/viewtopic.php?p=864409#p864409
#-------------------------------------------------------------------------------

import RPi.GPIO as GPIO
import subprocess
import time

GPIO.setmode(GPIO.BCM) # use GPIO numbering
GPIO.setwarnings(False)

# I use the following two GPIO pins because they are next to each other,
# and I can use a two pin header to connect the switch logic to the Pi.
# INT = 17    # GPIO-17 button interrupt to shutdown procedure
# KILL = 27   # GPIO-27 /KILL : this pin is programmed in /boot/config.txt and cannot be used by any other program
INT = 21    # GPIO button interrupt to shutdown procedure

# use a weak pull_up to create a high
GPIO.setup(INT, GPIO.IN, pull_up_down=GPIO.PUD_UP)

def main():

    while True:
        # set an interrupt on a falling edge and wait for it to happen
        GPIO.wait_for_edge(INT, GPIO.FALLING)
#       print "button pressed"
        time.sleep(1)   # Wait 1 second to check for spurious input
        if( GPIO.input(INT) == 0 ) :
            subprocess.call(['poweroff'], shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

if __name__ == '__main__':
    main()
Milliways
quelle
Können Sie diesen Python-Code als Referenz hinzufügen, und was ist, wenn ich die Stromquelle gebe, startet er automatisch pi oder sonst?
Gaurav Dave
4

Niemand scheint diese Frage beantwortet zu haben: "Wann ist es sicher, den Stecker am Raspberry Pi zu ziehen?"

Um ordnungsgemäß herunterzufahren, führen Sie aus

sudo shutdown

Wenn Sie dies tun, sehen Sie, wie die "ACT" -Lampe (die grüne) 10 Mal (in Intervallen von 0,5 Sekunden) durchgehend blinkt. Sobald es aufhört zu blinken, erlischt das grüne Licht. Zu diesem Zeitpunkt ist es sicher, die Stromversorgung zu unterbrechen oder den Stecker zu ziehen.

Das rote Licht bleibt an, solange der Pi mit Strom versorgt wird.

Nach dem Herunterfahren müssen Sie die Stromversorgung trennen und dann wieder einschalten, um den Pi einzuschalten.

Electronics_John
quelle
2

Wie in früheren Antworten angegeben, bedeutet die rote LED, dass der Pi Strom empfängt, während die grüne LED Aktivität ist (ich glaube, Festplattenaktivität).

Sie können entweder den Stecker ziehen, wenn die grüne LED nach einem Befehl zum Herunterfahren nicht mehr blinkt, oder Sie können die Run / Reset-Pads auf der Platine kurzschließen

Auf dieser Website finden Sie eine Anleitung zum Hinzufügen eines Hard-Reset-Schalters, wenn Sie bereit sind, einige Stifte zu löten.

Wenn Sie den Hard-Reset verwenden, stellen Sie sicher, dass er nur nach einem Stopp oder Herunterfahren des Systems oder als letzte Möglichkeit verwendet wird, da der Prozessor sofort neu gestartet wird. Wenn Sie auf Ihre SD-Karte schreiben, können Sie sie möglicherweise beschädigen, indem Sie die Stromversorgung unterbrechen während es läuft

S.Rose
quelle
2

Hier ist ein wirklich einfaches Python-Skript zum Herunterfahren.

import RPi.GPIO as GPIO 
import os 
channel=11 
GPIO.setmode(GPIO.BOARD) 
#Pin 11 & Gnd 

GPIO.setup(channel, GPIO.IN, pull_up_down=GPIO.PUD_UP) 
GPIO.wait_for_edge(channel, GPIO.FALLING) 
os.system("sudo shutdown -h now")
Andy Anderson
quelle