ALSA, PulseAudio und Intel HDA PCH ohne Ton

ALSA, PulseAudio und Intel HDA PCH ohne Ton

Ich habe nur eine einzige integrierte Soundkarte, eine Realtek ALC298, und brauche keine erweiterten Soundkonfigurationen. Nur ein funktionierendes Soundsystem, um YouTube-Videos anzuhören, Filme anzusehen usw. Bisher habe ich viele Online-Artikel verfolgt. Um alles zusammenzufassen, was ich ausprobiert habe:

  1. Finden Sie heraus, ob Kanäle stummgeschaltet sind. Ich habe verwendet alsamixerund auch überprüft pavucontrol, beide zeigen keine stummgeschalteten Kanäle an. Ich habe diesen Schritt wiederholt, als ich beim 3. Schritt war (siehe unten), und von Zeit zu Zeit wurden neue Kanäle angezeigt, aber letztendlich war kein Ton zu hören.

  2. Finden Sie heraus, ob es sich um ALSA oder nur um ein PulseAudio-Problem handelt. Also habe ich Folgendes verwendet aplay -l:

**** Liste der PLAYBACK-Hardwaregeräte ****
Karte 0: PCH [HDA Intel PCH], Gerät 0: ALC298 Analog [ALC298 Analog]
  Untergeräte: 1/1
  Untergerät Nr. 0: Untergerät Nr. 0
Karte 0: PCH [HDA Intel PCH], Gerät 3: HDMI 0 [HDMI 0]
  Untergeräte: 1/1
  Untergerät Nr. 0: Untergerät Nr. 0
Karte 0: PCH [HDA Intel PCH], Gerät 7: HDMI 1 [HDMI 1]
  Untergeräte: 1/1
  Untergerät Nr. 0: Untergerät Nr. 0
Karte 0: PCH [HDA Intel PCH], Gerät 8: HDMI 2 [HDMI 2]
  Untergeräte: 1/1
  Untergerät Nr. 0: Untergerät Nr. 0
Karte 0: PCH [HDA Intel PCH], Gerät 9: HDMI 3 [HDMI 3]
  Untergeräte: 1/1
  Untergerät Nr. 0: Untergerät Nr. 0
Karte 0: PCH [HDA Intel PCH], Gerät 10: HDMI 4 [HDMI 4]
  Untergeräte: 1/1
  Untergerät Nr. 0: Untergerät Nr. 0

Von dort wurde eine PCM-formatierte WAV-Datei verwendet, aplay -D plughw:0,0 test.wavdie Folgendes ergab:

WAVE „test.wav“ wird abgespielt: Signiertes 32-Bit-Little-Endian, Rate 44100 Hz, Stereo

Aber nichts! kein Ton, weder Lautsprecher noch Kopfhörer. Ich bin zu dem Schluss gekommen, dass es sich um ein ALSA-Problem und nicht um ein PulseAudio-Problem handelt, aber ich habe Zweifel, da der PulseAudio-Daemon während dieses Schritts lief. Interessante Randbemerkung: Als ich diesen Schritt durchführte, zeigten die Gnome-Soundeinstellungen, dass sich die Soundbars bewegten, als ob etwas abgespielt würde :D

  1. Ich fand eineArtikel auf der Kernel-Websiteüber HDA-Audio und eine Kernel-Fähigkeit, den Audio-Codec dynamisch neu zu konfigurieren, ohne den Rechner neu starten zu müssen. Ich habe es geschafft, das hdajackretaskDienstprogramm zu finden und zu verwenden, das Teil des alsa-toolsRepo ist, und es hat mir eine GUI bereitgestellt. Dieses Dienstprogramm schreibt die Pin-Änderungen in user_pin_configseine Datei (zu Ihrer Information, ich habe dies nach dem Neustart manuell überprüft). Ich konnte jedoch nicht die richtige Kombination der Pin-Neuzuweisungen herausfinden. Im Folgenden sind die Pins aufgeführt, die neu zugewiesen werden können:
