Como possivelmente ativar e desativar fisicamente um monitor com um comando de software?

1

Existe uma maneira de software para pedir ao driver de vídeo para ligar e desligar um monitor fisicamente?

Algumas vezes (muitas vezes) a luz de fundo da tela do meu laptop não liga depois que o laptop é ativado da suspensão. Ele (a luz de fundo) também acabou de desligar espontaneamente uma vez. Em ambos os casos, tenho que desligar o computador, desconectar o cabo de alimentação e a bateria, conectá-los e ligá-los para redefinir a tela, pois ela não acenderá a luz de fundo sem todo esse procedimento. xbacklight não ajuda nem os botões de brilho para cima / baixo no teclado (embora ambos funcionem bem normalmente). Desativar / ativar a exibição nas configurações de exibição também não ajuda. Isso me deixa curioso se existe uma maneira de perguntar ao driver (Intel no meu caso) ou X para enviar algum tipo de comando de desligamento de baixo nível para o display desligá-lo completamente (como o botão liga / desliga em monitores discretos faz) e de volta, talvez uma coisa como isso poderia ajudar ...

UPDATE: Eu realmente acredito que estou usando o driver da Intel como sudo lshw -c video says configuration: driver=i915 latency=0 entre todo o resto. Não tenho certeza, mas acho que usei o driver genérico até recentemente (acabei de formatar o disco rígido e configurar um novo sistema do zero alguns dias atrás e não dei uma olhada em qual driver foi usado o antigo) e houve o mesmo problema com ele. Na verdade, isso acontece quando eu executo o Windows 7, então duvido que seja um problema de driver. Ele afeta até mesmo o estágio de inicialização do POST do BIOS anterior ao SO (se eu reiniciar após a falha do baclkight, até mesmo o logotipo do fabricante da inicialização é quase invisível). Estou apenas curioso para saber se existe uma maneira de tentar reiniciar o display com a necessidade de desligá-lo completamente desconectando a bateria. O laptop é DELL E5500, é bem antigo, mas funciona muito bem, especialmente após a atualização de HDD para SSD.

    
por Ivan 03.02.2018 / 07:04

2 respostas

2

Você pode instalar o pacote xset e tentar:

xset dpms force off

E se isso não funcionar, talvez ainda antes disso:

xset +dpms
    
por 03.02.2018 / 11:33
0

Isso pode ser uma interação entre muitos componentes do sistema, alguns que eu posso listar são: a versão do kernel do distribuidor, o módulo i915 do kernel, a versão X11 e o driver drm. Idealmente, você estaria procurando por um bug listado em relação a alguns desses componentes que mostrariam a melhor solução alternativa.

Está realmente funcionando? Você pode realmente fazer login no laptop de outro host com a tela desligada? Você pode ver algo semelhante na saída dmesg ?

[drm:intel_enable_lvds [i915]] *ERROR* timed out waiting for panel to power on

Algumas versões do driver drm eram conhecidas por terem problemas. Enquanto estava neste estado, eu poderia fazê-lo funcionar com xrandr alterando a saída. Verifique a saída sem argumentos, pode haver vários, e provavelmente o interno tem um nome começando com LVDS. No meu caso, é o LVDS-1, e tive a sorte de rodar esse script, atribuído a uma hotkey, após o login:

#!/bin/sh
sleep 1; DISPLAY=:0 xrandr --output LVDS-1 --off
sleep 1; DISPLAY=:0 xrandr --output LVDS-1 --auto

Atualização: agora relendo a parte que também se apaga espontaneamente, pode sugerir que é totalmente causada por hardware, e talvez não haja nada que um driver de software possa fazer - é, por acaso, o modelo do seu laptop propenso a aqueles problemas de BGA de superaquecimento / falha intermitentemente? Isso pode garantir uma fixação / substituição de hardware.

    
por 03.02.2018 / 09:02