Forum: Mikrocontroller und Digitale Elektronik Raspberry Pi: Wie Aktion während Shutdown ausführen?


von Walter T. (nicolas)


Lesenswert?

Hallo zusammen,
ich bin nicht so der Linux-Experte und experimentiere seit einer Woche 
mit dem Raspberry Pi. Momentan will ich einen GPIO-Pin immer auf High 
haben, wenn der Raspberry komplett hochgefahren ist und auf Low, sobald 
er im Abschaltvorgang oder heruntergefahren ist.

Ersteres ist recht wohl einfach: In die /etc/init.d/rc.local ganz am 
Ende ein Kommando:
1
sudo echo 11 > /sys/class/gpio/export 
2
sudo echo out > /sys/class/gpio/gpio11/direction
3
sudo echo 1 > /sys/class/gpio/gpio11/value

Aber wohin mache ich etwas, was als erstes vor dem Shutdown ausgeführt 
wird?

Viele Grüße
Nicolas

P.S.: Beim Raspberry weiß ich nie so recht, ob er mehr PC oder mehr µC 
ist. Sollte ein Mod anderer Einschätzung als ich sein bitte den Thread 
in die jeweils andere Kategorie verschieben.

: Bearbeitet durch User
von H. (Gast)


Lesenswert?

wie wäre mit einem Script, das zuerst GPIO setzt und dann den Shutdown 
startet ???

Gruss H.

von H. (Gast)


Lesenswert?

P.S. Wenn der Raspberry dann ausgeschaltet ist, dann sind die GPIOs aber 
hochohmig!!

von Di P. (drpepper) Benutzerseite


Lesenswert?

1. PullDown an Pin
2. Pin per SW beim Boot hochziehen
3. Rasp per Skript runterfahren (erst Pin runter dann runterfahren)
4. ggf. Impedanzwandler an Signal, falls da was fließen soll, wärend der 
Rasp aus ist

von Shutdown (Gast)


Lesenswert?

/etc/init.d/rc.shutdown

sollte unter raspian funktionieren

von Walter T. (nicolas)


Lesenswert?

Danke!

Unter  /etc/init.d/halt kann ich den Befehl
1
sudo echo 0 > /sys/class/gpio/gpio11/value

setzen und ich habe eine zuverlässige Anzeige, ob der Pi fertig gebootet 
ist.
Pull-down-LED ist selbstverständlich vorhanden.

Viele Grüße
Nicolas

von Walter T. (nicolas)


Lesenswert?

OK, bin noch einen Schritt weiter: Habe in init.d ein Skript abgelegt:
1
#/bin/bash
2
 ### BEGIN INIT INFO
3
 # Provides: statuspin
4
 # Required-Start: $local_fs
5
 # Required-Stop:
6
 # Default-Start: 2 3 4 5
7
 # Default-Stop: 0 1 6
8
 # Short-Description: switch on gpio on start
9
 # Description: switch on gpio on start
10
 ### END INIT INFO
11
 start() {
12
     echo 25 > /sys/class/gpio/export
13
     echo out > /sys/class/gpio/gpio25/direction
14
     echo 1 > /sys/class/gpio/gpio25/value
15
 }
16
 stop() {
17
     echo 0 > /sys/class/gpio/gpio25/value
18
 }
19
 case "$1" in
20
     start) start ;;
21
     stop|0) stop ;;
22
     *) echo "Usage: $0 {start|stop} "; exit 1 ;;
23
 esac
24
25
 exit 0

Damit habe ich dann alles schön zusammen.

Danke für die Diskussion!
Nicolas

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.