LED'lerin bazıları sadece donanımdır ve durumlarını programlı olarak değiştirmenin bir yolu yoktur.
Kontrol edilebilir olanlara adresindeki sysfs
sanal dosya sistemi üzerinden erişilebilir /sys/class/leds/
.
Belirli bir LED'in programlı olarak kontrol edilip edilemeyeceği, belirli donanıma bağlıdır. Örneğin, masaüstü makinemde birkaç LED var, ancak hiçbiri kontrol edilemiyor gibi görünüyor. Birkaç dizüstü bilgisayarda da deneyler yaptım ve birkaç giriş varken /sys/class/leds/
, LED'lerin durumunu kontrol edemedim, yani belirli bir çekirdeğin sürücünün elle kontrol edilmesine izin vermediğini düşünüyorum. Salt okunur bir arayüz sağlayan LED'ler. İşte denedim, etkisiz:
# 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
Yukarıdaki gibi bir şey teorik olarak, çekirdek donanımların belirli bir donanım için desteklediği bu LED'leri kontrol etmenize izin vermelidir. Çekirdekte belirli bir LED'i kontrol etme desteği yoksa, bir çekirdek modülü yazarken, yapabileceğiniz fazla bir şey yoktur.
İşte konuyla ilgili daha fazla bilgi süper at.
İşte nihai kaynak: Çekirdek dokümantasyonu