일부 LED는 하드웨어 전용이므로 프로그래밍 방식으로 상태를 변경할 수 없습니다.
제어 할 수있는 것은에서 sysfs
가상 파일 시스템을 통해 액세스 할 수 있습니다 /sys/class/leds/
.
특정 LED를 프로그래밍 방식으로 제어 할 수 있는지 여부는 특정 하드웨어에 따라 다릅니다. 예를 들어, 데스크탑 컴퓨터에는 몇 개의 LED가 있지만 그중 어느 것도 제어 할 수없는 것 같습니다. 또한 두 대의 랩톱에서 실험했으며, 아래에 몇 가지 항목 /sys/class/leds/
이 있지만 LED의 상태를 제어 할 수 없었습니다. 즉, 특정 커널 드라이버는 수동 제어를 허용하지 않습니다. 읽기 전용 인터페이스를 제공하는 LED 효과없이 시도한 내용은 다음과 같습니다.
# 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
이론적으로 위와 같은 것을 사용하면 특정 하드웨어의 커널 드라이버에서 지원하는 LED를 제어 할 수 있습니다. 커널에서 특정 LED를 제어 할 수 없다면 커널 모듈을 작성하는 데 부족한 일이 많지 않습니다.
수퍼 유저 주제에 대한 자세한 내용은 다음과 같습니다 .
최고의 소스는 다음과 같습니다 : 커널 문서