Fedora: Kernel 5.4.7 verfügbar

Mit dem Push vom Linux Kernel 5.4.7 ins stabile Repository von Fedora, hat die Nvidia HDMI Audiokrise ein Ende.

Kernel 5.4.7 verfügbar

Wie in dem Beitrag vom Dezember 2019 „Kernel 5.3.16 mit HDMI-Audio Problemen“ beschrieben, gab es ein ein kleines Problem beim korrekten Markieren von NVIDIA Audiogeräten, z.b. Monitoren mit Lautsprechern. Das wurde nicht mehr für die 5.3er Serie des Kernels behoben, obwohl es nur EIN einziger Zeichenwechsel gewesen wäre.

Wie sich damals ja schnell herausgestellt hat, wollte man mit einem Fix eigentlich ein anderes Problem bei Audiogeräten beheben, hat aber mehr kaputt gemacht, also der Fix behoben hatte. Da so ein Kernelbuild auch auf einem schnellen i7 auf SSDs mal locker 1h plus Tests dauern kann,  kann ich schon verstehen, daß man keine eigene Kernelrelease für den an sich trivialen Fix gebaut hat, zumal man einfach auf einen alten Kernel ausweichen konnte.

Es bleibt zu hoffen, daß es nicht nochmal passiert, denn es hat echt in den Ohren geklingelt.

Kernel 5.3.16 mit HDMI-Audio Problemen

Na klingeln Euch auch noch die Ohren? Mir tun die jetzt noch weh! Wer eine NVIDIA Grafikkarte und einen aktuellen 5.3.16 Kernel einsetzt, der sollte jetzt kein HDMI benutzen.

Kernel Regression durch Patch für eine andere Regression

Es ist immer blöd, wenn der Fehlerfix mehr Probleme macht, als er behebt. So geschehen im neuen 5.3.16 Kernel, wenn man eine NVIDIA Karte hat. Wie Takashi Iwai von Suse dazu schreibt:

The commit e38e486d66e2 („ALSA: hda: Modify stream stripe mask only when needed“) tried to address the regression by the unconditional application of the stripe mask, but this caused yet another
regression for the previously working devices. Namely, the patch clears the azx_dev->stripe flag at snd_hdac_stream_clear(), but this may be called multiple times before restarting the stream, so this
ended up with clearance of the flag for the whole time.

Hat da wohl jemand eine Kleinigkeit nicht bedacht aka die falsche Stelle gepatched 😉 Als Resultat fallen einem fast die Ohren ab, weil die Lautstärke des HDMI Streams so derbe übersteuert klingt, daß selbst 2% Lautstärke nur als Lärm bezeichnet werden können. Ich vermute das hier die Audiodaten im falschen Format angeliefert werden, wo alles was leise wäre, extrem laut ist z.b. LE statt BE Sortierung der Bits.

Die Lösung

Natürlich gibt es eine einfach Lösung für das Problem: 5.3.15 booten oder bis zum nächsten Kernelupdate kein HDMI benutzen 😉

Update:

Laut Laura Abbot von Red Hat wird der Fehler nicht mehr in der 5.3er Serie behoben, was ich bislang bestätigen kann, denn der 5.3.18 hat die gleiche Macke. Es soll stattdessen gleich der 5.4.0 Kernel gebaut werden. Frau Abbot bemüht sich darum, daß der Patch bereits in 5.4.0 einfliesst.

Der Soundbug ist auch unabhängig von den Treibern, aber das habe ich nicht anders erwartet.

Update: wurde in 5.4.5 gefixt.

Nvidia und das Tearing

Screen Tearing, das Phänomen, daß ein Teil des Monitorbildes schon einen Frame weiter ist, also der andere.

Beispiel:

Es passiert bei Spielen, beim Videos ansehen und auch mal beim Bewegen von Fenstern. Nvidia Grafikkarten sind leider prädestiniert für dieses Problem, weil, und das ist der fiese Teil, Nvidia die Funktion zum Unterdrücken des Tearings standardmäßig abgeschaltet hat.

Aber, Abhilfe ist nah 🙂

 

Erstmal brauchen wir das Nvidia Configtool und wählen dort die Display Configuration aus.

Wir brauchen den Advanced Button.

