Soundkarten konfigurieren
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Dieser Artikel ist mit keiner aktuell unterstützten Ubuntu-Version getestet! Bitte teste diesen Artikel für eine Ubuntu-Version, welche aktuell unterstützt wird. Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
Viele Soundkarten werden bereits bei der Installation von Ubuntu erkannt und eingerichtet. Sollte dies nicht der Fall sein, ist es möglich, diese von Hand einzurichten. Wie das geht, soll hier erklärt werden. Die Einrichtung von HDA-Soundchips, welche vor allem in neueren Mainboards und Notebooks verbaut sind, ist in einem eigenen Artikel beschrieben.
Soundtreiber¶
In der Datei /proc/asound/cards sind die von Linux erkannten Soundkarten aufgeführt. Hierunter fallen auch TV-Karten, da auch diese eine Sound-Ausgabe besitzen. Den Inhalt der Datei kann man mit diesem Befehl im Terminal[1] anzeigen lassen:
cat /proc/asound/cards
Die Ausgabe sieht dann zum Beispiel so aus:
0 [V8235 ]: VIA8233 - VIA 8235 VIA 8235 at 0xdc00, irq 193 1 [Bt878 ]: Bt87x - Brooktree Bt878 Brooktree Bt878 at 0xdddff000, irq 177
In diesem Fall ist Nummer 0 (VIA8233) der auf dem Mainboard verbaute Soundchip und Nummer 1 (Bt878) die ebenfalls installierte TV-Karte, wobei hier jeweils nicht der Hersteller, sondern der Chipsatz angegeben ist.
Soundkarte einrichten¶
Wenn die Soundkarte nicht automatisch von ALSA erkannt wird, muss man wie im folgenden beschrieben den Treiber der Soundkarte manuell laden.
Chipsatz¶
Zunächst muss man den Chipsatz der Soundkarte ermitteln. Der entsprechende Befehl für das PCI-System lautet:
lspci | grep -i audio
Falls man eine externe USB-Soundkarte bzw. ein USB-Headset hat, kann man den Chipsatz mit dem folgenden Befehl ermitteln.
lsusb
Erhält man auch hier keine Ausgabe, die auf eine Soundkarte schließen lässt, besteht leider nur eine sehr geringe Chance, die Soundkarte nutzen zu können. Eine Möglichkeit besteht darin, diese Problemlösung zu probieren, ansonstens kann die Suche im Forum helfen.
Passenden Treiber finden¶
Nun muss man versuchen, das passende Kernelmodul für seine Soundkarte zu finden. Die Eingrenzung der Kernelmodule erfolgt mit dem Befehl grep in Kombination mit snd und den Informationen über den Chipsatz. zum Beispiel:
basename -s ".ko" $(find /lib/modules/$(uname -r) -type f -name "*.ko" | grep snd | grep via)
Man kann auch versuchen, über eine Suchmaschine die passenden Kernelmodule zu finden.
Eine Eingrenzung auf snd ist in jedem Fall erforderlich.
Da nur mit dieser sehr viel auflistet wird, ist eine weitere Eingrenzung sinnvoll, dies ist im Beispiel mit via geschehen. Um die Suche für seine eigene Hardware einzugrenzen, kann die Ausgabe von hwinfo helfen (siehe unten).
Treiber ausprobieren¶
Den gefundenen Treiber kann man jetzt (wie jeden anderen Treiber auch) mit dem Befehl modprobe laden:
sudo modprobe snd-via82xx
Die Endung .ko nicht mit angeben. Bei einer Fehlermeldungen sollte ein anderes Modul probieren, ansonsten kann man im Forum um Hilfe bitten. Wenn keine Fehlermeldung erscheint, wurde das Modul geladen. Dies lässt sich mit dem Befehl[1]
cat /proc/asound/cards
überprüfen. Jetzt sollte in /proc/asound/cards eine Karte aufgeführt sein.
Optionale Parameter¶
Einige Soundkarten benötigen optionale Parameter beim Laden des Modules, da die automatische Erkennung nicht funktioniert. Informationen hierzu findet man in der Dokumentation von ALSA. Mit dem Befehl
zless /usr/share/doc/alsa-base/driver/ALSA-Configuration.txt.gz
öffnet man diese Datei. Anschließend sucht man in der Datei nach dem passenden Modulnamen und prüft, ob eventuelle Parameter für die Soundkarte vorhanden sind. Den passenden Parameter übergibt man anschließend dem Modul beim Laden desselben. Um eine Karte als die erste zu ladende festzulegen, hängt man noch den Parameter "index=0" an. Eine zweite Karte hätte dann den Parameter "index=1".
Treiber beim Systemstart laden¶
Methode 1: Hierzu muss man das richtige Modul nur wie in [4] beschrieben in die /etc/modules eintragen. Optionale Parameter hängt man einfach hinten an. Beispiel:
snd-ice1724 model=aureon51 index=0
Methode 2: Man kann auch mit ALSA direkt kommunizieren, um die Parameter zu übergeben. Dies tut man in der Datei /etc/modprobe.d/alsa-base.conf. Die Parameter werden wie bei Methode 1 übergeben, jedoch wird ein "options" vorangestellt. Beispiel:
options snd-ice1724 model=aureon51 index=0
Soundkarte ist stumm, obwohl sie unter dem Livesystem funktioniert und auch vom System erkannt wurde¶
Getestet unter Ubuntu 9.10¶
Wenn im Lautstärkeregler (rechte Maustaste → "Audioeinstellungen → Hardware → Wählen Sie ein Gerät zum Konfigurieren") keine Soundkarte auftaucht, obwohl die Module ordnungsgemäß geladen wurden, könnte folgender Workaround helfen:
sudo alsa reload
ergibt eventuell eine Ausgabe wie diese:
lsof: WARNING: can't stat() fuse.gvfs-fuse-daemon file system /home/frank/.gvfs Output information may be incomplete. /sbin/alsa: Warning: Processes using sound devices: 1860(pulseaudio).
Der betreffende Prozess muss beendet werden. Zum Beispiel mit:
kill -15 1860
Wenn sudo alsa reload sauber durchläuft, sollte der Sound funktionieren. Nun können die gewünschten Lautstärken eingestellt werden. Mit dem Befehl
sudo alsactl store
lassen sich die Einstellungen dauerhaft speichern.
Erhält man folgende Fehlermeldung: "Home directory /home/<user> not ours.", dann muss man die Zugriffsrechte anpassen:
sudo chmod 666 /var/lib/alsa/asound.state
Nun kann man alsactl store ohne sudo ausführen:
alsactl store
Reihenfolge (Priorität) von Soundkarten Ändern¶
Sowohl Gnome als auch KDE bieten in den Systemeinstellungen die Möglichkeit, die Reihenfolge der Soundkarten zu bestimmen. Das funktioniert jedoch nur für native Anwendungen, wie z.B. Amarok unter Kubuntu. Näher am System ist die Konfiguration über Alsa. Das ist dann nützlich, wenn man z.B. unter Kubuntu Musik-Streams am Headset hören möchte.
So erhält man eine menschenlesbare Liste der Soundkarten:
cat /proc/asound/cards
0 [Intel ]: HDA-Intel - HDA Intel HDA Intel at 0xf0500000 irq 22 1 [Headset ]: USB-Audio - Logitech USB Headset Logitech Logitech USB Headset at usb-0000:00:1d.0-1, full speed
Und die Liste der entsprechenden Kernel-Module mit
cat /proc/asound/modules
0 snd_hda_intel 1 snd_usb_audio
Die Reihenfolge lässt sich nun wie folgt ändern:
sudo bash echo options snd_usb_audio index=0 >> /etc/modprobe.d/sound-cards-order echo options snd_hda_intel index=1 >> /etc/modprobe.d/sound-cards-order exit
Jetzt noch ein Neustart und fertig.
sudo reboot
Um diese Änderungen rückgängig zu machen, löscht man /etc/modprobe.d/sound-cards-order
und startet neu.
Links¶
HDA-Konfiguration bei High-Definition Audio
Soundkarten-Inhaltsverzeichnis dieses Wikis