Desativar monitores duplos com “xset dpms force off” não funciona - por quê?

4

Gostaria de desativar meus monitores duplos executando: xset dpms force off mas apenas o monitor primário está sendo desligado enquanto o outro apenas recebe uma "tela preta" (como se estivesse desligado) mas não está desligado. O led ainda está brilhando em verde, indicando que o monitor está ligado.

    
por Rox 03.07.2012 / 09:48

2 respostas

3

O que exatamente você está tentando realizar? Para gerenciar o uso do monitor, você pode / deve usar a extensão randr, em que xrandr seria a arma escolhida nos scripts.

xrandr -q mostra todas as saídas do seu computador e algumas informações sobre os monitores conectados. Para desabilitar uma saída, você colocaria algo como xrandr --output=HDMI1 --off . No seu caso você tem que substituir "HDMI1" por qualquer xrandr -q informando suas saídas. Com a saída desativada, o X não usa mais esse monitor (de jeito nenhum) e provavelmente entrará no estado de suspensão.

Se você realmente quiser que o monitor desligue, o problema é que xset não sabe nem se importa com quantos monitores você conectou ao seu computador, porque xset fala com Xservers, não com seus componentes e definitivamente não hardware. Isso significa que xset envia exatamente uma solicitação "dpms force off" e essa solicitação é (processada e) enviada para um dos seus monitores pelo Xserver. Eu acho que ele envia para o seu monitor primário, ou seja, aquele conectado à saída que aparece em primeiro lugar na lista mostrada por xrandr -q . Esse é o mesmo monitor em que o seu painel do gnome está ativo, se você estiver usando o gnome.

Na verdade, acho que você precisa enviar sua solicitação xset duas vezes. Se isso não ajudar imediatamente, eu suponho que você precisa ser explícito sobre o problema de quais monitores anexados são primários e quais não são.

xrandr permite que você defina a saída / monitor principal pelo uso da opção --primary . Se suas saídas forem HDMI1 e HDMI2 , tentarei:

xrandr --output HDMI2 --primary
xset dpms force off
xrandr --output HDMI1 --primary
xset dpms force off

Verifique a saída de xrandr -q e escreva um script que desligue seus monitores na ordem inversa em que eles estão, de baixo para cima. A razão para isso é que, enquanto o randr (x) é supostamente capaz de fazer as saídas arbitrariamente a saída padrão eu não / não confio para que funcione de forma impecável, especialmente se houver drivers de código fechado envolvidos. Ao trabalhar com seus monitores em ordem inversa, você desliga o monitor primário "natural" por último e, se as coisas derem errado, ter o monitor primário "natural" disponível é a sua melhor chance de ter um Xserver totalmente funcional.

    
por 05.07.2012 / 08:40
0

Esclarecimento da questão: Eu estou supondo que Rox quer desligar seus monitores quando ele vai embora (mas deixa o computador ligado). Isso normalmente acontece depois que o protetor de tela mostra padrões bonitos por um tempo. Usar o comando "xset dpms force off" é uma forma de testar se as coisas estão funcionando sem ter que esperar meia hora para que o protetor de tela DPMS seja acionado. (Você também pode definir o tempo limite para DPMS muito curto, mas isso é apenas outra maneira de acelerar o teste).

Acabei de testar isso no meu sistema. Tem: 01: 00.0 Controlador compatível com VGA: Advanced Micro Devices [AMD] nee ATI RV620 LE [Radeon HD 3450] e quando eu digito "xset dpms force off", ambos os monitores mostram "sem sinal" por três segundos e depois ligam o led âmbar (ou seja, o modo sleep). "funciona para mim"!

Então ... Para descobrir o que está errado na sua situação: Você pode trocar monitores para verificar se seu segundo monitor é compatível com DPMS? Se for esse o caso, como eu esperava, isso pode ser um bug. Provavelmente bastante específico para o seu chip / software. Você está executando o software mais recente? (por exemplo, o Ubuntu 12.04).

    
por 19.07.2012 / 10:04