Zusammenfassung Intel VAAPI & edid.bin

  • Die xorg.conf hat keinen Einfluss darauf, ob ein Bildschirm als verbunden erkannt wird oder nicht (IIRC war das kontraproduktiv die EDID mit Intel-Grafik in der xorg-Konfiguration zu setzen) - das erledigt der Kernel mit dem DRM-Subsystem.


    Wichtig sind die Parameter, die man dem Kernel mitgibt - also die EDID (die man in die initramfs kopieren lassen muss) und der Eintrag, der dafür sorgt, dass ein bestimmter Ausgang als verbunden gewertet werden soll.


    Bei yavdr-ansible fehlen da noch ein paar Bausteine im Playbook, so dass man das zu Fuß erledigen muss:


    Um die EDID-Dateien ins initramfs zu bekommen kannst du so ein Hook-Skript nutzen (Datei ausführbar machen und außerdem den Ordner /lib/firmware/edid) anlegen:


    Für die richtigen Anschlussnamen wäre bei einer yavdr-ansible Installation der Inhalt der /etc/ansible/facts.d/drm.fact interessant - da steht drin, wie der Anschluss und die dazugehörige EDID heißt.


    Bei den Boot-Optionen in der /etc/default/grub muss man dann noch diese Boot-Parameter mit den jeweiligen Variablen aus der Datei ergänzen:

    video={{ drm.primary.drm_connector }}:D drm.edid_firmware={{ drm.primary.drm_connector }}:edid/{{ drm.primary.edid }}"

    Und danach das initramfs und grub aktualisieren lassen.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • wozu den radeon Treiber, so wie ich das sehe ist auf meinem nuc nur das i915 geladen?


    mit welchem Befehl lässt das du die initrd neu bauen, den für grub reicht ein "update grub"?


    Dank dir.

    CKone: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G540, 2x 2GB Kingston DDR3, Zotac GT630 1GB, S2-1600, Ocz Agility 3 60GB, LG GH24NS DVD, 15.6" Selbstbau TFT, Harmony 665, CIR Selbstbau - das Ganze im Silverstone SST-SG03B
    CKtwo: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G1610, 2x 2GB Corsair DDR3, Zotac GT630 1GB, TT S2-1600, Ocz Vertex 2 50 GB, 92 Kanal Seduatmo, Harmony 665, atric USB
    CKthree: yavdr-ansible/22.04 LTS/2.6.1/kodi19.3 auf Intel NUC, Celeron J4005, UHD Graphics 600, 4GB Crucial DDR4, Ocz Vertex2 50 GB, Harmony 350

    PowerEdge: Ubuntu Server 16.04 LTS / VDR 2.4.1 auf Dell PowerEdge T20, Xeon E3-1225 v3, 16GB ECC DDR3, 2x Cine S2 V6 mit Duoflex, Samsung 840 EVO 120GB, 3x WD White WD80EZAZ 8TB in SW Raid5



  • mit welchem Befehl lässt das du die initrd neu bauen, den für grub reicht ein "update grub"?

    sudo update-initramfs -u -k all oder eben den spezifischen aktuellen Kernel sudo update-initramfs -u -k $(uname -r)

    HowTo: APT pinning

  • Danke an Euch seahawk1986 und fnu.


    Leider funktioniert es bei mir immer noch nicht und ich bin erst jetzt dazu gekommen, das nochmal systematisch durchzutesten:


    Ich habe alle Änderungen nochmal rückgängig gemacht und auch das initiale install ansible skript laufen lassen.

    Die Installation lief direkt am TV als Monitor, die /etc/X11/xorg.conf.d/20-intel.conf wurde wieder erzeugt und eine edid.bin abgelegt: /etc/X11/edid.DP-1.bin


    Die /etc/ansible/facts.d/drm.fact schaut so aus:


    Daraufhin habe ich folgenden Eintrag in der /etc/default/grub gemacht:

    Code
    GRUB_CMDLINE_LINUX="video=DP-1:D drm.edid_firmware=DP-1:edid/edid.DP-1.bin"


    Dazu dann das Hook-Skript von oben /etc/initramfs-tools/hooks/include-edid-data angelegt, ausführbar gemacht und auch geschaut, dass das Verzeichnis /lib/firmware/edid vorhanden ist. Da landet dann später durch das Skript auch die edid.DP-1.bin drin, das habe ich geprüft.


    Dann noch sudo update-initramfs -u -k all und sudo update-grub


    Nach einem (bzw. auch mehreren) reboots bekomme ich allerdings kein Bild.

    Und zwar egal ob der TV beim Booten an ist oder aus. Kein Bild mehr.


    Folgende Ausgabe (bei ausgeschaltetem TV) deutet für mich darauf hin, dass der Mechanismus grundsätzlich funktioniert:


    Code
    xrandr -d :0
    
    Screen 0: minimum 8 x 8, current 1024 x 768, maximum 32767 x 32767
    DP1 connected primary (normal left inverted right x axis y axis)
       1920x1080_50  50.00 +
    VIRTUAL1 disconnected (normal left inverted right x axis y axis)

    Allerdings, wie gesagt, kein Bild.


    Ich hänge nochmal das Xorg.log an, ich kann da allerdings nichts erkennen, was auf die Ursache hindeutet.


    Hat jemand noch eine Idee was ich falsch mache?

    Dateien

    VDR1: Asus M3A78-EM, AMD Athlon 5050e, Digital Devices Cine S2, NVidia GeForce GT 610, easyVDR 3.0.0-stable

    VDR2: Asus M3N78-EM, AMD Athlon II X2 235e, TechnoTrend WinTV Nova S2-1600, NVidia GeForce GT 610, easyVDR 3.0.0-stable

    Aktueller Test-VDR: Intel NUC10i3FNHN2, Sundtek SkyTV Ultimate Dual S2, yavdr-ansible 0.7

  • Kannst du bitte mal die EDID anhängen? Mich wundert im Log von Xorg, dass die erkannten Modes alle die Frequenz 0 im Namen haben.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Nach einem (bzw. auch mehreren) reboots bekomme ich allerdings kein Bild.

    Und zwar egal ob der TV beim Booten an ist oder aus. Kein Bild mehr.

    Ich habe gerade das Playbook so erweitert, dass es die Bildschirmkonfiguration für initramfs/grub automatisch vornimmt, wenn man ansible die Variable intel_set_boot_edid: true mit gibt (siehe https://github.com/yavdr/yavdr…focal/group_vars/all#L160) - zumindest auf meinem Testsystem klappt das wie erwartet (und hoffentlich klappt mein Ansatz diese EDID zur Laufzeit wieder loszuwerden, damit Änderungen an der Bildschirm-Konfiguration erkannt werden, wenn man das Playbook noch mal laufen lässt)


    Ansonsten: Welche Kernel-Version hast du? Sieht man im Log des VDR Hinweise darauf, dass die Initialisierung der Ausgabe nicht klappt (am besten mal die Ausgabe von journalctl -b -l zeigen)?

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Hier einige Infos:


    Ich habe dann mal 3 unterschiedliche Start-Szenarien durchgespielt:


    1. Start des VDR ohne EDID als Kernel-Parameter -> TV beim Start an -> Bild vorhanden

    Ausgabe journalctl -b -l: journal_ohne_edidkernel_tvan_bild_ok.txt


    2. Start des VDR mit EDID als Kernel-Parameter -> TV beim Starten AN -> kein Bild vorhanden

    Ausgabe journalctl -b -l: journal_edidkernel_tvan_bild_nok.txt


    3. Start des VDR mit EDID als Kernel-Parameter -> TV beim Starten AUS -> kein Bild vorhanden

    Ausgabe journalctl -b -l: journal_edidkernel_tvaus_bild_nok.txt



    Die Ausgabe von xrandr ist in allen drei Szenarien unterschiedlich, auch bei 1 und 2.


    Im Log sind für die Szenarien 2 und 3 viele Warnungen und Meldungen drin, die darauf hindeuten, dass da was nicht stimmt.

    Allerdings muss ich zugeben, dass ich mit der Interpretation überfordert bin.


    Was ich dazu sagen muss, dass ich diese Tests mit einem AV-Receiver zwischen VDR und TV gemacht habe. Bei den Tests vor ein paar Tagen hing der TV direkt am VDR. Das Resultat ist aber in beiden Fälle dasselbe.


    Viele Grüße

    Brummel

  • Kannst du mal einen neueren Kernel probieren?

    Code
    sudo apt install --install-recommends linux-generic-hwe-20.04

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Hallo seahawk,


    den Kernel habe ich installiert.


    Ich habe das mit dem initramfs/grub allerdings immer noch von Hand gemacht, nicht über die neue ansible Variable. Ich nehme aber an, dass das jetzt nicht relevant ist.


    Interessant ist, dass mit dem geänderten Kernel ein Bild kommt, wenn der TV bei Starten an ist (was ja mit dem alten Kernel nicht der Fall war).

    Allerdings kommt immer noch kein Bild wenn der TV bei Starten aus ist.


    Ich habe für beide Fälle mal die Ausgabe von journalctl -b -langehängt sowie das Xorg.0.log.


    Auffällig ist, dass nur im Fall ohne Bild diese Meldung im Log steht:


    yavdr-nuc kernel: i915 0000:00:02.0: [drm] Cannot find any crtc or sizes

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!