Wie kann ich mein HDMI-Display in den Energiesparmodus versetzen (und wieder deaktivieren)?


20

Ich verwende einen Raspberry Pi, um eine Informationsanzeige in einem Büro auszuführen. Ich möchte, dass sich das Display außerhalb der Geschäftszeiten im Energiesparmodus befindet. Ich cronwollte am Anfang und am Ende des Tages etwas ausführen, aber es xset dpms force offfunktioniert nicht.

Ich habe den Bildschirmschoner (so die Anzeige bleibt an während des Tages) mit dem Zusatz von deaktiviert xset s off, xset -dpmsund xset s noblankin der /etc/xdg/lxsession/LXDE/autostartDatei.

Hier sind die Ergebnisse von 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

UPDATE:xset s blank && xset +dpms && xset dpms force off Das Display wird ausgeblendet, aber nicht in den Energiesparmodus versetzt. Nachdem ich viele Threads gelesen habe, kann ich die Systemzeit immer noch nicht richtig einstellen (ich denke, das könnte ein Firewall-Problem sein) ...


Erhalten Sie einen Fehler xsetoder passiert nichts? Auch welche Distribution? Wenn es nicht funktioniert, würde ich vermuten, dass ACPI nicht in den Kernel kompiliert ist. Als Diagnose bitte die Ausgabe von posten xset q. Vielen Dank.
Jivings

@Jivings: kein Fehler, der Bildschirm wird statisch. Bevor ich die Ausblendung deaktivierte, wurde der Bildschirm tatsächlich ausgeblendet (nicht sicher, ob er in den Energiesparmodus geschaltet wurde). Ich verwende 2012-09-18-wheezy-raspbian mit Software- / Firmware-Updates / Upgrades.

Okay. Können Sie Ihre Frage mit der Ausgabe von bearbeiten xset q?
Jivings

@jivings sorry, ich war nicht in der Stadt, aber zurück und aktualisierte die Frage mit den Informationen, die Sie angefordert haben.

Am unteren Rand steht DPMS is disabled. Schalten Sie es ein: xset +dpmsdann sollten Ihre Befehle funktionieren ...
Jivings

Antworten:


9

Diese Frage gehört wirklich zurück zu raspberrypi.stackexchange.com, da es sich um ein Raspberry Pi-spezifisches Problem handelt: Der Kernel-Framebuffer-Treiber für den Raspberry Pi unterstützt nicht die Funktion, die X verwendet, um den Monitor in den Ruhezustand zu versetzen:

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

Bis dieses Problem behoben ist, kann X den Monitor nicht mit DPMS in den Energiesparmodus versetzen.

Möglicherweise haben Sie etwas Glück mit dem /opt/vc/bin/tvserviceProgramm: tvservice -oSchalten Sie HDMI aus und tvservice -psollten Sie HDMI wieder einschalten.


2

Falsche Pfade zerstreuen

Erstens unterstützen praktisch alle modernen Displays Schlafmodi. Außerdem ist xset dpms force off(oder eine andere Möglichkeit, den X-Server zu benachrichtigen) die richtige Möglichkeit (unter X), Monitore auszuschalten. Ich habe das jahrelang ohne Probleme benutzt.

Zweitens kommt die Erwähnung DPMS is Disablednur von Ihnen xset -dpms. Sobald Sie eine xset dpms force offandere DPMS-bezogene xset-Option ausgeben, wird diese wieder aktiviert, sodass es normal ist, dass Sie mit oder ohne dasselbe Ergebnis erhalten xset +dpms.

Hypothese

Nun haben Sie geschrieben, dass Sie "statisch" sehen. Dieses Display unterstützt herkömmliche analoge TV-Signale, oder?

Eine Hypothese besagt, dass der Fernseher nicht in den Ruhezustand wechselt, sondern auf analoges Fernsehen umschaltet. Da kein Signal vorhanden ist, wird das angezeigt, was normalerweise als "statisch" bezeichnet wird.

Testen Sie diese Hypothese

