HDA
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Ubuntu 22.04 Jammy Jellyfish
Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
In aktuellen Computern (ca. ab Mitte 2000er) ist ein Soundchip verbaut, der sich selbst als "HDA" (High Definition Audio) ausgibt. Dabei handelt es sich um eine Soundchip-Familie mit vielen - teils sehr unterschiedlichen - Mitgliedern. Dessen Vorgänger AC’97 ist nicht Teil dieses Artikels. Leider ist das Zusammenspiel von ALSA und diesen Chips oft ein Problem, da die Chip-Hersteller aus dem internen Aufbau dieser Chips ein Geheimnis machen. Das Fehlerbild ist vielfältig und reicht von "gar kein Ton", über "Ton aus Kopfhörer und internen Boxen zur selben Zeit" bis "Ton-Regler funktionieren nicht", und noch vieles mehr. Diese Seite soll bei der Inbetriebnahme der Tonausgabe mit diesen Soundchips helfen.
Installation¶
Folgendes Paket muss installiert [1] werden:
alsa-base
Befehl zum Installieren der Pakete:
sudo apt-get install alsa-base
Oder mit apturl installieren, Link: apt://alsa-base
Einrichtung¶
Zunächst muss ermittelt werden, welcher genaue Chip-Typ im Rechner sitzt [2]:
cat /proc/asound/cards
Damit sieht man, wie der Chip von ALSA identifiziert wurde, beispielsweise als "HDA Intel", "HDA ATI SB" oder "HDA VIA VT82xx". Anschließend muss man noch den genauen Codec-Typ bestimmen:
head -n 1 /proc/asound/card0/codec*
Mit der letzteren Ausgabe kann man nun in der Datei ALSA-Configuration.txt gezielt nach Parametern für den Chip suchen:
zless /usr/share/doc/alsa-base/driver/ALSA-Configuration.txt.gz
Innerhalb dieser Datei-Ausgabe sucht man nun nach der Zeichenkette hda
. Unter der Überschrift Module snd-hda-intel
sind die Modul-Parameter für diesen Chip aufgeführt. Beispiel: Hat die Codec-Ausgabe ALC 880
ergeben, so findet man unter dieser Unter-Überschrift sämtliche möglichen Modell-Parameter, wie beispielsweise 3stack
, 3stack-dig
oder spezielle Laptop-Modelle. Findet man seine Codec-Ausgabe dort nicht, sucht man in HD-Audio-Models.txt:
zless /usr/share/doc/alsa-base/driver/HD-Audio-Models.txt.gz
Findet sich dort auch nichts, so installiert man das Paket linux-doc:
sudo apt install linux-doc
Die Daten finden sich dann hier:
zless /usr/share/doc/linux-doc/sound/hd-audio/models.rst.gz
Wahlweise kann man auch im Web unter dieser Adresse nachsehen. Jedoch findet sich dort immer der Stand für den aktuellsten Linux Stable Kernel.
Mit diesen möglichen Modellnamen beginnt nun die Arbeit. Man teilt ALSA mit, welcher Chip-Typ verwendet werden soll. Dazu muss die Datei /etc/modprobe.d/alsa-base.conf in einem Editor mit Root-Rechten bearbeitet werden [3]. An das Ende dieser Datei wird - um bei obigem Beispiel (für andere siehe Tabelle unten) zu bleiben - folgende Zeile eingefügt:
options snd-hda-intel model=3stack
Nach dem Ändern der Datei sollte der Rechner neu gestartet werden. ALSA erfährt dann beim Starten, welcher HDA-Typ angesprochen wird. Alternativ dazu kann mittels rmmod
das snd_hda_intel
-Kernelmodul entfernt werden und mittels modprobe snd-hda-intel model=xxx
neu geladen werden. Parallel dazu kann in einem zweiten Fenster mittels tail -f /var/log/syslog
die Kernelausgabe via syslog verfolgt werden, ob das korrekte Modell für den Soundchip geladen wurde.
Falls es nicht funktionieren sollte, muss man sämtliche verschiedenen Modelle durchprobieren, bis man das passende gefunden hat. Eventuell ist kein Ton - trotz des richtigen Modellnamens - hörbar. Deshalb sollte man mittels Alsamixer die Einstellungen der Regler und Schalter überprüfen.
Hinweis:
Bei einigen Chips (z.B. "ALC883"), sowie bei Anschluss einer USB-Webcam mit integriertem Mikrofon, reicht der Eintrag in der alsa-base nicht aus. In diesem Fall sollte man die Zeile zusätzlich an das Ende der Datei /etc/modules einfügen (dann jedoch ohne das führende options
).
Sollte man bei einer fehlerhaften Installation Veränderungen an den Einstellungen des ALSA-Mixers vorgenommen haben, so kann dies möglicherweise dazu führen, dass selbst bei einer späteren richtigen Installation noch kein Ton zu hören ist. In diesem Fall kann es nützlich sein, den ALSA-Mixer mittels des folgenden Befehls auf den Standardwert zurückzustellen.
sudo /etc/init.d/alsa-utils reset
In jedem Fall empfiehlt es sich, mit alsa reload festzustellen, ob es möglicherweise andere Problemursachen gibt, siehe hier: Soundkarten konfigurieren (Abschnitt „Soundkarte-ist-stumm-obwohl-sie-unter-dem-Livesystem-funktioniert-und-auch-vom-System-erkannt-wurde“)
Weitere Ursachen¶
Bei Kernelversionen kleiner 2.6.29 und bei einigen fehlerhaften BIOS-Versionen, wie bei DELL-PCs Typ Vostro 420 mit Onboard-Soundcodec Realtek ALC662, kann als Fehlerursache außerdem vorkommen, dass von ALSA zwar mit dem Modeltyp auto der korrekte Soundchip (wie beispielsweise ALC662) ermittelt wird, aber nicht der dazu passende Slot. Bei HDA sind mehrere sogenannte Codec-Slots verfügbar, wobei im allgemeinen nicht alle Slots belegt sind. Welche Codec Slots im Zweifelsfall tatsächlich belegt sind, kann nur durch Probieren und explizite Angabe der Slot-Nummer festgestellt werden. Der Slot kann explizit und unabhängig von BIOS durch den zusätzlichen Parameter probe_mask
beim Laden des Kernelmoduls festgelegt werden:
options snd-hda-intel model=auto probe_mask=1
Der Zahlenwert stellt eine binäre Maske dar, wobei =1
bedeutet dass der erste Slot probiert werden soll. Mit =2
wird der zweite Slot probiert, mit =4
der dritte Slot und mit =8
der vierte Slot.
Alternativen¶
Neueste ALSA-Version benutzen¶
Leider werden von den HDA-Chips sehr schnell immer wieder neue Varianten auf den Markt geworfen. Da für diese Chips oftmals nur eine schlechte oder gar keine Dokumentation angeboten wird, ist das Entwickeln freier Treiber sehr schwierig. Ist man also mit der oben genannten Methode nicht fündig geworden, so wird der Chip höchstwahrscheinlich in der ALSA-Version, die man auf dem Rechner hat, nicht unterstützt. In diesem Falle muss man direkt bei ALSA nachsehen, ab welcher Version der Chip unterstützt wird, und diese Version dann selbst auf dem Rechner compilieren und installieren (s. HDA Intel Sound Howto). Dies ist aber nicht trivial und wird nur erfahrenen Benutzern empfohlen.
Achtung!
Man sollte genau wissen was man tut, wenn man das unten genannte daily ppa einbindet. Vor allem sollte man wissen, wie man gegebenenfalls den alten Zustand wieder herstellt.
Für neuere Ubuntu-Versionen ab Maverick bietet es sich an, die Kernelmodule aus den aktuellen Quellen mit DKMS zu bauen. Entweder lädt man sich manuell auf der Seite des Ubuntu Audio Development Teams 🇬🇧 das dazu täglich aktualisierte Paket herunter und installiert dieses mittels Mausklick oder gibt folgende Terminal-Befehle ein:
Quelle hinzufügen.
sudo apt-add-repository ppa:ubuntu-audio-dev/alsa-daily
Paketlisten aktualisieren:
sudo apt-get update
Paket installieren:
sudo apt-get install oem-audio-hda-daily-dkms
Beispielkonfigurationen¶
HDA-Intel-Soundchips | ||
Gerät | Codec | Alsa-Parameter |
Apple iMac 13.2 | Cirrus Logic CS4206 | options snd-hda-intel model=imac27_122 |
Apple iMac 21.5 | Cirrus Logic CS4206 | options snd-hda-intel model=imac27_122 (+Aktivierung des Kopfhörerausgangs:) sudo hda-verb /dev/snd/hwC0D0 0x0a SET_POWER_STATE 0 |
Apple MacBook Pro 5,1 | Realtek ALC889A | options snd-hda-intel model=mb5 |
Acer 8930 G | Realtek ALC889 | options snd-hda-intel model=auto |
Acer Aspire 5253 | options snd-hda-intel power_save=10 power_save_controller=N options snd-hda-intel model=auto | |
Acer Aspire 3820TG | Realtek ALC629 | options snd-hda-intel model=auto (Kopfhörer getrennt vom Lautsprecher siehe Artikel für Lenovo G555 unter Links weiter unten; getestet unter Debian testing) |
Acer Aspire 6530 G | Realtek ALC888 | Komischerweise funktioniert die externe 5.1-Ausgabe mit der Angabe des Modells acer-aspire-6530g nicht! Abhilfe schafft dagegen options snd-hda-intel model=acer-aspire-4930g - für externe 5.1-Ausgabe im Alsamixer den Wert von channel auf 6ch erhöhen |
Acer Aspire 6920 G | Realtek ALC889 | options snd-hda-intel model=auto und mind. ALSA 1.0.18 |
Acer Aspire 5739G | Realtek ALC888 | options snd-hda-intel model=acer-aspire-6530g options snd-hda-intel enable_msi=1 Tuba CineBass Boster aktiv ! Ton über Kopfhörer geht nur mit Lautsprecher gemeinsam. |
Acer Aspire 5710z | Realtek ALC268 / Conexant ID 2c06 | options snd-hda-intel model=acer |
Acer Aspire 7530 | Realtek ALC888 | options snd-hda-intel model=acer-aspire |
Acer Aspire 8942 G | Realtek ALC670 | options snd-hda-intel model=lenovo-101e |
Acer Travelmate 5720 | Realtek ALC268 / Conexant ID 2c06 | options snd-hda-intel model=acer |
Acer Travelmate 8471 G | Realtek ALC269 | options snd-hda-intel model=lifebook |
Asus A6000 & Pro60 | Realtek ALC880 | options snd-hda-intel model=z71v |
Asus A3680G | Realtek ALC650F | (unbekannt) |
Asus F3JP Asus F3Sa (aka X52S) ebenso Asus X56Series und Asus X70Series und Asus X53K | Realtek ALC660-VD | options snd-hda-intel model=lenovo probe_mask=1 |
Asus F9DC | Realtek ALC660-VD / Motorola Si3054 | options snd-hda-intel model=lenovo |
Asus G2P | Realtek ALC882 / Generic 1543 Si3054 | options snd-hda-intel model=asus-a7j |
Asus G501v* | Realtek ALC668 | options snd-hda-intel model=dell-headset-multi |
Asus M70V | Realtek ALC663 | options snd-hda-intel model=auto - Basslautsprecher wird nicht mit stummgeschaltet. |
Asus X50Nseries | Realtek ALC660-VD / Motorola Si3054 | options snd-hda-intel model=lenovo |
Asus X71S | Realtek ALC888 | options snd-hda-intel model=acer-aspire - Einzige Möglichkeit, um gleichzeitigen Ton aus Boxen und Kopfhörern zu vermeiden. Boxen funktionieren nicht, Ton nur aus Kopfhörern (ggf.ext. Boxen verwenden) |
Belinea o.book 5 | Realtek ALC888 | options snd-hda-intel model=targa-dig - Soundausgabe von Notebook-Boxen auf Kopfhörer/Anlage umleiten, wenn Kopfhörer/Anlage-Ausgang verwendet wird. |
Dell Vostro 420 | Realtek ALC662 | options snd-hda-intel model=auto probe_mask=1 |
Dell Studio 1555 & 1558 | IDT STAC92HD73C1X5 | options snd-hda-intel model=dell-m6 |
Dell Latitude E4300 | Intel Corporation 82801I (ICH9 Family) HD Audio Controller | options snd-hda-intel model=dell |
Dell Latitude E5410, E5510, E6410, E6510 | IDT 92HD81B | options snd-hda-intel model=dell-s14 |
Fujitsu Siemens Amilo M1437G | Realtek ALC880 | options snd-hda-intel model=fujitsu - Mikrofonbuchse funktioniert nicht |
Fujitsu Siemens Amilo Pro v3515 ebenso Amilo Si 1520 | Conexant CX20549 (Venice), identisch mit Conexant 5045 | options snd-hda-intel model=laptop |
Fujitsu Siemens Amilo Xi2550 | Realtek ALC883 | options snd-hda-intel model=lenovo-ms7195-dig - Nach dem Neustart des Rechners Programm alsamixer starten und dort im Feld "Channel Mode" statt "2ch" "6ch" einstellen; überdies über System > Einstellungen > Klang im Feld „Eingabe“ bei „Verbindungsglied“ „Microphone 2“ auswählen |
HP Pavilion dv-7 Serie | Intel Corporation 82801I (ICH9 Family) HD Audio Controller | options snd-hda-intel enable_msi=1 |
HP Pavilion dv5 1150eg | IDT 92HD71B7X | options snd-hda-intel model=hp-dv5 enable_msi=1 |
HP Pavilion dv5 1254eg | Generic 10de ID 6 | options snd-hda-intel model=hp-m4 |
HP Pavilion p6138de | Realtec ALC1200 identisch zu ALC888S | options snd-hda-intel model=3stack-hp |
HP Compaq 6735s | ADI SoundMAX AD1984A Audio | options snd-hda-intel model=hp position_fix=1 enable=yes |
Lenovo 3000 N200/C200 | ALC861-VD | options snd-hda-intel model=lenovo |
Lenovo Thinkpad E555 | Conexant CX20751/2 | mit dieser Anleitung |
Lenovo Thinkp. Edge15 | Realtek ALC269 | options snd-hda-intel model=lifebook |
Lenovo Thinkpad T500 | Intel Corporation 82801I (ICH9 Family) HD Audio Controller | options snd-hda-intel model=thinkap enable=1 index=0 |
Lenovo Thinkpad X200s | Intel Corporation 82801I (ICH9 Family) HD Audio Controller | options snd-hda-intel model=generic |
Lenovo G555 | Conexant ID 5069 / CX20585 | mit dieser Anleitung |
LG S1-PDGGG | Realtek ALC880 | options snd-hda-intel model=lg |
LG T1 Express Dual | Realtek ALC880 | options snd-hda-intel model=lg - funktioniert nur bis Kernel-Version 3.18 |
Maxdata pro 6100 I | Realtek ALC880 | options snd-hda-intel model=lg-lw |
Medion MD 96394 | Realtek ALC883 | options snd-hda-intel model=medion-md2 - Ton nur über Kopfhörerbuchse, interne Lautsprecher ohne Funktion (Hardy α3), wird unter mit dem 2.6.31 Kernel (Karmic beta) überflüssig, da funktionierende Treiber vorhanden sind |
Medion MD 96500 | Realtek ALC880 | options snd-hda-intel model=6stack-digout - S/PDIF-out nicht getestet |
Medion MD 96630 | Realtek ALC888 | options snd-hda-intel model=laptop-eapd probe_mask=1 - Ton nur über interne Lautsprecher, Kopfhörerbuchse ohne Funktion, S/PDIF-out nicht getestet |
Medion MD 97900 | Realtek ALC883 | options snd-hda-intel model=medion-md2 |
Medion MD 99373 | Realtek ALC269VC | options snd-hda-intel model=medion-md2 |
MSI MegaBook | Realtek ALC888 | options snd-hda-intel model=targa-dig |
MSI VR201 | Realtek ALC883 | options snd-hda-intel model=targa-2ch-dig |
MSI GX600 | Realtek ALC888 | options snd-hda-intel model=3stack-6ch-dig - Funktion der Checkbox "Kopfhörer" im Mixer invers, S/PDIF-out nicht getestet. |
Samsung M60 Calipa | Realtek ALC262 | (Hardy) options snd-hda-intel model=generic - zusätzlich backports_aktivieren |
Samsung N130 | Realtek ALC269 | Ubuntu 12.04: options snd-hda-intel model=laptop-amic |
Sony Vaio VGN AR51(J/E) | Realtek ALC262 | options snd-hda-intel model=vaio - zusätzlich snd-hda-intel model=vaio in die /etc/modules eintragen |
Sony Vaio VGN AR88E | Realtek ALC262 | options snd-hda-intel model=vaio - zusätzlich snd-hda-intel model=vaio in die /etc/modules eintragen |
Targa Traveller 1524 X2 | Realtek ALC888 | options snd-hda-intel model=targa-dig - zusätzlich snd-hda-intel model=targa-dig in die /etc/modules eintragen Achtung!Funktioniert nicht unter Lucid Lynx! Empfohlene Vorgehensweise: Standard-Einstellungen beibehalten. |
Targa Traveller 1577 X2 | Realtek ALC883 | Gleiches Vorgehen wie beim anderen Targa-Modell |
Toshiba Satellite A210-15Y | Realtek ALC268 | options snd-hda-intel model=toshiba |
Toshiba Satellite L350D-11S | Realtek ALC268 / Conexant ID 2c06 | options snd-hda-intel model=auto (Intrepid) |
Toshiba Satellite L40-13C | Analog Devices AD1986A / Generic 11c1 Si3054 | options snd-hda-intel model=3stack (Hardy/Intrepid/Intrepid/Karmic) |
Toshiba Qosmio G55 | Realtek ALC262 | options snd-hda-intel model=toshiba-s06 und update auf alsa 1.0.20 (Jaunty) |
Toshiba Tecra A10-137 | Realtek ALC268 | options snd-hda-intel model=toshiba (Intrepid) |
Toshiba Portege R500 | Realtek ALC262 | options snd-hda-intel model=toshiba-rx1 |
Toshiba NB 100 | Realtek ALC262 | options snd-hda-intel model=auto (12.04) |
Packard Bell EasyNote S4 | Realtek ALC260 | options snd-hda-intel single_cmd=1 (Workaround für 14.04; single_cmd ist eigentlich für Debugging-Zwecke gedacht) |
Problembehebungen¶
Lautsprecher knacksen¶
Bei eingeschalteten Stromsparmechanismen kann es passieren, dass der Soundchip oft ein- und ausgeschaltet wird. Das kann bei jedem Schaltvorgang (unter anderem) zu einem Knacksen führen. Lösung: man schaltet für den Soundchip das Stromsparen aus. Temporär macht man das so:
echo 0 | sudo tee /sys/module/snd_hda_intel/parameters/power_save
echo N | sudo tee /sys/module/snd_hda_intel/parameters/power_save_controller
Ab sofort sollte das Knacksen verschwunden sein. Ist es tatsächlich so, so macht man die Änderung permanent:
echo "options snd-hda-intel power_save=0 power_save_controller=N" | sudo tee /etc/modprobe.d/hda.conf
Dies übergibt die Parameter beim Laden des Modules (also bei jedem Bootvorgang).
Falls man schon andere Parameter in der Datei /etc/modprobe.d/alsa-base.conf gesetzt hat, so ergänzt man diese Parameter dort.
Links¶
Soundkarten-Inhaltsverzeichnis dieses Wikis
IntelSoundHowto 🇬🇧 - Anleitung in der ubuntu community documentation