我的问题是是否可以运行终端命令(或其他任何命令)来禁用笔记本电脑的指示灯 LED。
我有用于 CAPS、NUM 和 WiFi 的 LED,它们无论如何都是关闭的。但是当天黑时,硬盘使用指示灯 LED 一直闪烁非常烦人。
还有一个不断闪烁的蓝色/红色电源 LED 和一个充电指示灯,我想关闭它们。
因此,如果可能的话,我想编写一个脚本来禁用(并编写另一个脚本来启用)这些 LED。它们是由软件还是硬件控制的?我的笔记本电脑是大约 10 年前的无名型号(MaxData Pro 6100 iw)。它运行在 Ubuntu 14.10(Utopic Unicorn)上。
答案1
一些 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,那么除了编写内核模块外,您几乎无能为力。
以下是有关该主题的更多信息以超级用户身份。
这是最终的来源:内核文档