Jetzt aktivieren wir die Force Composition Pipeline und das Tearing ist Geschichte.

Sollte die Force Composition Pipeline nicht reichen, braucht es die Force Full Composition Pipeline.

Ihr seht die Optionen nicht?

Das hat natürlich Gründe. Zunächst mal braucht es eine minimale Treiberversion 375.26, zum Anderen eine Grafikkarte, die den Modus überhaupt unterstützt. Eine GT840M z.B. hat das nicht, egal welche Treiberversion Ihr habt.

Flatpak ist */()$§*#D3§$

Ich fand ja FlatPak schon im letzten Artikel nicht so prall, wegen der ganzen Platzverschwendung, aber das hier topt es grade :

[marius ~]$ /usr/bin/flatpak info "com.belledonnecommunications.linphone/x86_64/4.1.1"
Ref: app/com.belledonnecommunications.linphone/x86_64/4.1.1
ID: com.belledonnecommunications.linphone
Arch: x86_64
Branch: 4.1.1
Origin: com.belledonnecommunications.linphone-1-origin
Commit: bae79f29ce390b6b28254cba0ae63f1bbb8d9a30f50acce422ce5ef1f1839441
Location: /home/marius/.local/share/flatpak/app/com.belledonnecommunications.linphone/x86_64/4.1.1/bae79f29ce390b6b28254cba0ae63f1bbb8d9a30f50acce422ce5ef1f1839441
Installed size: 315,4 MB
Runtime: org.freedesktop.Platform/x86_64/1.6
[marius ~]$ /usr/bin/flatpak update "com.belledonnecommunications.linphone/x86_64/4.1.1"
Looking for updates...
Fehler: com.belledonnecommunications.linphone/x86_64/4.1.1 not installed
[marius ~]$ /usr/bin/flatpak update app/com.belledonnecommunications.linphone/x86_64/4.1.1
Looking for updates...
Fehler: app/com.belledonnecommunications.linphone/x86_64/4.1.1 not installed

Also, mit der original REF, die die INFO Anweisung ausgibt ODER die auch LIST ausgibt, behauptet Flatpak, die Anwendung wäre nicht installiert. Lustigerweise will er die Starten, was übrigens nicht geht, weil die NVIDIA Treiber aktualisiert worden sind und nun die von Flatpak installierten Treiber zu den Treibern nicht mehr passen:

Installiert ist 384.90 , aber Flatpak hat noch 375 im Einsatz :

[marius]$ flatpak list
Ref Options 
com.belledonnecommunications.linphone/x86_64/4.1.1 user,current
org.freedesktop.Platform.GL.nvidia-375-66/i386/1.4 user,runtime
org.freedesktop.Platform.GL.nvidia-375-66/x86_64/1.4 user,runtime
org.freedesktop.Platform/x86_64/1.6 user,runtime

Das Ende von Lied: LinPhone startet nicht mehr 😀 Natürlich updated flatpak auch nichts, wenn man nur „update“ eingibt, was alles aktualisiert laut Manpage, aber es gibt wohl kein Update dafür 😀

Fazit: Tolle Idee son System im System 😀

Aufruf: Nieder mit den Flatpaks und Snappys dieser Welt. Es lebe DNF ! 😉

PS: Zu DNF kommen wir morgen nochmal 😀

Update: Annahme verweigert

Der Red Hat Bugbetreuer hat die Meldung, daß die installierten Flatpakapps nicht gefunden werden, wenn man sie namentlich angibt, als „Kein Bug“/“Kein Supportforum“ abgetan. Also entweder der weiß mehr als wir zu dem Thema, oder er hat leider keine Vorstellung davon, was ein Bug in Flatpak sein könnte 🙂

Mal sehen was per Github vom Projektmaintainer kommt :  https://github.com/flatpak/flatpak/issues/1139

Update installiert falsche Nvidiatreiber

Schock in der Abendstunde:  der Rechner bootet nicht mehr.

Ok, das Fehlerbild entspricht genau diesen How To: Wie man nvidia akmods nachbaut hier , nur leider funktioniert der FIX nicht 🙁  Und dann sitzt man da in der Konsole und weiß nicht weiter.

Was war passiert ?

