Das Thema Klangwiedergabe unter Ubuntu ist sehr komplex, da mehrere Software-Ebenen daran beteiligt sind. Es ist sehr hilfreich, wenn man die Grundlagen der Klangerzeugung unter Ubuntu kennt. Deshalb sei es hier allen angeraten zuerst den Artikel Soundsystem zu lesen. Probleme mit dem Sound können vielfältigste Erscheinungsformen und Ursachen haben: fehlende Software, eine nicht funktionierende automatische Hardware-Erkennung, eine Fehlkonfiguration des Soundsystems, falsche Einstellungen oder - schlimmstenfalls - keine Unterstützung für die Hardware. Letzteres passiert, wenn die Hersteller den Linux-Entwicklern keine Informationen über die Funktionsweise der Soundkarten überlassen. Die Entwickler sind dann gezwungen, die Karte mittels Reverse Engineering anzusteuern, was bei neu auf dem Markt erschienener Hardware dauern kann, oder schlicht nicht möglich ist.
Um die Problemursache einzukreisen, ist es sehr wichtig den Systemzustand zu kennen. Wenn man sich Hilfe im Forum holen will, so ist eine aussagekräftige Schilderung der Symptome und des Systemzustandes hilfreich; hierbei ist dieser Artikel nützlich.
Als erstes wird geprüft, ob die Soundkarte von Ubuntu erkannt worden ist. Ubuntu nutzt für die Ansteuerung der Soundkarten ALSA
; sie stellt die Kernelmodule ("Treiber") zur Verfügung. ALSA ist bereits vorinstalliert, man muss also keine Soundtreiber herunterladen und installieren - wie man das von Windows vielfach gewohnt ist.
Ob ALSA die Karte erkannt hat, wird mit diesem Befehl[3] überprüft:
cat /proc/asound/cards
Falls die Ausgabe "no soundcards" oder ähnlich lautet, so konnte die Soundkarte nicht von ALSA erkannt werden. In dem Fall muss man die Soundkarte über das PCI-System ermitteln. Der entsprechende Befehl lautet:
lspci | grep -i audio
Somit hat man den Namen der Soundkarte und kann mit den Recherchen beginnen. Sollte der letzte Befehl keine Ausgabe erzeugen, so wird am PCI-Bus keine Soundkarte erkannt. Eventuell könnte sie noch am USB angeschlossen sein. Dann hilft dieser Befehl:
lsusb
Erhält man hier auch keine Ausgabe, die auf eine Soundkarte schließen lässt, so hat man schlechte Karten.
Eine funktionierende Erkennung sieht beispielsweise so aus:
0 [CMI8738MC6 ]: CMI8738-MC6 - C-Media PCI CMI8738-MC6
C-Media PCI CMI8738-MC6 (model 55) at 0xd800, irq 19
1 [V8237 ]: VIA8237 - VIA 8237
VIA 8237 with AD1888 at 0xe000, irq 20Hier wurden zwei Soundkarten von ALSA erkannt: eine CMI-Karte mit der Nummer "0" und der ALSA-Bezeichnung "CMI8738MC6", und eine VIA-Karte mit der Nummer "1" und der ALSA-Bezeichnung "V8237". Sollte eine Karte mit dem Namen "UART" gefunden werden, so stellt diese eine Schnittstelle zu MIDI dar. Wem MIDI nichts sagt, der kann es ignorieren. ALSA kann hier auch TV-Karten erkennen; davon sollte man sich ebenfalls nicht irritieren lassen.
Falls ALSA eine Karte erkannt hat, so prüft man, ob das Soundsystem Daten entgegen nimmt:
aplay /usr/share/sounds/startup.wav
Ab Intrepid Ibex existiert /usr/share/sounds/startup.wav nicht mehr, man muss deswegen eine andere wav-Datei verwenden, zum Beispiel
aplay /usr/share/sounds/alsa/Front_Center.wav
Hier sollte die Ausgabe ungefähr so aussehen:
Wiedergabe Wave '/usr/share/sounds/startup.wav' : Signed 16 bit Little Endian, Samplingrate: 44100 Hz, Stereo
Das bedeutet, dass die Datei abgespielt wird - egal, ob man etwas hört oder nicht. Bekommt man etwas ganz anderes angezeigt, so scheitert bereits die Übergabe der Datei an das Soundsystem. Dazu später mehr.
Der Artikel Audio-Fehler-Beschreibung behandelt ausführlich und kurz weitere Möglichkeiten, um für sich selbst oder die Hilfe durch die Ubuntu-Gemeinschaft relevante Systeminformationen zum Thema Soundprobleme zu ermitteln.
Mit den obigen Erkenntnissen kann man das Soundproblem nun näher einkreisen, und Gegenmaßnahmen ergreifen. Die in der Tabelle verwendete Angabe "ok" bezieht sich auf den oben ermittelten Systemzustand.
"Gar kein Sound" erklärt sich von selbst.
"Teilweise Sound" bedeutet, dass zwar einzelne Programme Sound ausgaben, andere hingegen jedoch nicht.
"Komischer Sound" bedeutet, dass der Klang zum Beispiel verzerrt ist oder die falsche Geschwindigkeit hat.
| ALSA nicht ok | ALSA ok, Wiedergabe nicht | ALSA ok, Wiedergabe ok | |
| Gar kein Sound | Soundkarten installieren Rechte | Soundsystem einstellen | Mixer einstellen |
| Teilweise Sound | - | Soundserver Rechte | Soundserver Mixer einstellen |
| Komischer Sound | - | Soundkarten installieren | Soundkarten installieren Soundserver Mixer einstellen |
Zuerst muss natürlich sichergestellt sein, dass die Soundkarte vom Rechner passend erkannt wird. Dafür zuständig ist ein ALSA-Kernel-Modul (Windows-User nennen dieses "Treiber"). Beim Bestimmen des richtigen Moduls und dessen Verwendung hilft die Seite Soundkarten installieren. Einige Module wollen noch Parameter, damit sie die Soundkarte richtig initialisieren können. Dieses Vorgehen wird speziell für die HDA-Chips hier beschrieben: Soundkarten installieren/HDA. Auch andere Chips wollen eventuell solche Parameter (zum Beispiel die ICE1712-Chips); das Vorgehen ist dabei analog zu den HDA-Chips, nur eben mit den zuständigen Modulen.
Falls man es durch wildes Verkonfigurieren geschafft hat, dass die ALSA-Module nicht mehr verfügbar sind, muss man den aktuellen Kernel reinstallieren. Dies macht man mit diesem Befehl:
sudo apt-get install --reinstall linux-image-$(uname -r)
Die ALSA-Module sind Bestandteil des Kernels und werden deshalb wieder auf den ursprünglichen Stand gebracht.
Wenn sowohl ALSA eine Karte erkannt hat, als auch der Wiedergabe-Befehl funktioniert, ist zumeist im Mixer etwas verstellt. Als erstes sollte überprüft werden, ob eventuell unsinnige Einstellungen die Soundausgabe verhindern. Dies tut man mit dem Programm Alsamixer. Soundprobleme nach einem Upgrade haben häufig die Ursache, dass einige Einstellungen während des Updates verändert wurden. Insbesondere der PCM-Regler darf nicht auf "Mute" stehen und die PCM- und Wave-Regler sollten auf ca. 80% hochgeregelt sein. Auch wenn der Lautstärkeregler von z.B. GNOME kein Mute anzeigt, kann es im Alsamixer trotzdem eingestellt sein! Eventuell ist die Soundausgabe auf SPDIF gestellt, und die analogen Buchsen werden deshalb nicht bedient. Hier ist der Regler "IEC958" zuständig, der auf Mute gestellt werden muss.
Hat man die Einstellungen sorgfältig überprüft, hört aber trotzdem nichts, so hilft unter Umständen ein vollständiger Reset der Mixer-Einstellungen:
sudo /etc/init.d/alsa-utils reset
Danach sollte man mit Alsamixer die Einstellungen nochmals überprüfen.
Unter Lucid Lynx ist das Programm alsa-utils nicht mehr unter /etc/init.d/ zu finden. Statdessen sind Befehle zu verwenden:
sudo /sbin/alsa-utils reset sudo /sbin/alsa-utils start
Gelegentlich wird die aktuelle Lautstärke-Einstellung bei einem Neustart nicht übernommen. Damit dies dennoch geschieht, gibt man Folgendes ein[3]:
sudo alsactl store
Nun sollte nach einem Neustart die Lautstärke noch die gleiche sein. In seltenen Fällen ist es nötig, für ein wiederherstellen der Lautstärke noch folgenden Befehl zu nutzen:
sudo alsactl restore
Dieser Befehl kann gegebenenfalls beim Start einer Sitzung automatisch ausgeführt werden: siehe Autostart
Jeder Desktop (GNOME, KDE...) bringt seinen eigenen Mixer mit. In diesem müssen nicht alle Regler und Schalter sichtbar sein. Sie lassen sich jedoch in der Regel einfach über die Konfiguration des Mixers aktivieren. Für Soundkarten mit dem Chip ICE1712 wird dringend die Verwendung des Mixers envy24control (im Paket alsa-tools-gui enthalten) angeraten, da diese sich damit wesentlich einfacher einstellen lassen.
Um das Soundsystem zu verstehen, sollte man dringend folgende Seite gelesen haben: Soundsystem.
Wenn ALSA mehrere Soundkarten im System ermittelt hat, so kann die Soundausgabe eventuell an die falsche Karte geleitet werden. Zuerst sollte man mit asoundconf probieren, ob sich das Problem damit lösen lässt. Falls auf dem Mainboard ein Onboard-Soundchip verbaut ist, kann man ihn - falls man ihn nicht braucht - im BIOS deaktivieren: eine Fehlerquelle weniger.
Seit Karmic Koala ist asoundconf nicht nicht mehr in alsa-utils enthalten. Hier kann man die passende Soundkarte über die Gnome-Lautstärke-Reglung und Kombination mit Pulse einfacher auswählen.
Man kann also z.B. die Soundkarte über "System -> Einstellungen -> Klang -> Eingabe/Ausgabe" auswählen.
Falls dies nicht funktioniert, legt man für die Soundkarten eine Reihenfolge fest. Voraussetzung ist, dass das Paket alsa-base installiert[1] ist. Dieses Paket schreibt in den Ordner /etc/modprobe.d/ die Datei alsa-base.conf. Diese lässt man so, wie sie ist; in der Regel kann man aber auch alles auskommentieren. Wenn man sich nicht sicher ist, sollte man auf jeden Fall eine Sicherheitskopie anlegen und/oder im Forum fragen. Diese Zeilen werden dann an das Ende der Datei angehängt[6]:
options DEVICE-1 index=0 options DEVICE-2 index=1
Wobei DEVICE-1 und DEVICE-2 jeweils für das zuständige Modul der Soundkarte steht. In wenigen Fällen reicht dieses jedoch nicht aus: man schreibt dann die obige Angabe noch zusätzlich an das Ende der Datei /etc/modules - jedoch ohne das führende options! Die Module werden nun in der Reihenfolge der Indizes geladen: je niedriger der Index ist, desto früher wird das Modul geladen. Wie man die passenden Modulnamen der Soundkarten herausfindet, erfährt man hier. Die Reihenfolge kann für beliebig viele Soundkarten festgelegt werden.
Falls auch das nicht funktioniert, so lese man diesen Forums-Thread.
USB-Soundkarten, zu denen auch Webcams mit Mikrofon oder USB-Headsets gehören, werden durch das Kernelmodul snd-usb-audio angesprochen. Besitzt man nun mehrere USB-Audiogeräte, die am Rechner angeschlossen sind, so kommt es vor, dass die Reihenfolge der Geräte sich bei einem erneuten Bootvorgang ändert. Die oben genannten Lösungsansätze sind hier nicht möglich, da es sich ja immer um das selbe Kernelmodul handelt. Doch auch bei USB-Geräten kann man die Reihenfolge bestimmen.
Dazu muss man erstmal die USB-ID-Nummern der Geräte bestimmen. Am einfachsten geht dies, indem man nur die relevanten Geräte an die USB-Ports anschließt, andere USB-Geräte also kurzzeitig absteckt, und dann den Befehl
lsusb
ausführt [3]. Beispielsweise erhält man als Ausgabe etwas wie
Bus 008 Device 001: ID 0000:0000 Bus 007 Device 002: ID 0d8c:000c C-Media Electronics, Inc. Audio Adapter Bus 003 Device 002: ID 0471:0311 Philips PCVC740K ToUcam Pro [pwc]
Hier sind zwei Geräte (eine Webcam und ein Headset) an den Rechner angeschlossen. Die Spalte mit 0d8c:000c ist die USB-ID. Diese setzt sich aus der vid (der "vendor-id") und der pid (der "product-id") im Format "vid:pid" zusammen. Diese Information muss man in die Datei /etc/modprobe.d/snd-usb-audio eintragen. Eventuell existiert die Datei noch nicht, man kann sie mit einem beliebigen Editor anlegen bzw. bearbeiten [6]. Hier träge man nun etwa
# Allgemein
options snd-usb-audio index={a},{b} vid=0x{vid1},0x{vid2} pid=0x{pid1},0x{pid2}
# Beispiel
options snd-usb-audio index=2,3 vid=0x0d8c,0x0471 pid=0x000c,0x0311
ein. Die Werte in den geschweiften Klammern {} sind anzupassen. Im Beispiel wird berücksichtigt, dass in dem Rechner bereits zwei Audiogeräte (die Soundkarte und eine TV-Karte) vorhanden sind. Daher sollen die externen Karten über die Option index=2,3 dahinter eingereiht werden. Nach dem nächsten Neustart sollten auch die USB-Audiogeräte ihre Reihenfolge beibehalten.
Für Karten, die kein Hardware-Mixing beherrschen, wird ein Soundserver benötigt; eine Erklärung hierzu findet man unter Soundsystem. Das sollte man unbedingt gelesen haben, damit man auch begreift, was man tut. Der Soundserver kann falsch eingestellt sein, was dann zu merkwürdigen Effekten führt. Beispiel: wenn der Soundserver eine höhere Arbeitsfrequenz als die Soundquelle hat, wird der Sound zu schnell abgespielt. Generell sollte Ubuntu aber passende Werte für den Soundserver vorkonfiguriert haben.
Oft spielen einige Programme nicht richtig mit dem Soundserver zusammen, oder das Soundsystem ist insgesamt nicht schlüssig. Es ist sinnvoll, bei Problemen die gesamte Soundausgabe erstmal auf ALSA umzustellen, ergänzen kann man das Soundsystem später immer noch. Dazu stellt man im GNOME-Menu unter "System -> Einstellungen -> Audio" bzw. "System -> Einstellungen -> Multimedia Systems Selector" alle Geräte auf ALSA um (bei Kubuntu im Kontrollzentrum). Will man die Systemklänge nutzen, so muss das Paket libesd-alsa0 installiert sein. ALSA fängt dann die ESD-Aufrufe für die Systemklänge ab und verarbeitet sie selbst.
Anschließend muss man mit asoundconf die default-card einstellen. Wenn man ein asoundconf reset-default-card hinterherschickt, kann das auch nicht schaden.
Damit auch GStreamer seine Audiosignale an ALSA weitergibt, muss man ihn ebenfalls auf ALSA umstellen. Dies tut man mit diesem Befehl:
gstreamer-properties
Dabei sollte man wirklich nur die Audio-Geräte umstellen, und die Finger vom Videosystem lassen.
Die Soundquellen (also die Programme, die den Sound abspielen) sollten ebenfalls auf ALSA umgestellt werden. Dies tut man in der Regel in der Konfiguration der Programme selbst.
Einige Programme können nicht mit ALSA kommunizieren, da sie zur Soundausgabe die Gerätedatei /dev/dsp erwarten. Diese Gerätedatei wird vom "Open Sound System" verwendet, um alle Klangausgaben an die Hardware weiter zu reichen. Mittlerweile ist sie obsolet, was sich aber offenbar noch nicht bei allen Programmentwicklern herumgesprochen hat. Um auch solche Programme mit ALSA kommunizieren zu lassen, muss man das Paket alsa-oss installieren. Kandidaten, welche man so starten muss, sind proprietäre Programme wie TeamSpeak und VMware bis einschließlich Version 6.5, oder besonders oft auch Spiele. Leider hilft diese Vorgehensweise nicht immer, und das Programm will einfach nicht tönen. (mehr)
Symptom: Die Soundkarte wird nach Anmeldung nicht erkannt. Wenn die Benutzerrechte nicht stimmen, kann es zu folgendem Soundproblem kommen: Die "Trommeln" vor der Anmeldung werden korrekt ausgegeben, nach einer Anmeldung geht die Soundkarte aber überhaupt nicht, da man unter "System -> Einstellungen -> Audio" keine Soundkarte auswählen kann.
Oftmals liegt dies daran, dass der angemeldete Benutzer nicht auf die Soundkarte zugreifen darf, weil ihm die benötigten Rechte fehlen. Nur Benutzer, die in der Gruppe "audio" sind, dürfen auf die Soundkarten zugreifen. Eventuell fehlt dem Benutzer dieses Recht. Mehr dazu findet man im Wiki unter Benutzer und Gruppen. Speziell das Problem einer Minimalinstallation ohne Displaymanager und nicht funktionierendem Sound kann so behoben werden.
Es hängt allgemein von der Soundquelle ab, ob und wie Surround funktioniert. Eine Stereo-CD wird immer nur zwei Kanäle (Front links und rechts) ansprechen (ebenso bei mp3s). Sollen in einem 5.1-System alle Boxen mit dieser CD angesprochen werden, so muss das Signal "verteilt" werden (ausführlich siehe .asoundrc). Eventuell unterstützt die Soundkarte auch ein "internes Verteilen" der Kanäle. Am besten prüft man mit Alsamixer nach, ob dafür ein Schalter oder Regler existiert. Wer PulseAudio nutzt, findet unter Surround-Sound Hinweise zur Konfigurierung.
Nativ findet man 5.1 o.ä. nur auf DVDs und in Spielen, wenn diese über solcherlei Tonspuren verfügen. Falls das richtige Ausgabe-Gerät im Player eingestellt ist, sollte eine 5.1-Wiedergabe funktionieren.
ALSA bringt für viele Surroundkarten vordefinierte Surround-Geräte mit, alternativ kann man sie mit asoundconf erstellen oder wiederherstellen. Wie diese funktionieren - also ob sie den Sound verteilen oder nicht - hängt vom ALSA-Modul ab, und ist bei verschiedenen Soundkarten unterschiedlich. Wer die volle Kontrolle über das Soundsystem haben will, und die vordefinierten Geräte funktionieren nicht richtig, der sollte sich eine passende .asoundrc anlegen.
Zum Testen der Surroundfähigkeit der Karte, z.B. ob die Anschlüsse richtig belegt sind, dient der Befehl speaker-test. Nur wenn dieser auf allen Boxen Sound ausgibt, hat eine weitergehende Konfiguration einen Sinn. Für ein 5.1-System wäre der passende Befehl beispielsweise speaker-test -c6 -D surround51.
Noch: Bei vielen 2.1-Systemen wird das Bass-Signal auf Hardware-Ebene aus den beiden Stereokanälen generiert. In diesem Fall nutzt man nur die normalen Stereo-Kanäle.
Falls man eine Fehlermeldungen erhält, die so eine oder eine ähnliche Zeile enthält:
audioconvert ! audioresample ! gconfaudiosink
dann stimmt die Ausgabe des GStreamers nicht mit dem gewählten Soundserver überein. Um ihn richtig einzustellen ruft man diesen Befehl auf:
gstreamer-properties
Ab Hardy ist als Soundserver PulseAudio im Einsatz. Wie man ihn installiert[1] und konfiguriert ist auf den Wikiseite PulseAudio beschrieben.
Bei Flash 9 funktioniert die Zusammenarbeit mit PulseAudio nicht. Abhilfe schafft unter Hardy die Installation des Paketes libflashsupport. Ab Jaunty heißt das Paket flashplugin-nonfree-extrasound.
Mit Flash 10 sollte das Paket libflashsupport bzw. flashplugin-nonfree-extrasound nicht mehr notwendig sein. Wenn trotzdem der Ton fehlt, kann man versuchen bei Alsa PulseAudio einzustellen:
asoundconf set-pulseaudio
Soundkarten, welche Hardware-Mixing beherrschen bieten den Vorteil, dass man keinen Soundserver benötigt. Es gibt nur wenige Chipsätze auf dem Markt, die Hardwaremixing unterstützen. Wenn man wissen will, ob die eigene Soundkarte Hardwaremixing kann, so sollte man nachsehen, ob sie in der ALSA-Matrix
mit der Kennzeichnung HWMIX
aufgelistet ist.
Alternativ prüft man dies im laufenden System ab:
aplay -l
Wenn in der Ausgabe eine erhebliche Anzahl von Subdevices aufgelistet wird, dann beherrscht die Karte Hardware-Mixing. Das sieht im Falle dieses Beispiels für Card 1 so aus.
Viele Spiele nutzen noch das "Open Sound System"; siehe OSS-Devices.
Hier ist das Modul "snd-hda-intel" für die Soundausgabe zuständig. Wird gar kein Sound ausgegeben, so muss das Modem im BIOS aktiviert werden (Einstellung von "hidden" auf "enabled" setzen).
Um die Kopfhörerbuchse (inkl. automatischen Umschalten Lautsprecher/Kopfhörer) zu aktivieren, muss der Datei /etc/modprobe.d/alsa-base.conf folgende Zeile hinzugefügt werden (siehe auch Soundkarten installieren/HDA):
options snd-hda-intel model=vaio
Bei manchen Modellen mit Realtek ALC269 hilft aufgrund eines Fehlers
diese Anleitung weiter.
Selbes gilt für einige Dell Notebooks, etwa das Dell Studio 17. Um die Kopfhörerbuchse (incl. automatischen Umschalten Lautsprecher/Kopfhörer) zu aktivieren, muss der Datei /etc/modprobe.d/alsa-base.conf folgende Zeile hinzugefügt werden:
options snd-hda-intel model=dell-eq
Wenn ein Soundprogramm nicht funktioniert oder der Soundserver nicht starten will, kann das daran liegen, dass bereits ein anderes Programm die Soundkarte benutzt. So kann man das überprüfen:
lsof | grep pcm
oder
lsof | grep snd
ergibt z.B. die folgende Ausgabe:
mplayer 5301 dm mem CHR 116,16 4705 /dev/snd/pcmC0D0p mplayer 5301 dm 15u CHR 116,16 4705 /dev/snd/pcmC0D0p
In diesem Fall greift das Programm mplayer auf die Soundkarte zu, kein anderes Programm kann gleichzeitig Sound abspielen. Wenn das nicht so gedacht ist, sollte man mplayer beenden und für die Soundausgabe über den passenden Soundserver (siehe Soundsystem) konfigurieren.
Wenn man in Xine keinen Ton hört und in etwa die Fehlermeldung
kein audio decoder für 'MPEG Layer 2/3' gefunden
erscheint, muss man das Paket libmad0 installieren[1].
Ganz im Gegensatz zu allen Vermutungen muss der Schieberegler, bzw. der Wert für den Bereich IEC958 im benutzten Soundmixer ganz auf Null gesetzt werden um eine Soundausgabe zu erreichen. Mit Erfolg wurde diese Vorgehensweise unter Ubuntu 6.10 und 7.04 getestet.
Bei einigen VIA-Soundkarten gibt es mehrere Regler "VIA DXS". Es kann sein, dass nicht alle hochgeregelt sind. Im ungünstigen Falle ist z.B. der Sound im Rhythmbox normal laut, in XMMS aber sehr leise. Lösung: Im Alsamixer muss man alle DXS-Regler hochregeln.
Selten kann es vorkommen, dass der Sound ins Stottern kommt. Eine Regelmäßigkeit ist dabei nicht zu erkennen. Der Rechner reagiert, als wäre er unter Volllast, ist es aber nicht. Hier kann es helfen im BIOS HPET aus zu schalten und/oder dem Kernel via Grub die Bootoption pci=noacpi mit zu geben.
Hilfeleistungen bei Soundproblemen werden im ubuntuusers-Forum im Unterforum Multimedia gegeben. Es ist hilfreich, wenn man via Audio-Fehler-Beschreibung ausreichend Informationen beifügt.
Soundkarten-Inhaltsverzeichnis dieses Wikis
Weitere Tipps zur Lösung von Soundproblemen gibt es auch im englischen Forum
in den folgenden Beiträgen:
Oder auch im Wiki
des Alsa Projektes:
Diskussionen zu diesem Artikel bitte hier führen: Soundprobleme.
Diese Revision wurde am 17. Juli 2010 um 15:09 Uhr
von aasche erstellt.
Dieser Seite wurden folgende Begriffe zugeordnet:
Multimedia, Hardware, Audio
2004 – 2010 ubuntuusers.de • Einige Rechte vorbehalten