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.

Linux – Pulseaudio HDMI Sink umbenennen

Im deutschen Fußballspiel bei der WM in Russland ist einiges im Argen, so auch in Pulseaudio 🙂 Seit meinem Upgrade auf Fedora 27 haben meine Pulseaudio Sinks andere Namen bekommen und die sind zum Teil echte Monster 🙂

Sinks auflisten

Schauen wir uns erstmal den Ist-Zustand an :

[marius@eve ~]$ pacmd list-sinks|grep -E „(name:|description)“
name: <alsa_output.pci-0000_01_00.1.hdmi-stereo-extra1>
device.profile.description = „Digital Stereo (HDMI 2)“
device.description = „GP107GL High Definition Audio Controller Digital Stereo (HDMI 2)

Wenn man jetzt in der PA Lautstärkenkontrolle die Selectboxen mit den verfügbaren Audioausgängen anklickt, springt einem so ein Name natürlich ins Auge. Viel zu lang 🙂

Das können wir ändern

Dafür gibt es den Befehl „pacmd“ . Der kann einiges mit PA anstellen, aber da wir nur den Namen updaten wollen, ist es eigentlich recht simple:  pacmd befehl option1 option2 …

Wir brauchen als Befehl update-sink-proplist und dazu das Audiodevice das wir ändern möchten und natürlich das Feld, welches wir anpassen müssen.

Beispiel:

pacmd update-sink-proplist alsa_output.pci-0000_01_00.1.hdmi-stereo-extra1 device.description=“HDMI2-(Stereo)“

Wenn man jetzt ein Leerzeichen im Namen haben will, wie das ja wohl möglich sein muß, weil es ja vorher auch drin war, dann hat man ein kleines Problem, denn der Kommandozeilenparser von pacmd hat einen Bug: Er kann keine Leerzeichen verarbeiten 😉

Wenn man das braucht, muß man den Interaktiven Modus wählen:

$ pacmd
Welcome to PulseAudio 11.1-rebootstrapped! Use „help“ for usage information.
>>> update-sink-proplist alsa_output.pci-0000_01_00.1.hdmi-stereo-extra1 device.description=HDMI2 (Stereo)
>>>

Wenn man jetzt in dem Modus „exit“ zum Verlassen der Konsole  eintippt, dann passiert nicht was man erwarten würde, denn „exit“ steht für Pulseaudio-Exit und beendet den Server 😉 Wer da raus will muß mit CTRL+C arbeiten… allgemeines Kopfschütteln ..

Anmerkung:

Das ist leider keine permanente Einstellung, daß muß man nach jedem Start machen.