O comando xset dpms não está desligando o monitor

O comando xset dpms não está desligando o monitor

Estou com um problema com esse comando: xset dpms force off. Deixa a tela preta, mas não desliga nem suspende (com comando suspend) o monitor.

O comando 'xset -q'mostra que o DPMS está habilitado no meu monitor.

Estou usando Raspberry Pi com Raspbian e o monitor está conectado com cabo HDMI - DVI (e os pinos que transferem conexões de dados estão funcionando).

Você pode me ajudar, talvez me diga onde encontrar a resposta ou alguns registros? Talvez exista em algum lugar um arquivo de configuração que contenha informações sobre a quantidade de energia que está sendo enviada ao monitor quando ele está em stand-by, ativado ou desligado?

Encontrei essa solução:http://shallowsky.com/linux/x-screen-blanking.html , mas não consigo instalar o VBETOOL no meu computador porque ele não possui portas PCI (e a pasta /pci).

Responder1

Descobri que esse problema específico do Raspberry Pi foi discutido nesteemitir com algumas soluções alternativas.

O driver framebuffer no pi implementa ou não o ioctl FBIOBLANK apropriado para desligar o vídeo do monitor.

A solução alternativa é usar o tvservicecomando para desligar os sinais de vídeo e, eventualmente, o monitor deverá desligar. No entanto , há um pequeno problema quando você tvserviceliga o vídeo novamente, e você também precisa solucionar isso, usando chvtpara sair do X11 para o terminal virtual do console e voltar novamente.

Demonstração:

sudo tvservice  -o # turn off video
sleep 5
sudo tvservice  -p # turn on video
whichvt=$(sudo fgconsole) # which vt are we on
let othervt=which==1?2:1
sudo chvt $othervt; sudo chvt $whichvt

Responder2

Nas versões atuais do raspbian, essas soluções alternativas não são mais necessárias, o recurso dpms foi adicionado aos drivers. Único problema: está desativado por padrão. Você precisa colocar

hdmi_blanking=1

em seu /boot/config.txt para ativar. A documentação oficial ainda não foi atualizada para incluir essa configuração, por isso é um pouco difícil de encontrar.

Responder3

A outra maneira é usar:

vcgencmd display_power 0
vcgencmd display_power 1

É isso.

Esta é uma maneira mais eficiente. Não requer toda a reinicialização do framebuffer e não altera a resolução. Principalmente, é mais rápido que o tvservice. A princípio retornou um erro, mas atualizei o firmware no RPi com rpi-update e após reiniciar funcionou.

informação relacionada