¿Cómo puedo poner mi pantalla HDMI dentro (y fuera de) modo de ahorro de energía?

Estoy usando una Raspberry Pi para ejecutar una pantalla de información en una oficina. Quiero que la pantalla esté en modo de ahorro de energía cuando esté fuera del horario comercial. Iba a usar cron para ejecutar algo al principio y al final del día, pero xset dpms force off no funciona.

He desactivado el protector de pantalla (para que la pantalla permanezca encendida durante el día) con la adición de xset s off , xset -dpms y xset s noblank en el /etc/xdg/lxsession/LXDE/autostart .

Aquí están los resultados de xset q :

 Keyboard Control: auto repeat: on key click percent: 0 LED mask: 00000000 XKB indicators: 00: Caps Lock: off 01: Num Lock: off 02: Scroll Lock: off 03: Compose: off 04: Kana: off 05: Sleep: off 06: Suspend: off 07: Mute: off 08: Misc: off 09: Mail: off 10: Charging: off 11: Shift Lock: off 12: Group 2: off 13: Mouse Keys: off auto repeat delay: 500 repeat rate: 33 auto repeating keys: 00ffffffdffffbbf fadfffefffedffff 9fffffffffffffff fff7ffffffffffff bell percent: 0 bell pitch: 400 bell duration: 100 Pointer Control: acceleration: 20/10 threshold: 10 Screen Saver: prefer blanking: no allow exposures: yes timeout: 0 cycle: 600 Colors: default colormap: 0x20 BlackPixel: 0x0 WhitePixel: 0xffff Font Path: built-ins DPMS (Energy Star): Standby: 600 Suspend: 600 Off: 600 DPMS is Disabled 

ACTUALIZACIÓN: xset s blank && xset +dpms && xset dpms force off la pantalla, pero no la pondrá en el modo de ahorro de energía. Después de leer muchos hilos, todavía no puedo corregir el time del sistema tampoco (creo que puede ser un problema de firewall) …

Esta pregunta realmente pertenece a raspberrypi.stackexchange.com porque es un problema específico de Raspberry Pi: el controller kernel framebuffer para Raspberry Pi no admite la function que X usa para poner el monitor en modo de suspensión:

https://github.com/raspberrypi/linux/issues/487

Hasta que se solucione este problema, no será posible que X ponga el monitor en modo de suspensión mediante DPMS.

Puede tener algo de suerte con el progtwig /opt/vc/bin/tvservice : tvservice -o apaga HDMI y tvservice -p debe volver a encender HDMI.

Disipando paths equivocados

En primer lugar, prácticamente todas las pantallas modernas admiten modos de suspensión. Además, xset dpms force off (u otras forms de decirle al server X) es la forma correcta (debajo de X) para apagar los monitores. Lo he usado durante años sin problemas.

En segundo lugar, la mención de que DPMS is Disabled solo proviene de su xset -dpms . Tan pronto como emite xset dpms force off u otra opción de xset relacionada con DPMS, se vuelve a habilitar, por lo que es normal que obtenga el mismo resultado con xset +dpms o sin xset +dpms .

Hipótesis

Ahora, usted escribió que ve "estática". Esta pantalla es compatible con las señales tradicionales de TV analógica, ¿verdad?

Una hipótesis es que el televisor, en lugar de irse a dormir, realmente cambia a TV analógica, y como no hay señal, muestra lo que se suele llamar "estático".

Prueba esa hipótesis

Aquí hay una opción para probar. Intenta una vez conectar otra pantalla, idealmente una que no admita TV analógica. Vea si esa pantalla va a dormir en xset dpms force off . Si es así, entonces la configuration está bien en el lado Pi.

Pruebe las variantes

Quizás los otros estados de video instruirán a la TV para que permanezca en el canal correcto pero con una networkingucción en el uso de energía. En lugar de xset dpms force off , testing estos:

 xset dpms force standby xset dpms force suspend 

