Eine Status-LED beim Start des Pi einschalten

Letztes Update 2020/10/07 13:00
Um nicht nur zu sehen, ob der Pi am Strom angeschlossen, sondern auch betriebsbereit ist, wird am GPIO Anschluss Pin 13 eine LED mit einem Vorwiderstand angeschlossen. Die Größe des Vorwiderstandes sollte an die Stromaufnahme der LED angepasst werden.

(CC) BY-SA
Siehe: Wiring Pi Pinbelegung

WiringPi ist nicht unbedingt notwendig. Da aber WiringPi hier auch für andere Vorhaben notwendig ist, wird es auch zur Ausführung dieses Scripts verwendet. Siehe: WiringPi installieren

Um die LED zum leuchten zu bringen, ist ein kleines Script notwendig. Dieses wird hier in C erstellt.

sudo nano statusled_on.c

#include <wiringPi.h> int main (void) { wiringPiSetup () ; pinMode (2, OUTPUT) ; { digitalWrite (2, HIGH) ; } return 0 ; }

Das Script wird kompiliert:

gcc -o statusled_on statusled_on.c -lwiringPi

und in die Verzeichnissse /etc/init.d/ und /bin/ kopiert:

sudo cp statusled_on /etc/init.d/statusled_on
sudo cp statusled_on /bin/statusled_on

Im Verzeichnis /etc/init.d/ wird eine Datei mit dem Namen local.statusled erstellt:

sudo nano /etc/init.d/local.statusled

Es wird die vereinfachte Vorlage /etc/init.d/skeleton verwendet.

#! /bin/sh ### BEGIN INIT INFO # Provides: local.autostart # Required-Start: $start # Required-Stop: $shutdown # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: schaltet die StatusLED ein # Description: Lange Bechreibung ### END INIT INFO # Author: ede # Aktionen /bin/statusled_on

Der Kopfteil ist sehr wichtig und muss vorhanden sein, denn er wird später vom Befehl update-rc.d verwendet. Er darf nicht gelöscht und sollte entsprechend angepasst werden. Unterhalb von # Aktionen steht der Befehl zur Ausführung des C-Scripts.

Da die GPIO Pins ohnehin beim Abschalten stromlos werden, kann die /etc/init.d/local.statusled einfach gehalten werden.

Die Datei wird nun ausführbar gemacht:

sudo chmod 755 /etc/init.d/local.statusled

Abschließend fügt man das Skript mit dem Befehl update-rc.d in die entsprechenden Runlevel ein.

sudo update-rc.d local.statusled defaults

Quellen:

Autostartskript erstellen und einbinden
Raspberry Pi - run program at start-up