Beaglebone Black Heartbeat LED

Wenn man wie ich den Beaglebone Black als kleinen Server im Dauereinsatz hat, ist die blinkende Heartbeat-LED doch irgendwann recht störend. Sie soll anzeigen, ob das System noch arbeitet, aber da sie auch weiter blinkt, wenn der Server seinen Dienst schon eingestellt hat, macht sie in diesem Fall recht wenig Sinn.

Der Beaglebone Black hat 4 eingebaute LEDs, die der Nutzer beeinflussen kann. Sie sind mit usr0 bis usr3 bezeichnet.
Die Einstellungen dafür befinden sich in dem Ordner /sys/class/leds/

# cd /sys/class/leds
/sys/class/leds# ls -l
total 0
lrwxrwxrwx 1 root root 0 Feb 16 09:41 beaglebone:green:usr0 -> ../../devices/ocp.2/gpio-leds.7/leds/beaglebone:green:usr0
lrwxrwxrwx 1 root root 0 Feb 16 09:42 beaglebone:green:usr1 -> ../../devices/ocp.2/gpio-leds.7/leds/beaglebone:green:usr1
lrwxrwxrwx 1 root root 0 Feb 16 09:42 beaglebone:green:usr2 -> ../../devices/ocp.2/gpio-leds.7/leds/beaglebone:green:usr2
lrwxrwxrwx 1 root root 0 Feb 16 09:42 beaglebone:green:usr3 -> ../../devices/ocp.2/gpio-leds.7/leds/beaglebone:green:usr3

Die LED für den Heartbeat ist usr0 zugeordnet. Also in das Verzeichnis wechseln und sich mal umsehen:

/sys/class/leds# cd beaglebone\:green\:usr0
/sys/class/leds/beaglebone:green:usr0# ls -l
total 0
-rw-r--r-- 1 root root 4096 Feb 16 09:56 brightness
lrwxrwxrwx 1 root root    0 Feb 16 09:56 device -> ../../../gpio-leds.7
-r--r--r-- 1 root root 4096 Feb 16 09:56 max_brightness
drwxr-xr-x 2 root root    0 Feb 16 09:56 power
lrwxrwxrwx 1 root root    0 Feb 16 09:41 subsystem -> ../../../../../class/leds
-rw-r--r-- 1 root root 4096 Feb 16 09:51 trigger
-rw-r--r-- 1 root root 4096 Feb 16 09:41 uevent

Die interessante Datei ist hier die Datei „trigger“. In dieser Datei wird festgelegt, bei welchem Anlass die LED angesteuert wird.

/sys/class/leds/beaglebone:green:usr0# cat trigger 
none nand-disk mmc0 mmc1 timer oneshot [heartbeat] backlight gpio cpu0 default-on transient

Die aktuelle Einstellung ist mit eckigen Klammern eingefasst, also hier der heartbeat.
Andere Werte sind:

  • none – Die LED wird nicht angesteuert
  • mmc0 – Die LED leuchtet bei Zugriff auf die externe SD-Karte
  • mmc1 – Die LED leuchtet bei Zugriff auf den internen eMMC-Speicher
  • gpio – Die LED leuchtet bei Zugriff auf die IO-Pins
  • cpu0 – Die LED leuchtet bei Zugriff auf die CPU

Für die einzelnen LEDs sind folgende Werte voreingestellt:

  • user0 – der Heartbeat
  • user1 – ist auf mmc0 eingestellt, also die externe SD-Karte
  • user2 – ist auf cpu0 eingestellt
  • user3 – ist auf mmc1 eingestellt, also den internen Speicher

Um die Heartbeat LCD auszuschalten, genügt es, den eingestellten Wert in der trigger-Datei auf „none“ zu ändern. Das geht mit dem Befehl

/sys/class/leds/beaglebone:green:usr0# echo none > trigger

Diese Einstellung ist aber nach dem nächsten Neustart verloren, da bei einem Neustart wieder die Default-Werte eingetragen werden. Damit der Beaglebone diese Einstellung auch beim nächsten Neustart übernimmt, ist es am einfachsten, den entsprechenden Eintrag in der Datei „rc.local“ zu setzen.
Also mit einem Editor seiner Wahl die Datei /etc/rc.local öffnen und die Zeile

echo none > /sys/class/leds/beaglebone\:green\:usr0/trigger

vor der Zeile „exit 0“ einfügen.

Das wars.

Schreibe einen Kommentar