¿Es posible desactivar temporalmente los LED de una computadora portátil? (HDD, alimentación, carga)

9

Mi pregunta es si es posible ejecutar un comando de terminal (o cualquier otra cosa) para deshabilitar los LED indicadores de una computadora portátil.

Tengo LED para CAPS, NUM y WiFi que están apagados de todos modos. Pero cuando está oscuro es muy molesto cuando el LED indicador de uso del HDD parpadea todo el tiempo.
También hay un LED de encendido azul / rojo brillante constante y un indicador de carga que me gustaría apagar.

Por lo tanto, me gustaría escribir un script que desactive (y otro que habilite) esos LED si esto es posible. ¿Están controlados por software o hardware? Mi computadora portátil es un modelo sin nombre de unos 10 años (MaxData Pro 6100 iw). Se ejecuta en Ubuntu 14.10 (Utopic Unicorn).

Byte Commander
fuente
44
Cinta aislante negra?
oldfred
@oldfred Si hubiera estado interesado en ese tipo de solución, ¡habría publicado las preguntas en Lifehacks ! No, me gustaría una solución de software, si es posible. También tengo un script que apaga la pantalla con un acceso directo y también quiero agregarle los comandos.
Byte Commander
2
Tengo entendido que cada una de estas luces se maneja por separado por diferentes controladores. Es casi seguro que no existe una solución de "talla única".
Seth
Puedo ejecutar un montón de comandos, ese no es el problema. Estaré contento con cada LED que pueda controlar manualmente ... :-)
Byte Commander
1
Nota al margen relacionada con la privacidad: algunas luces indicadoras, especialmente para algunas cámaras, están conectadas a la alimentación. De esta manera, si la cámara está en uso, el LED siempre estará encendido. Esto evita que un usuario malintencionado desactive el LED a través del software y encienda la cámara sin su conocimiento.
Daniel

Respuestas:

5

Algunos de los LED son solo de hardware y no hay forma de cambiar su estado mediante programación.

Se puede acceder a los que se pueden controlar a través del sysfssistema de archivos virtual en /sys/class/leds/.

Si un LED en particular se puede controlar mediante programación o no depende del hardware en particular. Por ejemplo, mi máquina de escritorio tiene algunos LED, pero ninguno de ellos parece ser controlable. También experimenté en un par de computadoras portátiles y, aunque había algunas entradas debajo /sys/class/leds/, no pude controlar el estado de los LED, lo que significa, creo, que el controlador del kernel en particular no permite controlar manualmente el LED, que proporcionan una interfaz de solo lectura. Esto es lo que probé, sin efecto:

# 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 

Algo como lo anterior debería, en teoría, permitirle controlar los LED que son compatibles con los controladores del kernel para el hardware en particular. Si no hay soporte para controlar un LED particular en el núcleo, entonces, a menos que se escriba un módulo del núcleo, no hay mucho que pueda hacer.

Aquí hay más información sobre el tema en superusuario.

Aquí está la fuente final: documentación del núcleo

Sergey
fuente
1
Descargué los documentos y trabajaré en ellos. Gracias. Sin embargo, por supuesto agradecería una guía paso a paso de usted, si eso fuera posible ...
Byte Commander