🛠 Comprendre les triggers en pilotant les 4 LED utilisateur

BeagleBone Black (TI Sitara AM3358) · debutant · Schéma : IMG-beaglebone-black-debutant-2-leds-user-sysfs-triggers.svg — BeagleBone Black vue de dessus avec les 4 LED utilisateur (heartbeat, mmc0, usr2, usr3) surlignées près du connecteur Ethernet, liste des triggers sysfs en médaillon.

Objetivos

Descubrir el subsistema LED de Linux sin soldar nada: la BeagleBone Black dispone de 4 LED de usuario definidas en el device tree principal (am335x-bone-common.dtsi) bajo los nombres beaglebone:green:heartbeat, mmc0, usr2 y usr3. Cada LED expone un «trigger»: una fuente de activación gestionada por el kernel (latido de corazón, actividad de la tarjeta SD, temporizador...). Es la puerta de entrada al control de hardware bajo Debian.

Material

Código completo

# Lister les LED exposées par le device tree
ls /sys/class/leds/
# beaglebone:green:heartbeat  beaglebone:green:mmc0
# beaglebone:green:usr2       beaglebone:green:usr3

# Voir les triggers disponibles ; l'actif est entre crochets [ ]
cat /sys/class/leds/beaglebone:green:usr2/trigger

# Chaque LED prend son rôle métier :
echo heartbeat > /sys/class/leds/beaglebone:green:heartbeat/trigger
echo mmc0      > /sys/class/leds/beaglebone:green:mmc0/trigger

# usr2 en minuteur 250 ms allumée / 500 ms éteinte
echo timer > /sys/class/leds/beaglebone:green:usr2/trigger
echo 250 > /sys/class/leds/beaglebone:green:usr2/delay_on
echo 500 > /sys/class/leds/beaglebone:green:usr2/delay_off

# Reprise la main : retirer le trigger puis piloter la luminosité
echo none > /sys/class/leds/beaglebone:green:usr3/trigger
echo 255 > /sys/class/leds/beaglebone:green:usr3/brightness
echo 0   > /sys/class/leds/beaglebone:green:usr3/brightness

Verificación esperada

El LED heartbeat pulsa al ritmo del kernel, mmc0 parpadea durante las escrituras en la tarjeta SD (pruebe con dd si hay una microSD insertada), usr2 parpadea al ritmo configurado. Con el trigger none, usr3 obedece instantáneamente a los comandos echo.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales