Kennt jemand irgend eine Methode, mit der man auf einem Raspi mit HDMI-Anschluss feststellen kann, ob da ein Wiedergabegerät angeschlossen ist bzw. ob das an oder aus ist?
kommt darauf an, an einigen HDMI Pins gibt es eine 5V Spannung die man feststellen kann per Raspi Port mit Spannungs-teiler oder -wandler. Nicht jedes HDMI Kabel liefert alle Ports, nicht jeder Monitor gibt es aus meines Wissens.
Und dann gab es noch die Besonderheit, der Monitor muß eingeschaltet sein und das HDMI Signal ausgeben wenn der Raspi gebootet wird, hat man den Monitor später eingeschaltet gibt oder gab der Raspi kein HDMI aus, kann OS abhängig sein.
Man könnte versuchen, mittels ddcutil Monitor-Daten oder -Einstellungen zu lesen. Die Daten (EDID) sollte man auch lesen können, wenn der Monitor ausgeschaltet ist, die Einstellungen wie Kontrast eher nicht.
Diese (Fehler-)Meldungen hatte mein Monitor mal geliefert:
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 |
|
20 |
|
21 |
|
22 |
|
23 |
|
Danke für die bisherigen Antworten. Mein Problem sind genau zwar angesteckte, aber verspätet eingeschaltete Monitore/Beamer. Oft gibt es dann eine falsche Auflösung oder einen schwarzen Screen.
Ich würde gerne im Hintergrund z.B. alle 1 oder 2 Minuten eine Systemfunktion aufrufen, anhand deren Rückgabewert ich bei "vorher aus, jetzt an" einen Reboot auslösen kann ...
alle 1 oder 2 Minuten [...] Reboot auslösen
Weil mein Monitor immer der gleiche ist, kann ich X11 fest nageln:
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 |
|
20 |
|
21 |
|
22 |
|
23 |
|
24 |
|
25 |
|
26 |
|
cat /sys/class/drm/card0-HDMI-A-1/status
Man könnte versuchen, mittels ddcutil Monitor-Daten oder -Einstellungen zu lesen.
Oder mit get-edid.
Die Daten (EDID) sollte man auch lesen können, wenn der Monitor ausgeschaltet ist, die Einstellungen wie Kontrast eher nicht.
Tja, da kommen dann die Fallstricke:
Eigentlich sollte es so sein, daß der Speicher im Monitor (oder was auch immer) auch bei ausgeschaltetem Gerät auslesbar ist, wenn die lesende Seite (PC, Pi, ..) die nötige Versorgungsspannung bereit stellt.
Ich habe aber bei Problemen schon mal Monitore geöffnet und festgestellt, daß Eeproms/µC gar nicht mit der Vorsorungsspannung von HDMI usw. verbunden waren. Da hilft dann, zyklisch per Skript abzufragen.
Weil mein Monitor immer der gleiche ist, kann ich X11 fest nageln
Der Raspberry Pi nutzt Wayland, nicht Xorg.
Der Raspberry Pi nutzt Wayland, nicht Xorg.
Der Raspberry Pi ist Hardware. Ob darauf Wayland, Xorg oder keines davon läuft, hängt stark von der verwendeten Distribution, deren Version und Konfiguration ab.
Hmmm Ich hab vor einiger Zeit Mal mit einem raspi ein Fernseh Testtool gebastelt.. um den HDMI Status zu prüfen hab ich die cec Tools verwandt... Vielleicht Mal unter https://wiki.archlinux.org/title/HDMI-CEC schauen...
Gruß Pinguin
Der Raspberry Pi nutzt Wayland, nicht Xorg.
Hab hier auch so einen Monitor, der ausgeschaltet, oder wenn ein anderer Port als Quelle ausgewählt ist, kein EDID liefert.
Workaround (für Wayland) in der kernel-cmd-line:
video=HDMI-A-1:D
das "D" Steht für "Force Enable (Digital)", d.H. der Kernel geht davon aus, dass ein Monitor angeschlossen ist, auch wenn der zwischendurch mal das EDID abdreht.
Lässt sich auf
video=HDMI-A-1:1024x768@60D
erweitern, oder man speichert sich gleich das EDID in eine Datei und gibt ein
drm.edid_firmware=HDMI-A-1:edid/mein_komischer_beamer.bin
mit an.
Pfad relativ zu /usr/lib/firmware. Falls initrd, diese neu generieren, darauf achten dass das File da auch reinwandert.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.