🛠 Contrôler la LED SYS du NanoPi R5S
Objetivos
El NanoPi R5S posee cuatro LED controladas por GPIO en el device tree: SYS (roja), WAN, LAN1 y LAN2 (verdes). Este tutorial le enseña a descubrirlas a través de sysfs, a cambiar de un trigger automático (heartbeat, netdev) al modo manual, y a encender/apagar el LED SYS desde la línea de comandos. Comprenderá el funcionamiento del sistema de LED de Linux (/sys/class/leds), aplicable a cualquier placa SBC.
Material
- NanoPi R5S (2 o 4 GB) alimentado por USB-C PD 5 V/2 A mínimo (fuente de alimentación PD obligatoria, algunos cargadores rápidos tardan unos segundos en arrancar)
- Tarjeta microSD con Debian/Ubuntu FriendlyElec o Armbian
- Acceso SSH o pantalla HDMI + teclado, o consola serie (UART 3 pines a 1 500 000 bps)
Código completo
#!/bin/bash
# decouvrir_leds.sh — lister et piloter les LED du NanoPi R5S
ls /sys/class/leds/ # noms : SYS, WAN, LAN-1, LAN-2 (mainline)
# ou sys_led/wan_led/lan1_led... (vendor)
SYS=$(ls /sys/class/leds | grep -iE 'sys' | head -1)
echo "LED système détectée : $SYS"
# Mode manuel puis clignotement manuel
echo none | sudo tee "/sys/class/leds/$SYS/trigger"
echo 1 | sudo tee "/sys/class/leds/$SYS/brightness" # allumée
sleep 2
echo 0 | sudo tee "/sys/class/leds/$SYS/brightness" # éteinte
# Trigger heartbeat du noyau
echo heartbeat | sudo tee "/sys/class/leds/$SYS/trigger"
# Retour au trigger par défaut (habituellement cpu ou none)
cat "/sys/class/leds/$SYS/trigger" # la valeur active est entre crochets
Verificación esperada
Tras la ejecución, ls /sys/class/leds/ muestra al menos cuatro entradas. El LED SYS rojo parpadea al ritmo del corazón cuando el trigger heartbeat está activo. En modo manual, los comandos echo 1 / echo 0 sobre brightness encienden y apagan el LED visiblemente. Atención: en los núcleos mainline recientes (6.17+), los triggers netdev han sido retirados del device tree y el comportamiento por defecto de los LED LAN difiere de los kernels del fabricante 5.10/6.1.
Errores frecuentes
- Nombre incorrecto del LED: los nombres cambian entre el kernel del fabricante (
wan_led) y mainline (WAN); siempre liste primero conls /sys/class/leds. Permission denieden los archivos sysfs: usesudo teey noecho ... >(la redirección la realiza el shell sin sudo).- La placa no arranca: reemplace la fuente de alimentación USB-C, un cargador no PD o demasiado débil (menos de 5 V/2 A) es la causa n.º 1.
- Confundir el LED SYS rojo (estado del sistema) con WAN (actividad de red): el LED rojo encendido permanentemente es normal bajo Debian.
Otros tutoriales para esta placa
Ejemplos de código para esta placa
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash