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 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 -dpms
y xset s noblank
en el /etc/xdg/lxsession/LXDE/autostart
archivo.
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) ...
fuente
xset
o 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 dexset q
. Gracias.xset q
?DPMS is disabled
. Enciéndalo:xset +dpms
entonces sus comandos deberían funcionar ...Respuestas:
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/tvservice
programa:tvservice -o
apaga HDMI ytvservice -p
debería encender HDMI nuevamente.fuente
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 Disabled
solo viene de tuxset -dpms
. Tan pronto como emitaxset dpms force off
u otra opción xset relacionada con DPMS, se vuelve a habilitar, por lo que es normal que obtenga el mismo resultado con o sinxset +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: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.
fuente
No
vbetool
funciona?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
fuente
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
tvservice
binario:fuente
(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")
fuente