Um das zu klären, lohnt sich immer ein Blick ins DNF Logfile : /var/log/dnf.rpm.log  und wie man sieht, findet sich dort das Update auf Nvidia Treiberversion 384.90 vor ein paar Tagen:

Oct 25 20:01:13 INFO Upgraded: xorg-x11-drv-nvidia-kmodsrc-2:384.90-1.fc25.x86_64
Oct 25 20:01:15 INFO Cleanup: xorg-x11-drv-nvidia-kmodsrc-2:375.66-7.fc25.x86_64

Das anschließende Update am 26.10. führte dann ins Chaos, weil …

Oct 26 06:02:31 INFO Erased: kmod-nvidia-4.12.13-200.fc25.x86_64-2:375.66-3.fc25.x86_64
Oct 28 20:41:29 INFO Upgraded: xorg-x11-drv-nvidia-cuda-libs-2:384.90-1.fc25.x86_64
Oct 28 20:41:31 INFO Upgraded: xorg-x11-drv-nvidia-libs-2:384.90-1.fc25.i686
Oct 28 20:41:33 INFO Upgraded: xorg-x11-drv-nvidia-libs-2:384.90-1.fc25.x86_64
Oct 28 20:41:34 INFO Erased: kmod-nvidia-4.13.5-100.fc25.x86_64-2:375.66-3.fc25.x86_64
Oct 28 20:41:38 INFO Erased: kmod-nvidia-4.12.14-200.fc25.x86_64-2:375.66-3.fc25.x86_64
Oct 28 20:41:43 INFO Cleanup: xorg-x11-drv-nvidia-libs-2:375.66-7.fc25.x86_64
Oct 28 20:41:43 INFO Erased: xorg-x11-drv-nvidia-cuda-2:375.66-7.fc25.x86_64
Oct 28 20:41:44 INFO Erased: xorg-x11-drv-nvidia-2:375.66-7.fc25.x86_64
Oct 28 20:41:45 INFO Erased: akmod-nvidia-2:375.66-3.fc25.x86_64
Oct 28 20:41:45 INFO Cleanup: xorg-x11-drv-nvidia-libs-2:375.66-7.fc25.x86_64
Oct 28 20:41:45 INFO Cleanup: xorg-x11-drv-nvidia-cuda-libs-2:375.66-7.fc25.x86_64
Oct 28 20:45:32 INFO Installed: xorg-x11-drv-nvidia-304xx-libs-304.137-1.fc25.x86_64
Oct 28 20:45:38 INFO Installed: xorg-x11-drv-nvidia-304xx-304.137-1.fc25.x86_64
Oct 28 20:45:38 INFO Installed: akmod-nvidia-304xx-304.137-2.fc25.x86_64
Oct 28 20:46:12 INFO Installed: kmod-nvidia-304xx-4.13.8-100.fc25.x86_64-304.137-2.fc25.x86_64
Oct 28 20:48:41 INFO Installed: kmod-nvidia-304xx-4.12.14-200.fc25.x86_64-304.137-2.fc25.x86_64
Oct 28 20:49:15 INFO Installed: kmod-nvidia-304xx-4.13.5-100.fc25.x86_64-304.137-2.fc25.x86_64

die falsche Version 304 installiert wurde. Ich kann nur spekulieren, warum es diesen alten Treiber noch gibt, aber dieses Nvidia Modul kann eine GTX 1050 nicht erkennen und failed damit beim modprobe mit „no such device“. Damit startet der XServer nicht und das ganze System kommt nicht ins Laufen.

Zu allem Überfuß hat es dann beim Fix auch noch die /etc/default/grub zerlegt, so daß der Rechner im Textmodus gestartet ist. Wie man das fixt steht hier: Fedora grafischen Bootvorgang aktivieren

Lösung

mit „rpm -qa | grep nvidia“ alle RPMs identifizieren, die als Version 304xx drin stehen haben. Die dann mit „dnf erase rpmname“ entfernen.

Danach mit „dnf install akmod-nvidia“ die aktuellen Treiber installieren.  Dann „akmods“ und „nvidia-config“ ausführen und den Rechner rebooten.

Ich empfehle den grafischen Bootvorgang vor dem Reboot noch zu fixen, das spart Ärger.

Achtung: der Plymouth Theme „solar“ scheint buggy zu sein, nehmt „charge“.