Hier ist eine Option zum Ausprobieren. Versuchen Sie einmal, ein anderes Display anzuschließen, idealerweise eines, das Analog-TV nicht unterstützt. Überprüfen Sie, ob das Display in den Energiesparmodus wechselt xset dpms force off. Wenn ja, ist das Setup auf der Pi-Seite in Ordnung.

Probieren Sie Varianten aus

Möglicherweise weisen die anderen Videozustände das Fernsehgerät an, auf dem richtigen Kanal zu bleiben, jedoch mit geringerem Stromverbrauch. xset dpms force offVersuchen Sie stattdessen Folgendes:

xset dpms force standby
xset dpms force suspend

Und sehen Sie, ob einer von ihnen das produziert, was Sie brauchen. Warten Sie nach jedem Versuch mindestens 10 Sekunden, um zu sehen, was er tut. Durch Drücken einer beliebigen Taste auf der Pi-Tastatur wird die Anzeige fortgesetzt (Sie können sie remote verwenden xset dpms force on).

Machen Sie sich auf den Weg zur Produktion

Wenn eine der obigen Varianten das tut, was Sie brauchen, dann teilen Sie es uns bitte mit!

Wenn dies nicht der Fall ist und Sie die ursprüngliche Anzeige wirklich verwenden müssen, sehen Sie in den Menüs nach, ob Sie die Analog-TV-Funktionen irgendwie deaktivieren können.

Bitte teilen Sie uns mit, was Sie aus diesen Versuchen gelernt haben.


1

Wird nicht vbetoolfunktionieren?

Bildschirm anhalten (sagt physikalisch, dass der Monitor in den Standby-Modus wechseln soll): vbetool dpms suspend Fortsetzen (beendet den Standby-Modus):vbetool dpms on


1
vbetool ist nur x86, denke ich. Daher hilft ARM nicht
Renan

0

Sie können den HDMI selbst ein- und ausschalten.

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

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

Weitere Details zur tvserviceBinärdatei:

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

# dpkg -s libraspberrypi-bin
Package: libraspberrypi-bin
Maintainer: Serge Schneider <serge@raspberrypi.org>
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

-2

(Sie lesen Artikel von Leuten, die keine Erfahrung haben, versuchen, Ihnen ein anderes Betriebssystem zu verkaufen oder den Mangel an Energy Star von einem China-Gerät zu vertuschen, oder Sie haben den Quellcode nicht gelesen - es wird nicht empfohlen, alle Materialien zu lesen.) .

xset s on; ODER ; xset + dpms

Sie können nicht beides tun, es sei denn, Sie möchten Ausblendungsprobleme (z. B. Aufwachen). beide machen den gleichen Job ein wenig anders - sie stören sich gegenseitig. (RedHat Linux ist berühmt dafür, dass es die Leute falsch informiert und viele Distributionen ausgeliefert hat, bei denen beide standardmäßig aktiviert sind, ebenso Debian.)

Wenn Sie "xset dpms force off; sleep 2" verwenden, müssen Sie schlafen, damit es nicht durch Drücken der Eingabetaste aufwacht (vorausgesetzt, Sie verwenden hierfür Ihre Tastatur, kein Skript).

Was HDMI angeht, bin ich mir nicht sicher, ob Energy Star Teil der HDMI 1.0-2.x-Spezifikation ist. aber wenn es 1/2 geklappt hat dann ist es vielleicht.

Linux und FreeBSD sind geschickt, aber wenn Sie nicht "Teil eines großen Teams" sind, ist es unpraktisch zu glauben, dass es Ihr Home-Entertainment-Center betreiben kann (Steuerung von Mediengeräten, die hardwarespezifische Funktionen wie Energy Star ausführen, Unterstützung für echte Hardware-MPEG-Wiedergabe (TV) usw.). . Sie haben zwar Bibliotheken, Initiativen und Beispiele für funktionierende Geräte - aber diese Dinge sind nur von kurzer Dauer (Sie müssen dasselbe Betriebssystem und dasselbe Gerät verwenden, von dem bekannt ist, dass es gut oder "viel Glück" ist).

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.