0x12
Version:
Version: 0x14
Version: 0x17
Version: 0x18
Version:
OS-Nummer:
0x1d
Version:
Version:
0x21
  1. Meine Idee hier war, grundsätzlich das Modell zu verwenden ALC269, wie ich es sah eininteressante Patchdateibeim Googeln. Der Link ist für Rasp Pi, aber ich dachte, es ist einen Versuch wert, da es ALC269einunterstütztes Kernel-HDA-Audiomodell. Obwohl sich dadurch nichts geändert hat, kann es vielleicht jemandem nützen.

Für jede Hilfe ist hier dankbar. Meine Linux-Kenntnisse gehen weit über das Ziel hinaus.

PS: Manjaro, Linux56, obwohl alle Distributionen das gleiche Problem mit der Soundkarte haben. Ich habe in den letzten Monaten fast jede Distribution installiert, in der Hoffnung, dass der Sound funktioniert.

Bearbeiten 1

Hinzugefügt einPastebinvon alsa-info.shfür weitere Informationen.

Antwort1

Gute Neuigkeiten! Ein sehr schlauer Arch-Benutzer namens ronincoder hat einen Fix für die Kopfhörerbuchse gefunden. Ich habe mit ronincoder zusammengearbeitet, um einen Kernel-Patch [1] zu erstellen, und unser Patch hat es in die Kernel-Version 5.7 geschafft! Er wurde auch auf den 5.4 LTS-Kernel angewendet. Ich habe sowohl 5.7.2 als auch 5.4.46 gebootet und der Ton über die Kopfhörerbuchse ist laut und klar. :)

Funktioniert es bei Ihnen? Es sollte funktionieren, wenn Sie ein Samsung Notebook 9 Pro NP930SBE-K01US oder NP930MBE-K04US haben (ronincoders ist ersteres, meines ist letzteres). Sie können Ihr Laptop-Modell überprüfen, indem Sie alsa_info.sh ausführen und „Board Name“ ansehen. Der Realtek ALC298-Codec im NP930SBE-K01US und NP930MBE-K04US identifiziert sich mit „Subsystem Id“ 0x144dc169 bzw. 0x144dc176. Wenn snd_hda_intel eine dieser IDs sieht, implementiert es den Fix.

Und was ist mit den Lautsprechern? Ich habe das Problem, dass aus den internen Lautsprechern kein Ton kommt, im Kernel-Bugzilla [2] gemeldet. Der Linux-Sound-Betreuer Jaroslav Kysela spekuliert, dass möglicherweise einige Verstärker an den HDA-Codec angeschlossen sind, die nicht vom BIOS initialisiert werden und daher unter Linux nicht aktiv sind. Er schlägt vor, die Codec-Kommunikation für den Windows-Treiber mit QEMU zu dumpen. Wir könnten dann den Dump analysieren und die Kommunikation unter Linux mit Early Patching [3] oder durch das Schreiben eines weiteren Kernel-Patches wiedergeben. Es ist einen Monat her, seit Jaroslav diesen Vorschlag gemacht hat, und ich habe einige Fortschritte gemacht, aber ich habe immer noch keinen guten Dump. Bitte beteiligen Sie sich an der Diskussion im Kernel-Bugzilla, wenn Sie mir helfen möchten ^^

[1] Zur Referenz: Unser Patch hat es in Linus‘ Tree als Commit 14425f1f521f geschafft (ALSA: hda/realtek: Add quirk for Samsung Notebook). [2]https://bugzilla.kernel.org/show_bug.cgi?id=207423 [3]https://www.kernel.org/doc/html/v4.17/sound/hd-audio/notes.html#early-patching

Antwort2

Unter elementaryOS (basierend auf Ubuntu 20.04) wurde kein Ton auf meinem MacBook Pro 2012 behoben, indem die Konfigurationsdatei bearbeitet sudo vim /etc/modprobe.d/alsa-base.confund ersetzt wurde

options snd-hda-intel model=generic

von

# options snd-hda-intel model=generic
options snd-hda-intel probe_mask=1

Weitere erläuternde Einzelheiten:

Hinweis: Ich bin nicht sicher, warum das Problem mit dem fehlenden Ton überhaupt auftrat oder was sich vorher geändert hat, da es nach der Installation zunächst funktionierte.

pacmd list-cardsBei der Abfrage im Terminal änderte sich die Ausgabe jedoch (vor der Korrektur):

