Tester für xrandr-Parser gesucht

  • Hallo,
    ich würde gerne ohne Spezialbehandlung für NVidia-Grafikkarten die EDID-Daten und Display-Modi der angeschlossenen Bildschirme auslesen können. Dazu habe ich ein Python-Skript geschrieben, das die nötigen Informationen aus der Ausgabe von

    Code
    xrandr --verbose

    liest, im json-Format ausgibt, den besten Mode für die TV-Betrieb errät und zusätzlich die EDID-Informationen in Dateien schreibt, die nach dem jeweiligen Output benannt sind (also z.B. edid.HDMI-0.bin): https://gist.github.com/seahaw…a8a8f804efd102ead18434d64


    Bei einem HD-ready TV sieht das z.B. so aus:

    Und bei einem Testrechner mit zwei Bildschirmen so:


    Es wäre toll, wenn das mal ein paar Leute mit Intel, AMD und NVidia-GPUs (egal ob mit noveau oder dem proprietären nvidia-Treiber) mit einem oder mehreren Monitoren laufen lassen und die Ausgabe hier posten könnten. Benötigt wird neben xrandr nur Python2 (oder Python3) und ein X-Server, der ohne xorg.conf läuft, die die EDID setzt oder separate X-Server startet (wie es z.B. bei yaVDR der Fall ist). Falls der optimale TV-Modus nicht richtig ermittelt wurde, bitte die Ausgabe von xrandr und das erwartete Ergebnis für den besten Mode dazu posten.


    Man könnte das Skript z.B. so herunterladen und starten (die DISPLAY-Variable muss natürlich so gesetzt sein, dass xrandr funktioniert):

    Code
    wget https://gist.githubusercontent.com/seahawk1986/824585ba8a8f804efd102ead18434d64/raw/73ec123c12d21bf6d7fdde49912d004d3f33962f/parse_xrandr_debug.py
    python parse_xrandr_debug.py

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Debian Stretch xfce auf msi P55-GD65 mit HD4350, Sundtek MediaTVIII (DVB-T2), VDR 2.2.0 mit HEVC-patch

  • Danke, war das mit der HD4350 aus deiner Signatur?

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Ich hätte Dir ja gerne den Output gepostet, aber leider funktioniert Dein Script bei mir nicht:


    Code
    vdr01_64 ~ # ./parse_xrandr_debug.py
    xrandr: Failed to get size of gamma for output default
    Traceback (most recent call last):
      File "./parse_xrandr_debug.py", line 117, in <module>
        output_data(xorg)
      File "./parse_xrandr_debug.py", line 109, in output_data
        best_mode = max(modes, key=sort_mode)
    ValueError: max() arg is an empty sequence
    vdr01_64 ~ #
  • Wie sieht denn die Ausgabe von

    Code
    xrandr --verbose

    bei dir aus?

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • So gehts besser:


    [/code]

  • Dann sollte es für mein Skript eigentlich klappen, wenn du wie oben geschrieben die DISPLAY-Variable setzt:

    Code
    DISPLAY=:0 ./parse_xrandr_debug.py

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Jo, wer lesen kann, ist klar im Vorteil. ;)


  • Prima, dann passt es ja (und ich baue am besten noch einen Fallback auf das DISPLAY :0 ein, wenn es nicht als Umgebungsvariable übergeben wird).

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Ich würde wirklich gerne mithelfen, aber bei mir kommt "keine Berechtigung":

    Code
    root@myVDR:~# DISPLAY=:0 ./parse_xrandr_debug.pybash: ./parse_xrandr_debug.py: Keine Berechtigung


    Auch wenn ich den Befehl als root (root -s) ausführe?


    Mit vorherigem chmod 755 und DISPLAY:=1 hats dann geklappt.


    Hier die Ausgabe für meine Karte lt. Signatur an einem HD-ready LG-TV:


    Edit2:
    Obwohl ich selbst draufgekommen bin, danke an 3PO für die schnelle Antwort - war nur langsamer mit Korrigieren, als du mit antworten ;)

    MyVDR: yaVDR-Ansible (Ubuntu 20) - softhddevice-openglosd (ffmpeg 2.8) - epgd/epg2vdr - skindesigner estuary4vdr (adaptiert) - 1920x1080@50 Hz | kodi 18 - inputstream + amazon vod
    Aerocube M40 | 300W | ASRock H61M-GE | Intel G530 | Asus ENGT520 | 2 x TT-budget S2-3200 | ASRock Smart Remote (CIR) | 4 GB RAM | 120 GB SSD | 3 TB HDD

  • Prima, dann passt es ja (und ich baue am besten noch einen Fallback auf das DISPLAY :0 ein, wenn es nicht als Umgebungsvariable übergeben wird).


    Könnte sein, dass es daran liegt, dass ich einen XMING Server im LAN habe:


    Code
    vdr01_64 ~ # env |grep DISPLAY
    DISPLAY=localhost:11.0
    vdr01_64 ~ #
  • Ich würde wirklich gerne mithelfen, aber bei mir kommt "keine Berechtigung":

    Code
    root@myVDR:~# DISPLAY=:0 ./parse_xrandr_debug.py
    bash: ./parse_xrandr_debug.py: Keine Berechtigung


    Auch wenn ich den Befehl als root (root -s) ausführe?


    Code
    chmod 755  parse_xrandr_debug.py
  • Könnte sein, dass es daran liegt, dass ich einen XMING Server im LAN habe:

    Ja, klar, wenn die DISPLAY-Umgebungsvariable für den XMING-Server gesetzt ist, nutzt xrandr die.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Hier mein Output vom VDR (ASRock, nvidia GT218, Treiber nvidia 340.98 :(


    Sowie vom Desktop (nvidia GTX980 Treiber 375.39)

    VDR2: ASRock J4105-ITX, DVBSky S952, openSUSE Tumbleweed, VDR 2.4.7

    softhddevice/vaapidevice, DFAtmo, xmltv2vdr, tvscraper, tvguideng, VDRAdmin-AM (alles git, aber alt)

  • Grafik nvidia GT630 mit Treiber 375.39
    DVI-D-0: Dell U2410
    HDMI-0: Philips TV


    VDR 2.6.6: ASUS Prime X470-PRO, Ryzen 7 5700X, 64GB, 6TB HD, GT1030, Fedora 39 Kernel 6.7 X86_64, Devicebonding 2 x 1 auf 2, TT6400, DVBSky S952 V3

    Git-Repo: gitlab.com/kamel5

  • Hi,
    So ähnlich ist es in EasyVDR3.0 auch durch Bleifuss2 seit längerem integriert.
    MfG Stefan

    Test-VDR1: HP rp5700 Fertigsystem, Core2Duo E6400, 2GB RAM, FF-SD C-2300, nvidia Slim-GT218 x1 | easyVDR 2.0 64Bit
    VDR3: in Rente

    VDR4: MSI G31M2 v2, Digitainer2-Geh., t6963c 6" gLCD, E5200, 2GB, 3TB WD Red, GT730, 2x TT S2-3200; easyVDR 3.5 64bit
    VDR5: Gigabyte
    GA-G31M-S2L, Intel E2140, Zotac GT730 passiv, Digitainer2-Geh., t6963c 6 " gLCD, 2 TB WD Red, 2x TT S2-3200 (an 1 Kabel) easyVDR 3.5 64bit
    VDR6:
    Intel E5200, GT630 passiv, F1 750 GB, t6963c gLCD, 2x TT S2-3200 | easyVDR 3.5 64bit
    VDR-User #1068
    www.easy-vdr.de

Jetzt mitmachen!

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