🛠 Contrôler la LED SYS du NanoPi R5S
Objectifs
Le NanoPi R5S possède quatre LED pilotées par GPIO dans le device tree : SYS (rouge), WAN, LAN1 et LAN2 (vertes). Ce tutoriel vous apprend à les découvrir via sysfs, à passer d'un trigger automatique (heartbeat, netdev) au mode manuel, et à allumer/éteindre la LED SYS en ligne de commande. Vous comprendrez le fonctionnement du système de LED Linux (/sys/class/leds) applicable à toute carte SBC.
Matériel
- NanoPi R5S (2 ou 4 GB) alimenté en USB-C PD 5 V/2 A minimum (alimenterie PD obligatoire, certains chargeurs rapides mettent quelques secondes à démarrer)
- Carte microSD avec Debian/Ubuntu FriendlyElec ou Armbian
- Accès SSH ou écran HDMI + clavier, ou console série (UART 3 pins à 1 500 000 bps)
Code complet
#!/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
Vérification attendue
Après exécution, ls /sys/class/leds/ affiche au moins quatre entrées. La LED SYS rouge clignote en rythme cardiaque quand le trigger heartbeat est actif. En mode manuel, les commandes echo 1 / echo 0 sur brightness allument et éteignent la LED visiblement. Attention : sur les noyaux mainline récents (6.17+), les triggers netdev ont été retirés du device tree et le comportement par défaut des LED LAN diffère des kernels vendor 5.10/6.1.
Erreurs fréquentes
- Mauvais nom de LED : les noms changent entre kernel vendor (
wan_led) et mainline (WAN) ; toujours lister d'abord avecls /sys/class/leds. Permission deniedsur les fichiers sysfs : utilisersudo teeet nonecho ... >(la redirection est faite par le shell sans sudo).- Carte qui ne démarre pas : remplacer l'alimentation USB-C, un chargeur non PD ou trop faible (moins de 5 V/2 A) est la cause n°1.
- Confondre la LED SYS rouge (état système) avec WAN (activité réseau) : la LED rouge allumée en permanence est normale sous Debian.
Autres tutoriels pour cette carte
Exemples de code pour cette carte
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash