是否可以暂时禁用笔记本电脑的 LED?(硬盘、电源、充电)

是否可以暂时禁用笔记本电脑的 LED?(硬盘、电源、充电)

我的问题是是否可以运行终端命令(或其他任何命令)来禁用笔记本电脑的指示灯 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,那么除了编写内核模块外,您几乎无能为力。

以下是有关该主题的更多信息以超级用户身份。

这是最终的来源:内核文档

相关内容