Zusammenfassung Intel VAAPI & edid.bin

  • Ok, da liefert parse-edid einen Mode 13 ohne Timing-Informationen - ich habe den Python-Code mal angepasst - bitte hol dir noch mal den aktuellen Git-Stand und versuche es erneut.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Super, jetzt läuft alles mit grün durch!


    Jetzt passt es und ich kann die /etc/X11/edid.DP-1.bin als Vorlage benutzen.


    Komisch, in dem Monitor OSD wird unter Info nicht 50hz angezeigt.


    Die Ausgabe von xrandr -d :0 --verbose deute ich so dass er 1920x1080+0+0 (0x46) 

    bzw.

    Code
    1920x1080_50 (0x46) 148.500MHz +HSync +VSync *current +preferred
            h: width  1920 start 2448 end 2492 total 2640 skew    0 clock  56.25KHz
            v: height 1080 start 1084 end 1089 total 1125           clock  50.00Hz

    also 50hz ausgibt. ..

  • Komisch, in dem Monitor OSD wird unter Info nicht 50hz angezeigt.

    Was sagt denn xrandr -d :0 und was steht in der /etc/ansible/facts.d/xrandr.fact?

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • und

  • 1920x1080_50 50.00*+

    Zumindest sieht es so aus, als ob er 1080p50 gewählt hätte - das Sternchen markiert den aktuell gewählten Mode, das Plus den bevorzugten.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Danke seahawk1986 für die zielführende Hilfe!


    An dem Punkt xorg.conf und edid definieren muss ich in der Woche weitermachen.

    Wo ist die bei yavdr ansible zu finden? /etc/X11/xorg-verbose.conf ?


    Hoffe das fnu nicht sauer ist, weil ich seinen Beitrag gekapert habe.

    Immerhin hilft das den steigenden yavdr ansible Benutzern weiter :)

  • An dem Punkt xorg.conf und edid definieren muss ich in der Woche weitermachen.

    Das musst du nicht zwingend machen - Ich hatte da in [Gelöst] yaVDR ansible / osd2web mit Intel-Grafik auf TFT ff. schon was dazu geschrieben - prinzipiell genügt es dem Kernel die EDID-Datei für den Anschluss mitzugeben.


    Wenn du wie von fnu beschrieben video=HDMI-A-1:1920x1080@50D setzt, funktioniert nur ein angeschlossener Bildschirm, aber es hat den Vorteil, dass es keine Mode-Umschaltung beim Start des X-Servers gibt (der Rechner würde dann mit 1920x1080@50Hz booten und der X-Server das beibehalten) - ansonsten würde er mit dem Bevorzugten EDID-Mode starten (normalerweise 1920x1080@60Hz) und dann beim Start des X-Servers auf 1920x1080@50Hz umschalten.

    Wo ist die bei yavdr ansible zu finden? /etc/X11/xorg-verbose.conf ?

    Die Datei dient nur dazu den X-Server bei der Bildschirmerkennung mit Debug-Ausgabe starten zu lassen und sollte nicht verändert werden.


    Für den normalen Betrieb wird die /etc/X11/xorg.conf.d/20-intel.conf für die Intel-Konfiguration genutzt. Das Laden der EDID über die Xorg-Konfiguration ist nach meiner Erfahrung überflüssig, weil die EDID sowieso schon vom Kernel fest vorgegeben wird, wenn man eine Boot-Option wiedrm.edid_firmware=HDMI-A-1:edid/edid.HDMI-1.bin gesetzt hat.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • nachdem meine VDRs mit Intel Ausgabe nun lange problemlos mit einer festen Modeline funktionierten, kam es mit neueren Kernels (4.15.0) in den letzten Wochen immer wieder mal zu dem Phänomen der fehlenden Videoausgabe, wenn AVR & Plasma beim automatischen VDR Start nicht eingeschaltet waren (Ton war da!) und man die Geräte danach einschaltete.

    Nachdem ich das endlich auf OpenSuSE umgesetzt habe (vielen Dank Frank!), stelle ich leider fest, dass der Ton fehlt, wenn der Monitor beim Boot nicht angeschlossen/ eingeschaltet war.:(

    Es ist dann noch ein HDMI-Reset notwendig. Ist das bei Euch auch so? :?::?::?:

    Bash
    #!/bin/bash 
    xrandr -display :0.0 --output HDMI1 --off 
    xrandr -display :0.0 --output HDMI1 --auto

    Und wenn in der xorg.conf keine 50 Hz-Modeline eingetragen ist, schaltet der Monitor danach auf 60 Hz um.


    Danke und Gruß

    Stefan

  • Nein, bei mir ist das nicht nötig, funktioniert immer noch wie oben beschrieben. Bei meinen neueren Intel NUCs ist nur der Abzweig nötig, HDMI1 im Kernel beim Boot, in Xorg dann DP1, aufgrund des LSPCon HDMI 2.x Konverters.


    Erzähl mal was zur Hardware?


    Wie gibst Du den Ton aus, alsa oder pulseaudio?


    Regards

    fnu

    HowTo: APT pinning

  • Erzähl mal was zur Hardware?

    Das Wichtigste wieder vergessen...?(


    Asus H310i-plus + i3-8100 + alsa


    Stefan

  • Asus H310i-plus + i3-8100 + alsa

    Interessant, lt. Specs macht das Board auch "nur" HDMI1.4, wie die Kaby/Coffee Lake Intel Graphics, d.h. eigentlich sollte kein Konverter Chip von z.B. LSPCon dazwischen sein.


    Kannst Du dennoch mal prüfen was Dein VDR da macht, mit und ohne gesteckten HDMI Kabel, im entsprechenden Xorg Log?


    Gruß

    Frank

    HowTo: APT pinning

  • Beim Vergleich mit/ohne angeschlossenem Monitor kann ich im Xorg-Log keine Unterschiede erkennen.


    Gruß

    Stefan


    P.s.: Danke, Frank, für Deine Mühen!

    Dateien

  • 447377


    Ja, da ist kein Unterschied, bleibt beim definierten HDMI Anschluß ... kein Konverter.


    Da habe ich dann leider nun auch erstmal keine Idee mehr, vmtl. wirst Du nicht drum rum kommen den VDR mal ohne HDMI Kabel zu starten, das Kabel einzustecken und danach mal alle Log Files auf verdächtiges zu prüfen ... :(


    Gruß

    Frank

    HowTo: APT pinning

  • den VDR mal ohne HDMI Kabel zu starten, das Kabel einzustecken und danach mal alle Log Files auf verdächtiges zu prüfen ... :(

    Das einzig Auffällige ist eine Zeile im Log nach dem Anschluss des HDMI-Kabels:

    Code
    kernel: [drm] Got external EDID base block and 1 extension from "edid/edid.bin" for connector "HDMI-A-1"

    Warum bekommt er eine "external EDID..." beim Anschluss des Monitors, wenn er die gleiche EDID doch zum Boot und dann auch noch zum X-Start übergeben bekommt?


    Stefan

  • Im Zuge einer Neuinstallation mit Kernel 5.1 funktioniert alles wie gewollt - der Ton ist da, ein HDMI-Reset ist nicht mehr notwendig. :tup

    Woran es lag, kann ich somit leider nicht sagen.


    Dir Frank nochmals vielen Dank für die Anleitung zu Beginn dieses Threads und Deine Unterstützung bei der Fehlersuche!


    Stefan


    P.s.: Falls jemand eine Anleitung zu Ramdisk und Opensuse benötigt, so kann ich diese gerne hier einstellen. Übrigens geht dabei auch ein 2. Monitor für osd2web.

  • Dir Frank nochmals vielen Dank für die Anleitung

    Gerne doch, schön das es jetzt bei Dir läuft.

    P.s.: Falls jemand eine Anleitung zu Ramdisk und Opensuse benötigt, so kann ich diese gerne hier einstellen. Übrigens geht dabei auch ein 2. Monitor für osd2web.

    Einfach machen, werde im 1. Post dann darauf verlinken.


    Gruß

    Frank

    HowTo: APT pinning

  • Anleitung für SuSE

    Gerne doch, schön das es jetzt bei Dir läuft.

    Einfach machen, werde im 1. Post dann darauf verlinken.


    Gruß

    Frank

    Hallo Frank,


    nun hatte ich die Opensuse-Anleitung völlig vergessen. Aber lieber spät als nie...


    Unter Opensuse 15.1 ist alles wie in Deinem ersten Link gleich, nur das Erzeugen der Ramdisk geht anders:


    Code
    vi /usr/lib/dracut/dracut.conf.d/edid.conf
    Code: /usr/lib/dracut/dracut.conf.d/edid.conf
    #This file has recently been added to kpartx. 
    # Not all dracut versions know about it. 
    install_items+=" /lib/firmware/edid/edid.bin "
    Code
    mkinitrd


    Ramdisk zur Kontrolle entpacken (hier muss nun die edid-Datei enthalten sein):

    Code
    mkdir /tmp/initrdmount && cd /tmp/initrdmount && /usr/lib/dracut/skipcpio /boot/initrd | unxz | cpio -i && ll lib/firmware/edid


    Grub anpassen

    Code
    vi /etc/default/grub
    Code: /etc/default/grub
    GRUB_CMDLINE_LINUX="video=HDMI-A-1:1920x1080@50D drm.edid_firmware=HDMI-A-1:edid/edid.bin"
    Code
    grub2-mkconfig -o /boot/grub2/grub.cfg

    Auch wenn Opensuse 15.1 einen Kernel < 4.15 hat, muss dennoch drm.edid_firmware genommen werden (Suse portiert gerne mal neuere Änderungen in den alten Kernel).


    Viel Spaß

    Stefan


    P.s.: Da ich noch ein zweites Display habe, habe ich einfach die zweite edid in die Ramdisk und in Grub auch dazu genommen und die Angabe der video-Auflösung in Grub weggelassen. Seahwak hatte das mal erläutert. [Gelöst] yaVDR ansible / osd2web mit Intel-Grafik auf TFT

    2 Mal editiert, zuletzt von fnu ()

  • Anleitung für ArchLinux


    Hier einmal eine Anleitung speziell für Arch:


    https://github.com/VDR4Arch/vd…ation-(en_US)#Intel_VAAPI


    Ich möchte testhalber Kodi mit Wayland starten und dafür ist wichtig direkt beim Booten in die richtige Auflösung zu starten. Genau das geht mit den Optionen in meiner Auflistung. Direkt beim Booten wird auf 1080p50 gestellt und eigentlich sollte das, dank edid.bin, auch gehen wenn der HDMI-Stecker nicht gesteckt ist.

  • Weißt du zufällig, wie sich das verhält, wenn man wie von dir beschrieben eine Konfiguration aufbaut und dann andere Bildschirme anschließt? Kann man da ohne Reboot (für den man dann das Laden der EDID ausbaut) die Bildschirme neu erkennen lassen und an die neue EDID kommen?

    Wenn ich mich richtig erinnere ist das auch bei Intel Grafikkarten möglich. Es könnte aber sein, dass zusätzlich zu der geänderten xorg.conf auch noch ein "echo > /sys/module/drm_kms_helper/parameters/edid_firmware" nötig ist.

    Ein paar Jahre später habe ich die Nuss hoffentlich geknackt, wie man die Bildschirme neu erkennen lassen kann, wenn man nach obiger Vorgehensweise eine oder mehrere EDID-Dateien über early KMS geladen hat - zumindest klappt das so auf meinem Haswell-Testsystem.


    Mit den Schritten, die in https://wiki.archlinux.org/tit…ng#Forcing_modes_and_EDID aufgeführt sind, wird davon ausgegangen wird, dass man die Bildschirme einmal ab- und wieder anstecken muss, damit die originale EDID des Monitors am Anschluss wieder sichtbar wird - den Schritt kann man sich sparen, wenn man "detect" in den status-Node schreibt - also kann man z.B. sowas machen, um alles für die erste Grafikkarte zurückzusetzen:

    Code: reset-drm-edids.sh
    #!/usr/bin/bash
    printf '\0' > /sys/module/drm/parameters/edid_firmware  # reset assignments of edids to connectors
    shopt -s nullglob
    for e in /sys/kernel/debug/dri/0/*/edid_override; do echo -n reset > "$e"; done  # reset edid overrides
    for e in /sys/class/drm/*/status; do echo -n detect > "$e"; done                 # force display detection

    Was zumindest bei meinem Laptop nicht zuverlässig klappt ist an die EDID des internen Bildschirms zu kommen, wenn der beim Booten mittels video=eDP-1:d deaktiviert war - wenn man den mittels echo -n 'on-digital' > /sys/class/drm/card0-eDP1/status anschaltet, bevor man obiges Skript laufen lässt, wird der zwar als verbunden angezeigt, aber es gibt dann einen Kernel-Oops, weil die EDID des Displays nicht gelesen werden kann.


    Mich würde interessieren, ob das auch mit AMD-Karten und neueren Intel-IGPs funktioniert, dann wäre das eine deutlich Vereinfachung für die automatische Konfiguration der Ausgabe mit yavdr-ansible.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Xorg.Auszug Nein, bei mir ist das nicht nötig, funktioniert immer noch wie oben beschrieben. Bei meinen neueren Intel NUCs ist nur der Abzweig nötig, HDMI1 im Kernel beim Boot, in Xorg dann DP1, aufgrund des LSPCon HDMI 2.x Konverters.

    Ich kämpfe gerade auch mit dem Problem, dass ich nur Bild bekomme, wenn AV-Receiver und TV beim Start an sind.

    Ich habe jetzt sämtliche Schritte wie ganz oben von fnu beschrieben durchgeführt, bin aber nicht sicher, ob ich das mit HDMI1 und DP1 in der Xorg auf meinem NUC richtig verstanden habe.




    Beim Starten (wenn AVR und TV aus) taucht dann in der Xorg.0.log dieses hier auf:


    ... Unable to find connected outputs


    Wenn der AVR/TV an sind, schaut die Passage in der Xorg.0.log so aus, d.h. der Monitor an DP1 wird erkannt:



    Weiß jemand, was ich da falsch mache?


    Viele Grüße

    Brummel

Jetzt mitmachen!

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