ubuntuusers.de

HDA

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:


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:

./alsa-logo.jpg

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 den HDA-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*
# bzw bei mehreren Chips:
grep -H Codec /proc/asound/card*/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.

Diese Revision wurde am 13. August 2023 09:46 von pepre erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Hardware, Installation, Audio