[yavdr-ansible jammy] NVIDIA Treiber - erst nicht da, dann nicht initialisiert

  • Ich habe vor einer Weile mit yavdr-ansible testweise unter Jammy ein System mit Xorg eingerichtet. Im Rechner steckt eine GeForce GT 710, die mit dem NVIDIA-Treiber recht klaglos funktioniert hat.


    Nach einigen Upgrades der Ubuntu-Pakete waren Bild und Ton weg. Doch kann ich leider nicht mehr sagen, wann das passiert ist:


    Jetzt habe ich endlich genauer hingeschaut und festgestellt, dass der NVIDIA-Treiber nicht mehr gefunden wurde:

    Code
    malte@taco:~$ grep EE /var/log/Xorg.0.log
    ...
    [    10.382] (EE) Failed to load module "nvidia" (module does not exist, 0)
    [    10.648] (EE) [drm] Failed to open DRM device for pci:0000:02:00.0: -19
    [    10.648] (EE) open /dev/dri/card0: No such file or directory
    [    10.648] (EE) open /dev/dri/card0: No such file or directory
    [    10.649] (EE) Unable to find a valid framebuffer device
    [    10.649] (EE) Screen 0 deleted because of no matching config section.
    [    10.649] (EE) Screen 0 deleted because of no matching config section.
    ...

    Mit der zusätzlichen Konfigurationsdatei /etc/X11/xorg.conf.d/10-nvidia-path.conf

    Code
    #
    # Access NVIDIA driver
    #
    Section "Files"
        ModulePath  "/usr/lib/x86_64-linux-gnu/nvidia/xorg/"
        ModulePath  "/usr/lib/xorg/modules/drivers/"
        ModulePath  "/usr/lib/xorg/modules/"
    EndSection

    wird der Treiber zwar gefunden, doch wird er nicht initialisiert:

    Syslog und dmesg enthalten leider keine Meldungen des Treibers.


    Noch ein paar Informationen zum System

    Code
    malte@taco:~$ uname -a
    Linux taco 5.15.0-72-generic #79-Ubuntu SMP Wed Apr 19 08:22:18 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
    malte@taco:~$ lspci -nnk | grep -A3 "\[03..\]:"
    pcilib: Error reading /sys/bus/pci/devices/0000:00:1c.0/label: Operation not permitted
    02:00.0 VGA compatible controller [0300]: NVIDIA Corporation GK208B [GeForce GT 710] [10de:128b] (rev a1)
            Subsystem: PNY GK208B [GeForce GT 710] [196e:118b]
            Kernel modules: nvidiafb, nouveau
    02:00.1 Audio device [0403]: NVIDIA Corporation GK208 HDMI/DP Audio Controller [10de:0e0f] (rev a1)

    Und natürlich die beiden Fragen:

    • Was kann ich tun, um wieder zu Bild und Ton zu kommen?
    • Wie kann ich verhindern, dass sie bei irgendeinem Upgrade wieder verschwinden (falls das die Ursache war)?
  • Welcher Treiber wurde vom Playbook installiert?

    Sind aktuell nvidia-Pakete installiert?


    Code
    cat /etc/yavdr/autoinstalled
    dpkg -l | grep "^ii  nvidia"

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Code: /etc/yavdr/autoinstalled
    nvidia-driver-470
    linux-modules-nvidia-470-generic

    Aktuell installiert

    Code
    malte@taco:~$ dpkg -l | grep "^ii  nvidia"
    ii  nvidia-compute-utils-470                   470.182.03-0ubuntu0.22.04.1                      amd64        NVIDIA compute utilities
    ii  nvidia-driver-470                          470.182.03-0ubuntu0.22.04.1                      amd64        NVIDIA driver metapackage
    ii  nvidia-kernel-common-470                   470.182.03-0ubuntu0.22.04.1                      amd64        Shared files used with the kernel module
    ii  nvidia-kernel-source-470                   470.182.03-0ubuntu0.22.04.1                      amd64        NVIDIA kernel source package
    ii  nvidia-utils-470                           470.182.03-0ubuntu0.22.04.1                      amd64        NVIDIA driver support binaries

    Als ich gestern mit meiner Lösungssuche anfing, war es noch eine etwas ältere Version:

    Code
    malte@taco:~$ dpkg -l *nvidia* | grep ^ii
    ...
    ii  nvidia-compute-utils-470                   470.161.03-0ubuntu0.22.04.1 amd64        NVIDIA compute utilities
    ii  nvidia-driver-470                          470.161.03-0ubuntu0.22.04.1 amd64        NVIDIA driver metapackage
    ii  nvidia-kernel-common-470                   470.161.03-0ubuntu0.22.04.1 amd64        Shared files used with the kernel module
    ii  nvidia-kernel-source-470                   470.161.03-0ubuntu0.22.04.1 amd64        NVIDIA kernel source package
    ii  nvidia-utils-470                           470.161.03-0ubuntu0.22.04.1 amd64        NVIDIA driver support binaries
    ii  xserver-xorg-video-nvidia-470              470.161.03-0ubuntu0.22.04.1 amd64        NVIDIA binary Xorg driver

    nvidia-driver-470 ist vermeintlich die "richtige" Version für mein System

  • Wie so oft: Die Fehlerursache sitzt vor dem Rechner. Ich habe mir noch einmal /etc/X11/xorg.conf angeschaut. Darin ist auch der zusätzliche Monitor aufgeführt, den ich bislang verschwiegen habe:

    So bin ich auf die Idee gekommen, den Monitor vor dem Start des Rechners einzuschalten. Und prompt hatte ich Bild und Ton, in /var/log/Xorg.0.log standen keine Fehler mehr. Und auch die Krücke /etc/X11/xorg.conf.d/10-nvidia-path.conf ist nicht mehr erforderlich; das erledigt offensichtlich /usr/share/X11/xorg.conf.d/10-nvidia.conf. Der Monitor bleibt allerdings bislang schwarz.


    Damit ändern sich meine Fragen zu: Wie kann ich das System so konfigurieren, dass es mit und ohne eingeschaltetem Monitor funktioniert? Und was muss ich tun, damit auf dem eingeschalteten Monitor eine Shell läuft, bei der ich mich bei Bedarf einloggen kann?

  • Ich verstehe das Problem noch nicht ganz - das Playbook sorgt dafür, dass die EDID des beim Ausführen der yavdr-xorg Rolle angeschlossenen Monitors auf dem Rechner abgelegt wird und dann der X-Server so konfiguriert wird, dass er diesen Monitor als immer angeschlossen sieht. Somit sollte es dann egal sein, ob der beim Start des Rechners bereits angeschaltet war oder nicht. Das Playbook unterstützt das auch für zwei Monitore, wobei der zweite dann standardmäßig die von osd2web bereitgestellte Webseite anzeigt (was man so umkonfigurieren könnte, dass z.B. ein Terminal-Emulator gestartet wird).


    Mit dem nvidia-Treiber konnte man lange Zeit (vor der Version 470) nur bei laufenden X-Server einen angeschlossenen Monitor erzwingen - laut https://wiki.archlinux.org/tit…A#DRM_kernel_mode_setting scheint es bei neueren Treiberversionen möglich zu sein, das auch über KMS zu machen: https://wiki.archlinux.org/tit…ng#Forcing_modes_and_EDID - ich habe das aber noch nicht ausprobiert.


    Generell wird ein laufender X-Server immer alle angeschlossenen Bildschirme übernehmen (bzw. schwarz machen, wenn die nicht genutzt werden), so dass es nicht ohne weiteres möglich ist ein TTY neben einem laufenden X-Server anzuzeigen - ich würde da bevorzugt über SSH gehen (sogar Windows hat seit Jahren einen integrierten SSH-Client), das ist deutlich bequemer und man muss nicht mal vor dem Rechner sitzen.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Ich vermute mittlerweile, dass ich mich selbst ausgetrickst habe und bei ausbleibendem Bild am Fernseher als Quelle der Antenneneingang ausgewählt war. Doch das Antennenkabel steckt mittlerweile am yaVDR-Rechner. Nach der Installation eines CEC-Adapters erfolgt das Umschalten auf die "richtige" Quelle von alleine. Das ist gut für Schusselköpfe :)


    Vielleicht kann ich die Tatsache nutzen, dass ich oben schon die gesamte Konfiguration beschrieben habe, um eine Zusatzfrage zu stellen. Mir ist aufgefallen, dass bei der Wiedergabe mit yaVDR das Bild rechts und links einen schmalen schwarzen Streifen hat (jeweils knapp 2% der Bildschirmbreite). Beim normanlen Fernsehempfang und mit den parallel zu yaVDR installieren Betriebssystemen (Windows 10, Debian Bullseye) gibt die nicht. Deshalb vermute ich, dass die Streifen durch eine Einstellung unter yaVDR zu beheben sind. Nur halt welche? :)

  • Hi,

    Du kannst im Softhddevice Einstellungen den Overscan einstellen.

    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

  • Das klingt gut. Leider habe ich in den Einstellungen des Plugins (im OSD) noch nichts gefunden, was für mich nach Overscan klingt. Könntest Du mir bitte sagen, wie die Einstellung heißt, die ich ändern muss?

  • Bei den heute üblichen Fernsehern kann man den das Abschneiden des Overscan deaktivieren - näheres müsste im Handbuch stehen.


    Bei alten TV-Geräten, die das nicht erlauben, kann man die Bildtransformation im Nvidia-Treiber nutzen, um das Bild künstlich zu verkleinern (wodurch man real nutzbare Auflösung einbüßt und unschöne Skalierungsartefakte bekommt): Overscan-Kompensation mit den neuen nVidia-Treibern - dazu müsste man am Template für die xorg.conf schrauben.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Da geht bei mir noch irgendwas durcheinander. Ich dachte, Overscan sei der Effekt, dass schmale Streifen an den seitlichen Rändern des eigentlichen Bildes u.U. nicht zu sehen sind. Aber bei mir ist es ja so, dass das Bild rechts und links schmale schwarze Streifen hat, also die verfügbare Bildschirmfläche nicht ausnutzt. Deshalb verstehe ich auch noch nicht, warum es helfen könnte, das Bild mit den Einstellungen des Treibers künstlich zu verkleinern. Ob allerdings am Rand etwas "fehlt", habe ich mangels geeigneter Testbilder bislang auch nicht feststellen können.


    Das Attribut CurrentMetaMode ist bei yaVDR

    Code
    malte@taco:~$ nvidia-settings --ctrl-display :0 --query CurrentMetaMode
    libEGL warning: DRI2: failed to authenticate
    
      Attribute 'CurrentMetaMode' (taco:0.0): id=50, switchable=yes, source=xconfig :: DPY-2: 1920x1080_50 @1920x1080 +0+0
      {ViewPortIn=1920x1080, ViewPortOut=1920x1080+0+0}

    und dem parallel installierten Debian Bullseye

    Code
    malte@taco:~$ nvidia-settings --ctrl-display :0 --query CurrentMetaMode
    Unable to init server: Verbindung ist gescheitert: Verbindungsaufbau abgelehnt
    libEGL warning: DRI2: failed to authenticate
    
      Attribute 'CurrentMetaMode' (taco:0.0): id=50, switchable=yes, source=xconfig :: DPY-2: nvidia-auto-select @1920x1080 +0+0
      {ViewPortIn=1920x1080, ViewPortOut=1920x1080+0+0}

    nach meinem Verständnis gleich. Beide benutzten die Treiber-Version 470.182.


    Und eine Einstellung des Fernsehers zu ändern, scheint mir derzeit nicht die richtige Lösung, weil es ja unter Debian Bullseye keine Ränder gibt.

  • Ich glaube, es war folgende Einstellung vom softhddevice gemeint, innerhalb der einzelnen Auflösungen:

    zB bei „*720p:“

    „Schneide links und rechts ab (Pixel):“

    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

  • Sorry, falsche Fährte - ich habs in meiner Mitschrift wieder gefunden:


    schwarze Balken/Streifen links und rechts

    Lösung: in softhddevice Plugin-Einstellungen Pan&Scan für 4:3 und 16:9 aktivieren

    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

Jetzt mitmachen!

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