Shutdown erkennen

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Ich suche nach einem Weg zu erkennen, das der PRi mit seinem Shutdown fertig ist.
    Also im Grunde eine Anzeige das der Netzstecker gezogen werden darf.

    Das ganze soll als LED umgesetzt werden.

    Ich hab schon versucht einfach ein GPIO Pin auf HIGH zu setzen und dann ein Shutdown auszulösen, aber wie es aussieht wird der GPIO Port dabei dann nicht zurückgesetzt.

    Ob nun eine LED aus geht, oder eine an geht wenn der Shutdown fertig ist, das ist mir relativ egal, sollte nur verlässlich sein.
    Habe schon ein wenig rumgesucht, aber bisher nichts brauchbares gefunden.

    Ich möchte kein Shutdown-Button, oder USV oder sonst was, einfach nur eine Anzeige: Jetzt kann man den Stecker ziehen.
    Hat jemand eine Idee?

  • Naja das ist es ja. Die GPIOs werden ja nicht stromlos.
    Schaltet man einen an und fährt den RPi runter, dann bleibt der an, solange Stecker noch dran ist.
    Einzige was mir auf Anhieb einfallen würde, wäre selbst vor dem runterfahren dann ein GPIO auszuschalten, und da dran ein Kondensator zu haben, so das die LED daran erst ein bisschen später aus geht.

  • Hallo RyuKajiya,

    wenn Du an den GPIO4 eine LED mit Vorwiderstand (ca. 680 Ohm) und über GND ableitest, dann hast Du eine perfekte Status-Anzeige für den Raspberry Pi:
    LED ist aus: Raspberry Pi ist stromlos
    LED blinkt: Raspberry Pi fährt hoch
    LED leuchtet schwach: Raspberry Pi ist hochgefahren
    LED leuchtet intensiv: Raspberry Pi ist heruntergefahren

    Ansonsten gibt es auf dem Bildschirm eine entsprechende Mitteilung, dass kein Bildsignal anliegt. Auch dann kannst Du gefahrlos den Netzstecker ziehen - oder die Steckerleiste ausschalten etc.

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • Bildschirmausgabe ist da nicht zu gebrauchen, ist für ein Projekt, bei dem nichts dergleichen am PRi hängt und auch nie hängen wird.

    Das mit GPIO4 muss ich mir dann mal angucken.
    Wobei leuchtet schwach und leuchtet stark nicht optimal ist.
    Wenn müsste das hin gebogen werden das anstelle von schwach leuchten dann aus bleibt.
    Kriegt man das mit einem pull-down hin ?

  • Hallo RyuKajiya,

    ich habe die Schaltung gerade auf einem Modell A+ ausprobiert. Dort ist es der GPIO14 mit dem geschilderten Verhalten. Allerdings ist die LED dann ausgeschaltet, wenn der Raspberry Pi heruntergefahren ist.

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • Na das wäre ja auch akzeptabel.
    Soll ja eine einfach verständliche Anzeige sein, das man den Stecker ziehen kann.

    Will halt ein Button machen, der den Shutdown ausführt und dann als "Gebrauchsanweisung" sagen können:
    "Zum Ausschalten den Knopf da drücken, und wenn die LED aus geht den Stecker ziehen."

    Soll halt mehr oder weniger idiotensicher sein, oder zumindest verständlich genug, das man da nicht erst die Funktion des RPi kennen muss, um zu verstehen wann man was machen kann. Das da ein RPi drin steckt muss gar nicht bekannt sein ;)

    Wenn das Signal nur schwach ist bei eingeschalteten und aus bei shutdown, dann macht wohl ein Transistor daran Sinn, der die LED steuert. So das die LED an ist wenn RPi läuft, und aus geht wenn shutdown fertig ist.

    Ok, gerade etwas experimentiert...
    Also der Pin den du meinst müsste der TX Pin sein, ist beim B+ an selber Stelle.
    Hab da mal eine LED dran gepackt und den RPi runtergefahren.

    Wo ist der Unterschied zwischen

    Code
    sudo shutdown now


    und

    Code
    sudo init 0


    ?

    Denn beim shutdown bleibt die LED an, beim init 0 geht sie aus.
    Dann hab ich weiter rum probiert und GPIO 29 (also ganz unten rechts) auf HIGH gesetzt und auch beide ausprobiert.
    Bisher hab ich immer shutdown benutzt, da bleibt die LED auch an. Wenn ich aber init 0 benutze, dann geht die dabei auch aus.
    Dachte das wäre beides da gleiche, oder hab ich da mal wieder ein Topf Unwissenheit bei mir gefunden, der gefüllt werden müsste ?

    Einmal editiert, zuletzt von RyuKajiya (8. Januar 2015 um 18:49)

  • Also wenn ich ein:

    Code
    sudo poweroff


    oder:

    Code
    sudo init 0


    benutze ist es egal welchen Pin ich benutz.
    Wenn das Programm startet einen Pin auf HIGH setzen, eine LED dran, nicht vergessen z.B. bei GPIO.cleanup() diesen Pin auszulassen, und schon geht die LED aus, sobald der shutdown fertig ist.

    Hab vorher immer:

    Code
    sudo shutdown now


    benutzt, komischerweise bleibt dabei die LED dann an.
    Betrachte das dann als erledigt, frag mich nur wo der Unterschied nun ist, denn soweit ich weis ist poweroff und shutdown beides nur Funktionen die am ende genau das gleiche machen wie der init 0, halt nur noch paar zusätzliche Sachen vorher, trotzdem bleibt bei dem einen der PIN auf HIGH und beim anderen nicht...

  • Und was ist wenn du ein Runlevel Script ( /etc/init.d/ ) einrichtest welches beim herunterfahren ausgeführt wird und den entsprechenden GPIO auf LOW oder HIGH setzt?

    Das würde zwar früher ausgeführt werden als der eigentliche Shutdown beendet wäre, aber dann haste zumindest einen Zeitrahmen von zB 5 Sekunden ab wo du den PI dann sicher abstöpsel könntest.

    Beispiel:
    LED ist die ganze Zeit aus. /etc/init.d/ Script wird bei Runlevel "0 1 6" ausgeführt und schaltet die LED an.
    Beachte aber dass das Script mit "stop" aufgerufen wird.

    "/etc/init.d/shutdownled"

  • eine andere möglichkeit ist, dass wenn jmd die stromzufuhr unterbricht(aussteckt) dass dann der shutdownbefehl(welcher auch immer) ausgeführt wird

    Das geht aber freilich nur wenns wie eine USV aufgebaut ist und eine Backup-Stromversorgung existiert sowie eine Schaltung die ein GPIO Zustand ändert, und natürlich auch ein Script darauf wacht... Einfach nur eine Batterie anzuschließen geht aber nicht sonst geht die schnell kaputt..
    Also kein wirklich leichtes Unterfangen für deinen recht kurzen Satz

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!