É possível desativar temporariamente os LEDs de um notebook? (HDD, Energia, Carregamento)

9

Minha pergunta é se é possível executar um comando do terminal (ou qualquer outra coisa) para desativar os LEDs indicadores de um laptop.

Tenho LEDs para CAPS, NUM e WiFi que estão desligados de qualquer maneira. Mas quando está escuro, é muito irritante quando o LED indicador de uso do HDD pisca o tempo todo.
Há também um LED de energia azul / vermelho brilhante e um indicador de carga que eu gostaria de desligar.

Então, eu gostaria de escrever um script que desative (e outro que habilite) esses LEDs, se isso for possível. Eles são controlados por software ou hardware? Meu laptop é um modelo sem nome de cerca de 10 anos (MaxData Pro 6100 iw). Está sendo executado no Ubuntu 14.10 (Utopic Unicorn).

Byte Commander
fonte
4
Fita isolante preta?
oldfred
@oldfred Se eu estivesse interessado nesse tipo de solução, eu teria postado as perguntas no Lifehacks ! Não, eu gostaria de uma solução de software, se possível. Também tenho um script que desliga a tela com um atalho e também quero adicionar os comandos.
Byte Commander
2
Meu entendimento é que cada uma dessas luzes é gerenciada separadamente por diferentes drivers. Quase certamente não existe uma solução "tamanho único".
Seth
Eu sou capaz de executar um monte de comandos, que não é o problema. Ficarei feliz com todos os LEDs que eu puder controlar manualmente ... :-)
Byte Commander
1
Nota lateral relacionada à privacidade: algumas luzes indicadoras, principalmente para algumas câmeras, estão conectadas à energia. Dessa forma, se a câmera estiver em uso, o LED sempre estará aceso. Isso evita que um usuário mal-intencionado desative o LED via software e ligue a câmera sem o seu conhecimento.
Daniel

Respostas:

5

Alguns dos LEDs são apenas de hardware e não há como alterar seu status programaticamente.

Os que podem ser controlados podem ser acessados ​​através do sysfssistema de arquivos virtual em /sys/class/leds/.

Se um LED específico pode ser controlado programaticamente ou não depende do hardware específico. Por exemplo, minha máquina de mesa possui alguns LEDs, mas nenhum deles parece ser controlável. Também experimentei alguns laptops e, embora houvesse algumas entradas /sys/class/leds/, não consegui controlar o status dos LEDs, o que significa, penso eu, que o driver do kernel em particular não permite controlar manualmente o LEDs, fornecendo uma interface somente leitura. Aqui está o que eu tentei, sem efeito:

# 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 parecido com o acima deve, em teoria, permitir que você controle os LEDs suportados pelos drivers do kernel para o hardware específico. Se não houver suporte para controlar um LED específico no kernel, então, antes de escrever um módulo do kernel, não há muito o que fazer.

Aqui está mais informações sobre o assunto em superusuário.

Aqui está a fonte definitiva: documentação do kernel

Sergey
fonte
1
Eu baixei os documentos e vou trabalhar com eles. Obrigado. No entanto, é claro que eu apreciaria um guia passo a passo de você, se isso fosse possível ...
Byte Commander