Некоторые светодиоды предназначены только для аппаратного обеспечения, и нет возможности программно изменить их состояние.
К тем, которыми можно управлять, можно получить доступ через sysfs
виртуальную файловую систему по адресу /sys/class/leds/
.
Возможность программного управления конкретным светодиодом зависит от конкретного оборудования. Например, на моем настольном компьютере есть несколько светодиодов, но ни один из них не выглядит управляемым. Я также экспериментировал с парой ноутбуков, и, хотя под ними было несколько записей /sys/class/leds/
, я не смог контролировать состояние светодиодов, что означает, я думаю, что конкретный драйвер ядра не позволяет вручную управлять Светодиоды, обеспечивающие интерфейс только для чтения. Вот что я попробовал без эффекта:
# 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
Нечто подобное выше, теоретически, должно позволять вам контролировать те светодиоды, которые поддерживаются драйверами ядра для конкретного оборудования. Если нет поддержки управления конкретным светодиодом в ядре, то, если не написать модуль ядра, мало что можно сделать.
Вот больше информации на эту тему у суперпользователя.
Вот основной источник: документация по ядру