Der Befehl xset dpms fährt den Monitor nicht herunter

Der Befehl xset dpms fährt den Monitor nicht herunter

Ich habe ein Problem mit diesem Befehl: xset dpms force off. Der Bildschirm wird schwarz, der Monitor wird jedoch weder heruntergefahren noch in den Ruhezustand versetzt (mit dem Suspend-Befehl).

Der Befehl 'xset -q'zeigt, dass DPMS in meinem Monitor aktiviert ist.

Ich verwende Raspberry Pi mit Raspbian darauf und der Monitor ist mit einem HDMI-DVI-Kabel angeschlossen (und die Pins, die Datenverbindungen übertragen, funktionieren).

Können Sie mir bitte helfen und mir vielleicht sagen, wo ich die Antwort oder einige Protokolle finden kann? Vielleicht gibt es irgendwo eine Konfigurationsdatei, die Informationen über die Energiemenge enthält, die an den Monitor gesendet wird, wenn er im Standby-Modus, aktiviert oder ausgeschaltet ist?

Ich habe diese Lösung gefunden:http://shallowsky.com/linux/x-screen-blanking.html , aber ich kann VBETOOL nicht auf meinem Computer installieren, da er keine PCI-Anschlüsse (und keinen /pci-Ordner) hat.

Antwort1

Ich fand, dass dieses Himbeer-Pi-spezifische Problem hier diskutiert wurdeAusgabe mit einigen Workarounds.

Der Framebuffer-Treiber auf dem Pi implementiert das entsprechende ioctl FBIOBLANK, um den Monitor auf Video auszuschalten, oder hat dies nicht getan.

Die Problemumgehung besteht darin, den tvserviceBefehl zu verwenden, um die Stromversorgung der Videosignale auszuschalten. Schließlich sollte sich der Monitor ausschalten. Es gibt tvservicejedoch ein kleines Problem, wenn Sie die Videostromversorgung wieder einschalten. Auch das müssen Sie umgehen, indem Sie chvtvon X11 in das virtuelle Konsolenterminal wechseln und dann wieder zurück.

Demo:

sudo tvservice  -o # turn off video
sleep 5
sudo tvservice  -p # turn on video
whichvt=$(sudo fgconsole) # which vt are we on
let othervt=which==1?2:1
sudo chvt $othervt; sudo chvt $whichvt

Antwort2

Bei aktuellen Versionen von Raspbian sind diese Workarounds nicht mehr erforderlich, die DPMS-Fähigkeit wurde den Treibern hinzugefügt. Einziges Problem: Sie ist standardmäßig deaktiviert. Sie müssen

hdmi_blanking=1

in Ihrer /boot/config.txt, um sie zu aktivieren. Die offizielle Dokumentation wurde noch nicht aktualisiert, um diese Einstellung aufzunehmen, daher ist sie etwas schwer zu finden.

Antwort3

Die andere Möglichkeit ist die Verwendung von:

vcgencmd display_power 0
vcgencmd display_power 1

Das ist es.

Dies ist ein effizienterer Weg. Es erfordert keine Neuinitialisierung des gesamten Framebuffers und ändert die Auflösung nicht. Vor allem ist es schneller als tvservice. Zuerst gab es einen Fehler zurück, aber ich habe die Firmware bei RPi mit rpi-update aktualisiert und nach einem Neustart funktionierte es.

verwandte Informationen