Nein er hat Probleme wenn der TV beim start aus ist...LESEN!
Das HDMI durchschleifen im Standby geht fehlerfrei, der TV kriegt aber kein Handshake vom VDR...
Nein er hat Probleme wenn der TV beim start aus ist...LESEN!
Das HDMI durchschleifen im Standby geht fehlerfrei, der TV kriegt aber kein Handshake vom VDR...
Mit folgendem Script lässt sich die aktuelle Edid auslesen:
Leider ändert sich die erst nach "restart xorg-launcher". Auch die Erkennung im WebIf von yaVDR startet X einmal neu. So bekommt man also weder mit ob der TV ein- noch ob er ausgeschaltet wird. Ständig X neu zu starten ist ja wohl keine Lösung.
Ich habe nun auch einen alten Thread (Wie werden Display + Device -Info im WFE ermittelt?) gefunden. Aber nach ersten Lösungsversuchen kommt man hier auch nicht weiter und die Beträge driften ab.
Man müsste also wohl mal schauen was X beim Start tolles macht, um den Monitor zu erkennen.
Wer zu diesem Thema noch Tipps hat schreibe die gerne. So ganz will ich noch nicht aufgeben, aber wenn ich über HDMI nicht weiterkomme, werde ich als Notlösung mit PING arbeiten. Aber bitte nicht auch hier in solche oder Hardwarelösungen abdriften.
Frank
Der Versuch die EDID mit folgendem Befehl auszulesen klappt leider auch nicht:
DISPLAY=:1 get-edid|parse-edid
This is read-edid version 3.0.1. Prepare for some fun.
Attempting to use i2c interface
Looks like no busses have an EDID. Sorry!
Attempting to use the classical VBE interface
Performing real mode VBE call
Interrupt 0x10 ax=0x4f00 bx=0x0 cx=0x0
Function supported
Call successful
VBE version 300
VBE string at 0x11100 "NVIDIA"
VBE/DDC service about to be called
Report DDC capabilities
Performing real mode VBE call
Interrupt 0x10 ax=0x4f15 bx=0x0 cx=0x0
Function supported
Call successful
Monitor and video card combination does not support DDC1 transfers
Monitor and video card combination does not support DDC2 transfers
0 seconds per 128 byte EDID block transfer
Screen is not blanked during DDC transfer
Reading next EDID block
VBE/DDC service about to be called
Read EDID
Performing real mode VBE call
Interrupt 0x10 ax=0x4f15 bx=0x1 cx=0x0
Function supported
Call failed
The EDID data should not be trusted as the VBE call failed
Error: output block unchanged
Partial Read... Try again
I'm sorry nothing was successful. Maybe try some other arguments
if you played with them, or send an email to Matthew Kern <pyrophobicman@gmail.com>.
Hat dazu jemand eine Idee?
Klappt das bei euch?
Frank
Die möchtest ja nicht in "Hardwarelösungen abdriften", aber ich mache das ganz simpel mit einen CEC-Adapter.
TV aus:
TV während des Einschaltens:
TV eingeschaltet:
Hat dazu jemand eine Idee?
Klappt das bei euch?
Dem X-Server darf keine EDID aufgezwungen worden sein, wenn man die auslesen will - bei yaVDR gibt es dafür eine eigene minimale X-config, die genutzt wird, wenn man die Bildschirme übers WFE neu erkennen lässt: https://github.com/yavdr/yavdr…rg.conf.rescan/100_rescan
Ich denke es ist sinnvoller den X-Server damit zu starten und dann mit nvidia-xconfig die EDID auszulesen und in eine Datei zu schreiben - das müsste in etwa so gehen:
3PO
: Genausowas stelle ich mir vor aber ohne Hardware für 40EUR kaufen zu müssen, die ich ansonsten nicht brauche.
Ich hatte gehofft get-edid kann sowas, aber das klappt zumindest bei mir nicht.
Habe auch mal Alexanders Sachen gemacht. Es wird aber immer /etc/X11/xorg.conf.yavdr genommen. Also habe ich /etc/X11/xorg.conf.rescan entsprechend umbenannt. Aber es kommt keine EDID raus.
So recht weis ich nicht, was ich damit erreichen soll. Meinst du das get-edid ohne diese feste EDID funktioniert?
Frank
Geht es eventuell so, wenn man den Loglevel des X-Server hochdreht? http://kodi.wiki/view/Creating…rating_.26_using_edid.bin
So richtig habe ich noch nicht verstanden, was Du mit den EDID Daten anfangen willst?
Du willst doch den TV via HDMI ein- bzw. ausschalten, oder habe ich das falsch verstanden?
Das was Du brauchst, ist eine Steuerung via CEC. Leider aber können das Nvidia Karten nicht, auch die ganz aktuellen mit HDMI 2.0 nicht.
Deshalb wirst Du wohl einen CEC Adapter brauchen, oder eine Grafikkarte von einem Hersteller, der CEC unterstützt.
Ich habe das bei mir ein paar kleinen Script so gelöst, dass wenn der VDR eingeschaltet wird, der TV auch mit startet, jedoch nicht, wenn es sich um einen Timerstart, z.B. zur Aufnahme handelt.
Beim Herunterfahren, wird dann der TV auch mit ausgeschaltet.
Geht es eventuell so, wenn man den Loglevel des X-Server hochdreht? http://kodi.wiki/view/Creating…rating_.26_using_edid.bin
Ich habe vor Jahre mal ein Script gebastelt um die EDID Daten auszulesen:
Quotemein TV von LG ist seit einiger Zeit (erst yaVDR 0.5 jetzt 0.6.1) nicht mehr direkt sondern über einen Yamaha RX-V475 an den VDR (siehe Signatur) angeschlossen.
TV <- HDMI -> Receiver <- HDMI -> VDR
Seit dem habe ich folgendes Problem. Der Receiver läßt das HDMI-Signal auch in ausgeschaltetem Zustand durch. Außer bei Filmen bleibt er dies in der Regel auch. Wenn der TV vor dem VDR eingeschaltet wurde ist alles gut und es kommt ganz normal ab dem Booten ein Bild. Wenn der TV beim Hochfahren des VDR aus war, bleibt das Bild nach dem Einschalten des TVs schwarz.
Den TV möchte ich wie bisher per IR einschalten.
Ich muss nur irgendwie erkennen, ob der TV ein- oder ausgeschaltet ist, um den X-Server neu zu starten.
Ist der TV aus kommt die EDID vom Receiver.
Ist der TV an kommt die EDID vom TV.
Macht aber natürlich keinen Sinn, wenn ich X neu starten muss, um an die EDID zu kommen.
Frank
ohne Hardware für 40EUR kaufen zu müssen, die ich ansonsten nicht brauche
Es erhöht aber den WAF ungemein, wenn man den VDR (z.B. auch mit Fernbedienung) einschaltet und über CEC wird der TV eingeschaltet und auf den Eingang umgeschaltet, an dem der VDR hängt. Ich habe das ähnlich wie 3PO gelöst.
Edit: Voraussetzung ist natürlich, dass Dein Receiver im Standy das HDMI-Signal (mit CEC) durchlässt.
Eine andere Möglichkeit wäre vielleicht, mit einer Universalfernbedienung gleichzeitig VDR und TV ein-/umzuschalten (Makros). Das habe ich selbst noch nicht probiert.
Eine andere Möglichkeit wäre vielleicht, mit einer Universalfernbedienung gleichzeitig VDR und TV ein-/umzuschalten (Makros). Das habe ich selbst noch nicht probiert.
Habe ich früher auch so gemacht. Inzwischen suche ich mir den Film den ich sehen möchte auf Smartphone, oder Tablet aus und caste ihn zum Client. Der schaltet TV und AVR an und spielt den Film ab.
Gerald
Alles richtig. Aber ich nutze den TV nur als dummen Monitor. Außer dem Einschalter, der auf eine freie Taste der Universal-Fernbedienung programmiert ist, brauchen wir da nichts.
Nur gibt der TV eben kein Bild aus, wenn er nach dem VDR gestartet wird, weil der VDR wegen einer Aufnahme schon läuft.
Warum die Beschaffung der EDID nur durch Neustart des X-Servers funktioniert, hat sich mir noch nicht erschlossen.
Oder geht das generell nur, wenn der X-Server nicht läuft.
Frank
Alles richtig. Aber ich nutze den TV nur als dummen Monitor. Außer dem Einschalter, der auf eine freie Taste der Universal-Fernbedienung programmiert ist, brauchen wir da nichts.
Ich doch auch, ich brauche ja noch nicht mal den Einschalter.
Gerald
Hi !
Also eine aehnliche Kombi habe ich auch (Onkyo Receiver und Samsung TV) aber der VDR nimmt die edid vom Receiver und nicht die vom TV .... den Receiver hab ich eingestellt das er immer 1080p ausgibt.
Und bei der Erkennung im WF steht dort auch was mit dem Onkyo und nicht mit dem Samsung TV. Aber ich verstehe sinn und Zweck der Übung nicht mal den Receiver an und mal aus zu lassen, wozu hab ich ihn bzw. wozu lass ich ihn aus ?
Der VDR kann sich ja nur auf ein edid einschiessen.
Gruss Gerd
Nur mal so am Rande...vielleicht liest ja auch wer den Eingangspost...
Der TV zeigt kein Bild wenn der TV erst nach dem Start des VDR angeschaltet wird...unabhängig davon ob der Reciever aus oder an ist!
Und Sinn hat das schon den Reciever zum einfachem TV gucken aus zu lassen. Nachrichten klingen auch über 5.1 nicht besser und auch wenn Helene Fischer im TV leiert macht der Reciever dadurch die Musik nicht erträglicher...
Kurzum: der Mann hat ein Problem mit der Firmware des TVs welches es zu lösen gilt...ich muss mich da ausklinken da ich nicht so weit in die Configs reinblicke.
Dem X-Server darf keine EDID aufgezwungen worden sein, wenn man die auslesen will
Vielleicht ist dies der entscheidene Hinweis.
Ich habe mal im WebIf die Erkennung ohne TV laufen lassen und abgespeichert. Dann habe ich die feste EDID einfach auskommentiert.
Damit läuft alles wie bisher aber nun kann ich mit dem Befehl getNVdisplays den Status des TV abfragen.
TV an: 0:TV-1:0x00000200:LG Electronics LG TV
TV aus: 0:TV-1:0x00000200:Yamaha Corporation RX-V475
Damit habe ich mir ein kleines Script geschrieben, was nach dem X-Server gestartet wird:
#!/bin/bash
tv_ip="192.168.99.15"
export DISPLAY=:1
tv_on() {
tv=`getNVdisplays`
if [[ $tv == *"LG"* ]]
#if ping -c1 -w1 $tv_ip > /dev/null 2>&1
then
# sleep 1
echo "on"
else
echo "off"
fi
}
tv_state=$(tv_on)
while [ true ]
do
if [[ $tv_state == "on" ]]
then
if [[ $(tv_on) == "off" ]]
then
# echo "Der TV ist offline -> ausgeschaltet"
tv_state="off"
# else
# echo "Der TV ist online"
fi
else
if [[ $(tv_on) == "on" ]]
then
# echo "Der TV ist online -> restart xorg-launcher"
restart xorg-launcher
tv_state="on"
# else
# echo "Der TV ist offline"
fi
fi
sleep 1
done
author "Frank Jepsen"
description "CheckTV Script"
start on started xorg-launcher
respawn
post-start script
exec /usr/local/sbin/checktv &
end script
Damit komme ich erstmal klar.
Eine Sache macht mich allerdings noch stutzig. Wenn ich den TV bei laufendem VDR aus- und wieder einschalte ist das Bild weg (mit dem Script kommt es dann nach 5 Sekunden wieder).
Wenn ich das gleiche in Kodi mache ist das Bild ohne Hilfe wieder da. Hat Kodi da eigene X-Einstellungen? Wieso gibt es da kein Problem?
Frank
Hallo,
da ich nun auf yaVDR Ansible umsteige brauche ich mal wieder Hilfe bei der Anpassung der obigen Scripte.
Gibt es eine Alternative zu /usr/bin/getNVdisplays? Das gibt es bei yaVDR Ansible leider nicht.
Weis jemand was besseres als systemctl restart x@vt7.service statt restart xorg-launcher? Das funktioniert zwar, aber scheint mir doch eine relativ große Keule.
Wie baue ich das Script bei SystemD ein?
Gibt es eine Alternative zu /usr/bin/getNVdisplays?
Soweit ich das sehe brauchst du für das Skript nur den Namen der Displays aus den EDID-Infos - die kann man sich mit nvidia-xconfig holen (das arbeitet unabhängig von einem laufenden X-Server und stört sich auch nicht daran, wenn man für den X-Server eine EDID geladen hat, d.h. es zeigt immer den Ist-Zustand, nicht die erzwungene Monitor-Konfiguration):nvidia-xconfig --query-gpu-info | awk -F ': ' '/EDID Name/ {print $2}'
Weis jemand was besseres als systemctl restart x@vt7.service statt restart xorg-launcher? Das funktioniert zwar, aber scheint mir doch eine relativ große Keule.
Beide Befehle starten jeweils den X-Server neu. Solange du keinen anderen Weg findest, um den TV/Receiver dazu zu bringen etwas anzuzeigen (hast du mal Versucht mit xrandr oder nvidia-settings den Mode neu zu setzen?) wüsste ich nicht, wie man den Neustart des X-Servers umgehen kann.
Wie baue ich das Script bei SystemD ein?
Zum Beispiel als Systemd-Unit, die von x@vt7.service abhängt.
Und dann noch mit systemctl enable --now wuergaround.service aktivieren.
Mann, bist du immer schnell.
Ich bin auf folgende Lösung gekommen: get-edid 2>/dev/null|parse-edid 2>/dev/null|grep ModelName. Das liefert entweder ModelName "RX-V475" oder ModelName "LG TV".
Das Script sieht damit so aus: /usr/local/sbin/checktv
Leider funktioniert xrandr --output HDMI-0 --auto meist nur einmal. Also bin ich doch wieder bei systemctl restart x@vt7.service gelandet. Der lässt allerdings den yavdr-frontend abstürzen, was den VDR mit riss. Daher habe ich den VDR dann noch detached vor dem Restart. Das Frontend stürzt immer noch ab, aber der VDR überlebt es (siehe syslog.txt)
Einbinden in SystemD hat auch funktioniert und das Bild kommt trotz der "großen Keule" innerhalb von 1-2 Sekunden.