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

8

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

Eu tenho LEDs para CAPS, NUM e WiFi, que estão desativados de qualquer maneira. Mas quando está escuro, é muito irritante quando o LED indicador de uso do HDD está piscando o tempo todo. Há também um LED de alimentação vermelho / azul brilhante constante e um indicador de carga que gostaria de desligar.

Portanto, gostaria de escrever um script que desabilite (e outro que permita) esses LEDs, se isso for possível. Eles são controlados por software ou hardware? Meu laptop é um modelo de cerca de 10 anos sem nome (MaxData Pro 6100 iw). Ele está rodando no Ubuntu 14.10 (Utopic Unicorn).

    
por Byte Commander 18.02.2015 / 21:24

1 resposta

5

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

Aqueles que podem ser controlados podem ser acessados através do sistema de arquivos sysfs virtual em /sys/class/leds/ .

Se um determinado LED pode ser controlado programaticamente ou não, depende do hardware específico. Por exemplo, minha máquina de mesa tem alguns LEDs, mas nenhum deles parece ser controlável. Também experimentei alguns laptops e, embora houvesse algumas entradas em /sys/class/leds/ , não consegui controlar o status dos LEDs, o que significa, acredito, que o driver do kernel em particular não permite controlando manualmente os 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 que são suportados pelos drivers do kernel para o hardware em particular. Se não há suporte para controlar um determinado LED no kernel, então, além de escrever um módulo do kernel, não há muito o que fazer.

Veja mais informações sobre o assunto no superusuário.

Esta é a melhor fonte: documentação do kernel

    
por Sergey 21.02.2015 / 03:56