Certaines LED sont uniquement matérielles et il n'y a aucun moyen de modifier leur état par programme.
Celles qui peuvent être contrôlées sont accessibles via le sysfs
système de fichiers virtuel sur /sys/class/leds/
.
Le fait qu'une LED particulière puisse être contrôlée par programme ou non dépend du matériel particulier. Par exemple, ma machine de bureau a quelques LED mais aucune ne semble contrôlable. J'ai également expérimenté sur quelques ordinateurs portables et, même s'il y avait quelques entrées sous /sys/class/leds/
, je n'ai pas pu contrôler l'état des LED, ce qui signifie, je pense, que le pilote du noyau particulier ne permet pas de contrôler manuellement le LED, fournissant une interface en lecture seule. Voici ce que j'ai essayé, sans effet:
# cd /sys/class/leds/
# ls
ath9k-phy0
# cd ./ath9k-phy0
# ls
brightness device max_brightness power subsystem trigger uevent
# cat ./trigger
[none] AC-online BAT0-charging-or-full BAT0-charging BAT0-full BAT0-charging-blink-full-solid usb-gadget usb-host cpu0 cpu1 rfkill1 phy0rx phy0tx phy0assoc phy0radio phy0tpt rfkill4
# echo 'AC-online' > ./trigger
# cat ./trigger
none [AC-online] BAT0-charging-or-full BAT0-charging BAT0-full BAT0-charging-blink-full-solid usb-gadget usb-host cpu0 cpu1 rfkill1 phy0rx phy0tx phy0assoc phy0radio phy0tpt rfkill4
# echo 'none' > ./trigger
# echo 'phy0rx' > ./trigger
# echo 'none' > ./trigger
# cat ./trigger
[none] AC-online BAT0-charging-or-full BAT0-charging BAT0-full BAT0-charging-blink-full-solid usb-gadget usb-host cpu0 cpu1 rfkill1 phy0rx phy0tx phy0assoc phy0radio phy0tpt rfkill4
# cat ./brightness
0
# cat ./max_brightness
255
# echo 255 > ./brightness
Quelque chose comme ce qui précède devrait, en théorie, vous permettre de contrôler les LED qui sont prises en charge par les pilotes du noyau pour le matériel particulier. S'il n'y a pas de support pour contrôler une LED particulière dans le noyau, alors, à moins d'écrire un module du noyau, vous ne pouvez pas faire grand-chose.
Voici plus d'informations sur le sujet au superutilisateur.
Voici la source ultime: la documentation du noyau