Apagar monitores duales con "xset dpms force off" no funciona, ¿por qué?

Apagar monitores duales con "xset dpms force off" no funciona, ¿por qué?

Me gustaría apagar mis monitores duales ejecutando: xset dpms force offpero solo el monitor principal se apaga mientras que el otro aparece una "pantalla negra" (como si estuviera apagado), pero no está apagado. El LED sigue brillando en verde, lo que indica que el monitor está encendido.

Respuesta1

¿Qué estás tratando de lograr exactamente? Para gestionar el uso del monitor, puede/debe utilizar la extensión randr, que xrandrsería el arma preferida en los scripts.

xrandr -qmuestra todas las salidas de su computadora y alguna información sobre los monitores conectados. Para deshabilitar una salida pondrías algo como xrandr --output=HDMI1 --off. En su caso, debe reemplazar "HDMI1" con lo que xrandr -qle indique el nombre de sus salidas. Con su salida deshabilitada, X ya no usa este monitor (en absoluto) y lo más probable es que entre en estado de suspensión.

Si realmente quieres que el monitor se apague, tu problema es que xsetno sabe ni le importa cuántos monitores tienes conectados a tu computadora, porque xsethabla con Xservers, no con sus componentes y definitivamente no con el hardware. Esto significa que xsetenvía exactamente una solicitud de "desactivación forzada de dpms" y esa solicitud es (procesada y) enviada a uno de sus monitores por el Xserver. Supongo que lo envía a su monitor principal, es decir, al que está conectado a la salida que aparece primero en la lista mostrada por xrandr -q. Ese es el mismo monitor en el que se encuentra tu panel de gnome, si estás usando gnome.

De hecho, supongo que debe realizar su xsetsolicitud dos veces. Si eso no ayuda de inmediato, supongo que debe ser explícito sobre cuál de los monitores conectados es principal y cuál no.

xrandrle permite configurar la salida/monitor principal mediante el uso de la --primaryopción. Si sus resultados son HDMI1y HDMI2, intentaría:

xrandr --output HDMI2 --primary
xset dpms force off
xrandr --output HDMI1 --primary
xset dpms force off

Verifique el resultado xrandr -qy escriba un script que apague sus monitores en el orden inverso al que están listados, es decir, de abajo hacia arriba. La razón de esto es que, si bien se supone que (x)randr puede hacer que las salidas sean arbitrariamente la salida predeterminada, no confiaría/no confiaría en que funcione tan perfectamente, especialmente si hay controladores de código cerrado involucrados. Al trabajar con sus monitores en orden inverso, apaga el monitor primario "natural" al final y, si algo sale mal, tener el monitor primario "natural" disponible es su mejor oportunidad para tener un Xserver completamente funcional.

Respuesta2

Aclaración de la pregunta: supongo que Rox quiere apagar sus monitores cuando se vaya (pero dejar la computadora encendida). Esto normalmente sucede después de que el protector de pantalla ha mostrado patrones bonitos por un tiempo. Usar el comando "xset dpms force off" es una manera de poder probar si las cosas están funcionando sin tener que esperar media hora para que se active el protector de pantalla DPMS. (También puede configurar el tiempo de espera para que DPMS esté apagado muy corto, pero esa es sólo otra forma de acelerar las pruebas).

Acabo de probar esto en mi sistema. Tiene: Controlador compatible con VGA 01:00.0: Advanced Micro Devices [AMD] nee ATI RV620 LE [Radeon HD 3450] y cuando escribo "xset dpms force off" ambos monitores muestran "sin señal" durante tres segundos y luego encienden el LED ámbar (es decir, modo de suspensión). "esto funciona para mi"!

Entonces... Para descubrir qué está mal en su situación: ¿puede intercambiar monitores para verificar que su segundo monitor sea compatible con DPMS? Si ese es el caso, como espero, podría ser un error. Probablemente bastante específico para su chip/software. ¿Está ejecutando el software más reciente? (por ejemplo, ubuntu 12.04).

información relacionada