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

20

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 cronpara ejecutar algo al principio y al final del día, pero xset dpms force offno funciona.

He inhabilitado el protector de pantalla (por lo que la pantalla permanecerá encendido durante el día) con la adición de xset s off, xset -dpmsy xset s noblanken el /etc/xdg/lxsession/LXDE/autostartarchivo.

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 dejará en blanco la pantalla, pero no la pondrá en modo de ahorro de energía. Después de leer muchos subprocesos, tampoco puedo obtener la hora correcta del sistema (creo que puede ser un problema de firewall) ...

shaun5
fuente
¿Recibe un error xseto no pasa nada? ¿También qué distribución? Si no funciona, supongo que ACPI no está compilado en el núcleo. Como diagnóstico, publique el resultado de xset q. Gracias.
Jivings
@Jivings: no hay error, la pantalla se vuelve estática. Antes de deshabilitar la supresión, la pantalla se quedaría en blanco (no estoy seguro si entró en modo de ahorro de energía). Estoy usando 2012-09-18-wheezy-raspbian con actualizaciones / mejoras de software / firmware.
Bueno. ¿Puedes editar tu pregunta con la salida de xset q?
Jivings
@jivings lo siento, estaba fuera de la ciudad, pero volví y actualicé la pregunta con la información que solicitaste.
En la parte inferior dice DPMS is disabled. Enciéndalo: xset +dpmsentonces sus comandos deberían funcionar ...
Jivings

Respuestas:

9

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

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

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

Es posible que tenga suerte con el /opt/vc/bin/tvserviceprograma: tvservice -oapaga HDMI y tvservice -pdebería encender HDMI nuevamente.

AGWA
fuente
2

Disipando caminos equivocados

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

Segundo, la mención DPMS is Disabledsolo viene de tu xset -dpms. Tan pronto como emita xset dpms force offu otra opción xset relacionada con DPMS, se vuelve a habilitar, por lo que es normal que obtenga el mismo resultado con o sin xset +dpms.

Hipótesis

Ahora, escribiste que ves "estático". Esta pantalla admite señales tradicionales de TV analógica, ¿verdad?

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

Prueba esa hipótesis

Aquí hay una opción para probar. Intente conectar una vez otra pantalla, idealmente una que no sea compatible con TV analógica. Vea si esa pantalla se apaga xset dpms force off. En caso afirmativo, la configuración está bien en el lado de Pi.

Probar variantes

Quizás los otros estados de video le indiquen al televisor que permanezca en el canal correcto pero con una reducción en el uso de energía. En lugar de xset dpms force off, prueba estos:

xset dpms force standby
xset dpms force suspend

Y vea si uno de esos produce lo que necesita. Espere al menos 10 segundos después de cada intento para ver qué hace. Al presionar cualquier tecla en el teclado 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, está bien, ¡comparta!

Si no es así y realmente necesita usar la pantalla original, vea en los menús si de alguna manera puede deshabilitar las funciones de TV analógica.

Comparte lo que aprendiste de estos intentos.

Stéphane Gourichon
fuente
1

No vbetoolfunciona?

Suspender pantalla (dice físicamente que el monitor pasa al modo de espera): vbetool dpms suspend Reanudar (sale del modo de espera):vbetool dpms on

CDuv
fuente
1
vbetool es solo x86, creo. Por lo tanto, no será de ayuda para ARM
Renan
0

Puede encender y apagar el HDMI mismo.

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

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

Más detalles en tvservicebinario:

# dpkg -S /opt/vc/bin/tvservice
libraspberrypi-bin: /opt/vc/bin/tvservice

# dpkg -s libraspberrypi-bin
Package: libraspberrypi-bin
Maintainer: Serge Schneider <[email protected]>
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, --preferred                   Power on HDMI with preferred 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 (e.g. 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
Alec Istomin
fuente
-2

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

xset s encendido; O xset + dpms

NO PUEDE hacer ambas cosas a menos que desee problemas de supresión (como despertarse). ambos hacen el mismo trabajo de manera ligeramente diferente: interfieren entre sí. (RedHat Linux es famoso por dar instrucciones erróneas a las personas sobre eso y enviar muchas distribuciones con ambas activadas de forma predeterminada, por lo que es debian)

cuando usas "xset dpms force off; sleep 2" tienes que dormir para que no se despierte presionando Enter (suponiendo que hagas esto usando tu teclado, no un script)

En cuanto a HDMI, no estoy seguro de si Energy Star es parte de la especificación HDMI 1.0-2.x. pero si funcionó 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 el hogar (controlando equipos de medios que hacen cosas específicas de hardware como Energy Star, soporte de reproducción de MPEG de hardware verdadero (TV), etc.) . sí tienen libs e iniciativas y ejemplos de dispositivos que funcionan, pero estas cosas son de corta duración (debe usar el mismo sistema operativo y el mismo dispositivo que se sabe que es bueno o "buena suerte")

dontsaywe
fuente