ports:
    analog-input-mic: Mikrofon (priority 8700, latency offset 0 usec, available: unknown)
        properties:
            device.icon_name = "audio-input-microphone"
    analog-output-speaker: Lautsprecher (priority 10000, latency offset 0 usec, available: unknown)
        properties:
            device.icon_name = "audio-speakers"
    analog-output-headphones: Kopfhörer (priority 9900, latency offset 0 usec, available: no)
        properties:
            device.icon_name = "audio-headphones"
    iec958-stereo-output: Digitalausgang (S/PDIF) (priority 0, latency offset 0 usec, available: unknown)
        properties:

zu (nach Korrektur):

ports:
    [Out] Speaker: Speaker (priority 100, latency offset 0 usec, available: unknown)
        properties:
            
    [Out] Headphones: Headphones (priority 200, latency offset 0 usec, available: no)
        properties:
            
    [In] Mic2: Headphones Stereo Microphone (priority 200, latency offset 0 usec, available: unknown)
        properties:

(Beachten Sie hier den Unterschied in der Syntax.)

Außerdem hat sich die Ausgabe sudo vim aplay -lvon (vor der Korrektur) geändert:

Karte 0: PCH [HDA Intel PCH], Gerät 0: Generic Analog [Generic Analog]
  Sub-Geräte: 0/1
  Sub-Gerät #0: subdevice #0
Karte 0: PCH [HDA Intel PCH], Gerät 1: Generic Digital [Generic Digital]           
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0

zu (nach Korrektur):

Karte 0: PCH [HDA Intel PCH], Gerät 0: CS4206 Analog [CS4206 Analog]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 0: PCH [HDA Intel PCH], Gerät 1: CS4206 Digital [CS4206 Digital]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0

Antwort3

Das Problem hier ist, dass der ALC298 von Realtek eine andere Busanforderung hat, nämlich I2S. Ab Linux56 wird der I2S-Audiocodec nicht mehr unterstützt und dies scheint der neue Standard zu sein. Lenovo, Samsung und Huawei scheinen Soundkarten mit diesem neuen I2S-Standard zu verwenden und ich habe viele ungelöste Threads/Themen zu diesem Thema gefunden.

Ich habe einen Workaround gefunden, um die Kopfhörer zu reparieren, der bei mir und einer anderen Person, die ein Samsung Notebook Pro 9 verwendet hat, funktioniert hat. Die Lösung verwendet eine Kernelfunktion namens „Early Patching“, um die Standard-Pins, Verben, Modelle und andere ALSA-spezifische Attribute optional zu überschreiben. Vollständige Informationen einschließlich eines alternativen benutzerdefinierten Kernel-Patches finden Sie unterArch Linux-Foren.

Antwort4

Versuchen Sie die folgenden Anweisungen. Sie konnten das gleiche Problem auf meinem System beheben.

  1. Sie führen den Befehl „aplay“ aus, hören aber nichts. Wie wäre es, den Befehl „sudo aplay“ auszuführen? Wenn ALSA funktioniert, können Sie den Ton hören.

  2. Ich denke, dass Pulseaudio in Ihrem System läuft. Es kann jedoch Kompatibilitätsprobleme zwischen Alsa-Lib und dem SND-HDA-Intel-Treiber geben.

    $pacmd Listenkarten

Überprüfen Sie die Ergebnisse unter „Ports“. Wenn Sie nichts im Zusammenhang mit dem Lautsprecher sehen, bedeutet dies, dass die Soundkarte von Pulseaudio nicht erkannt wird.

  1. Bearbeiten Sie die Datei "/usr/share/alsa/ucm2/HDA-Intel/HDA-Intel.conf". Wenn Sie nach "Define.Use" eine leere Zeichenfolge sehen, geben Sie einfach "3" in die Zeichenfolge ein. Speichern Sie sie anschließend.

  2. Starten Sie Ihren Computer neu. Wenn Sie immer noch keinen Ton hören, prüfen Sie, ob Ihre Soundkarte „Dummy Output“ ist. Wenn ja, fügen Sie am Ende von „/etc/modprobe.d/alsa-base.conf“ „options snd-hda-intel model=generic“ hinzu.

Dieses Problem wird hauptsächlich durch „HDA-Intel.conf“ verursacht. Ich verstehe wirklich nicht, warum Entwickler die Zeichenfolge „Define.Use“ leer lassen.

verwandte Informationen