Forum: Mikrocontroller und Digitale Elektronik Raspberry: Pin setzen unmittelbar vor Powerdown?


von Karl S. (Gast)


Lesenswert?

Nach dem Einschalten eines Raspberry ist der von mir verwendetet GPIO 
ein Eingang. Diesen Eingang ziehe ich mit einem externen PullUp auf 
High.

Nachdem der Pi runtergefahren wird, soll dieser Pin per Skript zum 
Ausgang werden und auf Low gehen.

Wie kann ich ein (Python)-Skript als letztes Kommando starten, nachdem 
das OS alles andere zum Poweroff abgearbeitet hat?

von Chris (Gast)


Lesenswert?

Guck dir mal die Init Scripte an

von Georg (Gast)


Lesenswert?

Karl S. schrieb:
> Nachdem der Pi runtergefahren wird, soll dieser Pin per Skript zum
> Ausgang werden und auf Low gehen.

Ein abgeschalteter Prozessor kann keinen Ausgang treiben.

Georg

von Karl S (Gast)


Lesenswert?

Chris schrieb:

> Guck dir mal die Init Scripte an

Der Hinweis nutzt mir nichts, da ich praktisch keine Erfahrung mit dem 
OS habe.

von Karl S. (Gast)


Lesenswert?

Georg schrieb:

> Ein abgeschalteter Prozessor kann keinen Ausgang treiben.

Nach dem Kommando poweroff z. B. wird der Raspberry runtergefahren. Da 
er noch mit dem Netzteil verbunden ist bleiben die GPIO-Zustände 
erhalten.

von Ingo D. (ingo2011)


Lesenswert?

Hi,

Chris meint die Scripte die beim Start/Shutdown aufgerufen werden.
Die stehen unter /etc/init.d/


Karl S schrieb:
> Chris schrieb:
>
>> Guck dir mal die Init Scripte an
>
> Der Hinweis nutzt mir nichts, da ich praktisch keine Erfahrung mit dem
> OS habe.

von Karl S. (Gast)


Lesenswert?

Ingo D. schrieb:
> Hi,
>
> Chris meint die Scripte die beim Start/Shutdown aufgerufen werden.
> Die stehen unter /etc/init.d/
>
>
> Karl S schrieb:
>> Chris schrieb:
>>
>>> Guck dir mal die Init Scripte an
>>
>> Der Hinweis nutzt mir nichts, da ich praktisch keine Erfahrung mit dem
>> OS habe.

Danke für die Präzisierung :)

von Karl S. (Gast)


Lesenswert?

Welches Skript ist zuständig?

Dies sind die Skripte in /etc/init.d:
1
pi@raspberrypi:/etc/init.d $ ls
2
alsa-utils        dbus               kmod        plymouth-log  rsyslog
3
apparmor          dhcpcd             lightdm     procps        ssh
4
avahi-daemon      dphys-swapfile     networking  raspi-config  sudo
5
bluetooth         fake-hwclock       nfs-common  rng-tools     triggerhappy
6
console-setup.sh  hwclock.sh         paxctld     rpcbind       udev
7
cron              keyboard-setup.sh  plymouth    rsync         x11-common

von Mein name ist Hase (Gast)


Lesenswert?

Du wirst dich wohl oder übel mit dem Init.d von Linux / raspbery pi 
ausernander stetzen dürfen, ...

Das sind die zwar die Scripte, ... die sind für start  stop  status / 
... zuständig.

Werden aber an anderer stelle wieder für die entsprechenden runlevels 
verwendet, ...

Bei einem Shutdown werden dann die entsprechend dort angegebenen Scripte 
mit stop aufgerufen.

PS. meine infos sind teils sehr verarltet, früher da ist das noch alles 
mit symbolic links auf diese dateien gemacht worden, ... und glaube im 
linknamen war kodiert in welcher reihenfolge und ob der start oder stop 
aufgerufen werden sollte, ... aber heutzutage gibt es da verschiedene 
andere lösungen, ... inkusieve glaubens kriege darüber was jetzt besser 
ist.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Karl S. schrieb:
> Nachdem der Pi runtergefahren wird, soll dieser Pin per Skript zum
> Ausgang werden und auf Low gehen.

Man kann den TX-Pin dafür nehmen, um zu erkennen, ob der PI 
runtergefahren wurde.

Siehe auch:

http://www.netzmafia.de/skripten/hardware/RasPi/Projekt-OnOff/index.html

Zitat:

"Für das Detektieren, ob der Raspberry Pi aktiv oder heruntergefahren 
ist, bietet sich der serielle Ausgang an (TX, GPIO 14, Pin 8). Kurz nach 
dem Hochfahren geht er auf HIGH und erst nach dem Shutdown wieder auf 
LOW."

Du brauchst also überhaupt kein init-Script, das geht mit dem TX-Pin 
automagisch.

von Karl S. (Gast)


Lesenswert?

Frank M. schrieb:

> http://www.netzmafia.de/skripten/hardware/RasPi/Projekt-OnOff/index.html

Hilfe von der Mafia. Was es nicht alles gibt.

Vielen Dank für den Link.

von Andreas M. (amesser)


Lesenswert?

Oder einfach das overlay "gpio-poweroff" in config.txt benutzen

https://github.com/raspberrypi/firmware/blob/master/boot/overlays/README

Damit kann man jeden beliebigen GPIO Pin nach Bedarf dafür 
konfigurieren.

von Stefan F. (Gast)


Lesenswert?

Bei Debian Linux werden die Init Scripte seit ein paar Jahren nach und 
nach durch Systemd ersetzt.

Schau mal ins Verzeichnis /usr/lib/systemd/system-shutdown

Da musst du nur ein eigenes Script hinzufügen und ausführbar machen:
chmod a+x meinscript

von Karl S. (Gast)


Lesenswert?

Andreas M. schrieb:

> Oder einfach das overlay "gpio-poweroff" in config.txt benutzen
>
> https://github.com/raspberrypi/firmware/blob/master/boot/overlays/README
>
> Damit kann man jeden beliebigen GPIO Pin nach Bedarf dafür
> konfigurieren.

Super! Vielen Dank für den Link.

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.