Das Ausschalten von Dual-Monitoren mit „xset dpms force off“ funktioniert nicht – warum?

Das Ausschalten von Dual-Monitoren mit „xset dpms force off“ funktioniert nicht – warum?

Ich möchte meine beiden Monitore ausschalten, indem ich Folgendes ausführe: xset dpms force offAber nur der primäre Monitor wird ausgeschaltet, während auf dem anderen nur ein „schwarzer Bildschirm“ angezeigt wird (als ob er ausgeschaltet wäre), aber er ist nicht ausgeschaltet. Die LED leuchtet immer noch grün und zeigt damit an, dass der Monitor eingeschaltet ist.

Antwort1

Was genau möchten Sie erreichen? Zur Verwaltung der Monitornutzung können/sollten Sie die Erweiterung randr verwenden, die xrandrin Skripten die Waffe der Wahl wäre.

xrandr -qzeigt alle Ausgänge Ihres Computers und einige Informationen zu angeschlossenen Monitoren an. Um einen Ausgang zu deaktivieren, würden Sie etwas wie eingeben xrandr --output=HDMI1 --off. In Ihrem Fall müssen Sie „HDMI1“ durch das ersetzen, was xrandr -qIhnen sagt, wie Ihre Ausgänge benannt sind. Wenn Ihr Ausgang deaktiviert ist, verwendet X diesen Monitor (überhaupt nicht) mehr und wechselt höchstwahrscheinlich in den Ruhezustand.

Wenn Sie den Monitor tatsächlich ausschalten möchten, besteht Ihr Problem darin, dass xsetweder weiß noch sich darum kümmert, wie viele Monitore Sie an Ihren Computer angeschlossen haben, da xsetmit X-Servern kommuniziert wird, nicht mit deren Komponenten und schon gar nicht mit Hardware. Dies bedeutet, xsetdass genau eine „dpms force off“-Anforderung gesendet wird und diese Anforderung vom X-Server (verarbeitet und) an einen Ihrer Monitore gesendet wird. Ich vermute, dass er sie an Ihren primären Monitor sendet, also an den, der mit dem Ausgang verbunden ist, der in der von angezeigten Liste als erstes erscheint xrandr -q. Das ist derselbe Monitor, auf dem Ihr Gnome-Panel läuft, wenn Sie Gnome verwenden.

Tatsächlich müssen Sie Ihre xsetAnfrage vermutlich zweimal stellen. Wenn das nicht sofort hilft, müssen Sie vermutlich explizit angeben, welcher Ihrer angeschlossenen Monitore der primäre ist und welcher nicht.

xrandrermöglicht Ihnen, den primären Ausgang/Monitor mithilfe der --primaryOption einzustellen. Wenn Ihre Ausgänge HDMI1und sind HDMI2, würde ich Folgendes versuchen:

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

Überprüfen Sie die Ausgabe xrandr -qund schreiben Sie ein Skript, das Ihre Monitore in der umgekehrten Reihenfolge ausschaltet, in der sie aufgelistet sind, also von unten nach oben. Der Grund dafür ist, dass (x)randr zwar Ausgaben beliebig zur Standardausgabe machen kann, ich aber nicht darauf vertrauen würde, dass es so einwandfrei funktioniert, insbesondere wenn Closed-Source-Treiber beteiligt sind. Indem Sie Ihre Monitore in umgekehrter Reihenfolge durchgehen, schalten Sie den „natürlichen“ primären Monitor zuletzt aus, und wenn etwas schief geht, ist die Verfügbarkeit des „natürlichen“ primären Monitors Ihre beste Chance auf einen voll funktionsfähigen Xserver.

Antwort2

Erläuterung der Frage: Ich vermute, Rox möchte seine Monitore ausschalten, wenn er weggeht (aber den Computer laufen lassen). Dies geschieht normalerweise, nachdem der Bildschirmschoner eine Weile schöne Muster gezeigt hat. Mit dem Befehl „xset dpms force off“ können Sie testen, ob alles funktioniert, ohne eine halbe Stunde warten zu müssen, bis der DPMS-Bildschirmschoner aktiviert wird. (Sie können das Timeout für DPMS-Ausschalten auch sehr kurz einstellen, aber das ist nur eine weitere Möglichkeit, den Test zu beschleunigen.)

Ich habe das gerade auf meinem System getestet. Es hat: 01:00.0 VGA-kompatibler Controller: Advanced Micro Devices [AMD] nee ATI RV620 LE [Radeon HD 3450] und wenn ich "xset dpms force off" eingebe, zeigen beide Monitore drei Sekunden lang "kein Signal" an und dann wird die LED gelb (d. h. Ruhemodus). "Bei mir funktioniert es"!

Also ... um herauszufinden, was in Ihrer Situation nicht stimmt: Können Sie die Monitore austauschen, um zu überprüfen, ob Ihr zweiter Monitor DPMS-fähig ist? Wenn das der Fall ist, könnte dies, wie ich vermute, ein Fehler sein. Wahrscheinlich ziemlich spezifisch für Ihren Chip/Ihre Software. Verwenden Sie die neueste Software? (z. B. Ubuntu 12.04).

verwandte Informationen