[[Vorlage(Getestet, )]] {{{#!vorlage Wissen [:Terminal: Ein Terminal öffnen] [:Soundsystem: Soundsystem unter Linux] [:Editor: Einen Editor öffnen] [:Kernelmodule: Kernelmodule laden] }}} [[Inhaltsverzeichnis(2)]] 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 [:Soundkarten_konfigurieren/HDA: 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: {{{#!vorlage Befehl 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: {{{#!vorlage Befehl lspci | grep -i audio }}} Falls man eine externe USB-Soundkarte bzw. ein USB-Headset hat, kann man den Chipsatz mit dem folgenden Befehl ermitteln. {{{#!vorlage Befehl 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 [:Soundkarten_konfigurieren#Soundkarte-wird-nicht-erkannt: 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 [:Shell/grep: grep] in Kombination mit '''snd''' und den Informationen über den Chipsatz. zum Beispiel: {{{#!vorlage Befehl 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-benutzen hwinfo] helfen (siehe unten). == Treiber ausprobieren == Den gefundenen Treiber kann man jetzt (wie jeden anderen Treiber auch) mit dem Befehl '''modprobe''' laden: {{{#!vorlage Befehl 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] {{{#!vorlage Befehl 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 {{{#!vorlage 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 }}} [[Bild(audio-einstellungen.png,300,align=right)]] = 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 [[Vorlage(Tasten, rmt)]] -> ''"Audioeinstellungen -> Hardware -> Wählen Sie ein Gerät zum Konfigurieren"'') keine Soundkarte auftaucht, obwohl die Module ordnungsgemäß geladen wurden, könnte folgender Workaround helfen: {{{#!vorlage Befehl sudo alsa reload }}} ergibt eventuell eine Ausgabe wie diese: {{{#!vorlage Befehl 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: {{{#!vorlage Befehl 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 {{{#!vorlage Befehl sudo alsactl store }}} lassen sich die Einstellungen dauerhaft speichern. Erhält man folgende Fehlermeldung: "Home directory /home/ not ours.", dann muss man die Zugriffsrechte anpassen: {{{#!vorlage Befehl sudo chmod 666 /var/lib/alsa/asound.state }}} Nun kann man alsactl store ohne sudo ausführen: {{{#!vorlage Befehl 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: {{{#!vorlage Befehl 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 {{{#!vorlage Befehl cat /proc/asound/modules }}} {{{ 0 snd_hda_intel 1 snd_usb_audio }}} Die Reihenfolge lässt sich nun wie folgt ändern: {{{#!vorlage Befehl 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. {{{#!vorlage Befehl 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 # tag: Hardware, Installation