Niektóre diody LED są tylko sprzętowe i nie ma możliwości programowej zmiany ich statusu.
Do tych, które można kontrolować, można uzyskać dostęp za pośrednictwem sysfs
wirtualnego systemu plików pod adresem /sys/class/leds/
.
To, czy daną diodą LED można sterować programowo, czy nie, zależy od konkretnego sprzętu. Na przykład mój komputer stacjonarny ma kilka diod LED, ale żadnej z nich nie można kontrolować. Eksperymentowałem również na kilku laptopach i chociaż było kilka wpisów poniżej /sys/class/leds/
, nie byłem w stanie kontrolować stanu diod LED, co oznacza, myślę, że konkretny sterownik jądra nie pozwala ręcznie sterować Diody LED, zapewniające interfejs tylko do odczytu. Oto, co próbowałem, bez efektu:
# 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
Coś takiego jak wyżej powinno teoretycznie pozwolić ci kontrolować diody LED obsługiwane przez sterowniki jądra dla danego sprzętu. Jeśli nie ma wsparcia dla kontrolowania konkretnej diody LED w jądrze, to poza napisaniem modułu jądra niewiele można zrobić.
Oto więcej informacji na ten temat u administratora.
Oto ostateczne źródło: dokumentacja jądra