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 เฉพาะในเคอร์เนลแล้วสั้น ๆ ของการเขียนโมดูลเคอร์เนลมีไม่มากที่คุณสามารถทำได้
นี่คือข้อมูลเพิ่มเติมเกี่ยวกับหัวเรื่องที่ superuser
นี่คือแหล่งที่มาที่ดีที่สุด: เอกสารเคอร์เนล