Y mira si uno de esos produce lo que necesitas. Espere al less 10 segundos después de cada bash para ver qué hace. Al presionar cualquier tecla en el keyboard Pi se reanudará la visualización (de forma remota puede usar xset dpms force on ).

Llegar a producción

Si una de las variantes anteriores hace lo que necesita, ¡bien, por favor, comparta!

Si no es así y realmente necesita utilizar la pantalla original, consulte en los menus si puede de alguna manera desactivar las características de TV analógica.

Por favor comparte lo que aprendiste de estos bashs.

¿No funcionará vbetool ?

Suspender pantalla (dice físicamente el monitor para pasar al modo de espera): vbetool dpms suspend reanudar (sale del modo de espera): vbetool dpms on

Puede encender y apagar el HDMI por sí mismo.

  • HDMI encendido: /opt/vc/bin/tvservice -p

  • HDMI desactivado: /opt/vc/bin/tvservice -o

Más detalles sobre tvservice binary:

 # dpkg -S /opt/vc/bin/tvservice libraspberrypi-bin: /opt/vc/bin/tvservice # dpkg -s libraspberrypi-bin Package: libraspberrypi-bin Maintainer: Serge Schneider <serge@raspberrypi.org> Description: Miscellaneous Raspberry Pi utilities This package contains various utilities for interacting with the Raspberry Pi's VideoCore IV. Homepage: https://github.com/raspberrypi/firmware # /opt/vc/bin/tvservice Usage: tvservice [OPTION]... -p, --prefernetworking Power on HDMI with prefernetworking settings -e, --explicit="GROUP MODE DRIVE" Power on HDMI with explicit GROUP (CEA, DMT, CEA_3D_SBS, CEA_3D_TB, CEA_3D_FP, CEA_3D_FS) MODE (see --modes) and DRIVE (HDMI, DVI) -t, --ntsc Use NTSC frequency for HDMI mode (eg 59.94Hz rather than 60Hz) -c, --sdtvon="MODE ASPECT [P]" Power on SDTV with MODE (PAL or NTSC) and ASPECT (4:3 14:9 or 16:9) Add P for progressive -o, --off Power off the display -m, --modes=GROUP Get supported modes for GROUP (CEA, DMT) -M, --monitor Monitor HDMI events -s, --status Get HDMI status -a, --audio Get supported audio information -d, --dumpedid <filename> Dump EDID information to file -j, --json Use JSON format for --modes output -n, --name Print the device ID from EDID -h, --help Print this information 

(lee artículos publicados por personas que no tenían experiencia, tratando de venderle un sistema operativo diferente o tapa la falta de Energy Star de un dispositivo de porcelana, o no leyó el código fuente, todos los cuales no son materiales de lectura sugeridos) .

xset s on; O; xset + dpms

NO PUEDE hacer ambas cosas a less que desee problemas de supresión (como despertarse). ambos hacen el mismo trabajo de forma ligeramente diferente: SI interfieren entre sí. (RedHat Linux es famoso por instruir erróneamente a la gente sobre eso y enviar muchas distribuciones con ambas activadas por defecto, por lo que es debian)

cuando usas "xset dpms force off; sleep 2" tienes que dormir para que no se active al presionar Enter (asumiendo que estás haciendo esto usando tu keyboard, no un script)

en cuanto a HDMI, no estoy seguro si Energy Star es parte de la especificación de HDMI 1.0-2.x. pero si funciona 1/2, entonces tal vez lo sea.

linux y freeBSD son ingeniosos, pero si no eres "parte de un gran equipo" no es práctico pensar que puede ejecutar tu centro de entretenimiento en casa (controlando equipos de medios haciendo cosas específicas del hardware como Energy Star, compatibilidad de reproducción de hardware con MPEG verdadero (TV), etc.) . ellos tienen libs e iniciativas y ejemplos de dispositivos en funcionamiento, pero estas cosas son de corta vida (tienes que usar el mismo sistema operativo y el mismo dispositivo conocido como bueno, o "buena suerte")