El comando xset dpms no apaga el monitor

El comando xset dpms no apaga el monitor

Tengo un problema con este comando: xset dpms force off. Pone la pantalla en negro, pero no apaga ni suspende (con el comando de suspensión) el monitor.

El comando 'xset -q'muestra que DPMS está habilitado en mi monitor.

Estoy usando Raspberry Pi con Raspbian y el monitor está conectado con un cable hdmi - DVI (y los pines que transfieren las conexiones de datos están funcionando).

¿Puedes ayudarme, tal vez decirme dónde encontrar la respuesta o algunos registros? ¿Quizás haya un archivo de configuración en alguna parte que contenga información sobre la cantidad de energía que se envía al monitor cuando está en espera, habilitado o apagado?

Encontré esa solución:http://shallowsky.com/linux/x-screen-blanking.html , pero no puedo instalar VBETOOL en mi computadora porque no tiene puertos PCI (ni carpeta /pci).

Respuesta1

Encontré que este problema específico de Raspberry Pi se discutió en esteasunto con algunas soluciones.

El controlador framebuffer en el pi implementó o no el ioctl FBIOBLANK apropiado para apagar el monitor en video.

La solución alternativa es utilizar el tvservicecomando para apagar las señales de vídeo y, finalmente, el monitor debería apagarse. Sin embargo , hay un pequeño problema cuando usas tvservicepara volver a encender el video, y también debes solucionarlo, usando chvtpara salir de X11 a la terminal virtual de la consola y luego regresar.

Manifestación:

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

Respuesta2

En las versiones actuales de raspbian, estas soluciones ya no son necesarias; se ha agregado la capacidad dpms a los controladores. El único problema: está desactivado de forma predeterminada. necesitas poner

hdmi_blanking=1

en su /boot/config.txt para habilitarlo. La documentación oficial aún no se ha actualizado para incluir esta configuración, por lo que es un poco difícil de encontrar.

Respuesta3

La otra forma es utilizar:

vcgencmd display_power 0
vcgencmd display_power 1

Eso es todo.

Esta es una forma más eficiente. No requiere toda la reinicialización del framebuffer y no cambia la resolución. Principalmente, es más rápido que el servicio de televisión. Al principio, devolvió un error, pero actualicé el firmware en RPi con rpi-update y después de reiniciar, funcionó.

información relacionada