Một số đèn LED chỉ có phần cứng và không có cách nào thay đổi trạng thái của chúng theo chương trình.
Những cái có thể được kiểm soát có thể được truy cập thông qua sysfs
hệ thống tập tin ảo tại /sys/class/leds/
.
Việc một đèn LED cụ thể có thể được điều khiển theo chương trình hay không phụ thuộc vào phần cứng cụ thể. Ví dụ, máy tính để bàn của tôi có một vài đèn LED nhưng dường như không ai có thể điều khiển được. Tôi cũng đã thử nghiệm trên một vài máy tính xách tay và trong khi có một vài mục bên dưới /sys/class/leds/
, tôi không thể kiểm soát trạng thái của đèn LED, điều đó có nghĩa là, tôi nghĩ rằng trình điều khiển hạt nhân cụ thể không cho phép điều khiển thủ công Đèn LED, cung cấp giao diện chỉ đọc. Đây là những gì tôi đã thử, không có hiệu lực:
# 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
Về mặt lý thuyết, một cái gì đó giống như trên cho phép bạn điều khiển các đèn LED được hỗ trợ bởi trình điều khiển hạt nhân cho phần cứng cụ thể. Nếu không có hỗ trợ để điều khiển một đèn LED cụ thể trong kernel, thì, nếu không viết một mô-đun hạt nhân, bạn sẽ không thể làm được gì nhiều.
Dưới đây là thông tin thêm về chủ đề tại superuser.
Đây là nguồn cuối cùng: tài liệu kernel