Soundkarte unter Debian mit ALSA |
Die Soundkarte unter Linux zum laufen zu bringen ist heutzutage dank Plug and Play-Technik kein Hexenwerk mehr. Mußte man noch für alte ISA-Karten IRQs, DMAs und Speicherbereiche festlegen, erledigen das heutige PCI-Karten automatisch. Nur selten muß man die Karte von Hand konfigurieren. Lange Zeit war unter Linux das OSS (Open Sound System) Standard, was aber mittlerweile von ALSA (Advanced Linux Sound Architecture) abgelöst wurde. ALSA besteht aus Linux-Kernelmodulen, die verschiedene Kerneltreiber für Soundkarten bereitstellen. Die Treiber für Soundhardware sind bei ALSA modularisiert. ALSA benötigt eigene Treiber für die anzusprechenden Geräte, weshalb OSS-Treiber nicht weiter verwendet werden können. Unter Debian gibt es fertige Pakete für ALSA. Die hier gezeigte Konfiguration bezieht sich auf Debian - Codename Lenny. Schon bei
der Installation von Debian Lenny wird das Paket alsa-base installiert,
welches die entsprechenden Soundkarten-Treibermodule enthält.
Ob die ALSA-Module geladen und verwendet werden, sieht man am besten
mit ALSA- Module fangen immer mit der Bezeichnung snd_ an. Sind sie geladen, kann die Soundhardware schon mit Standardeinstellungen verwendet werden und funktioniert eventuell ohne Probleme. Lediglich für detailiertere Einstellungen benötigt man die Datei asound.conf oder .asoundrc. Erstere befindet sich unter /etc/asound.conf und gilt Systemweit für alle User, während die Datei .asoundrc im Homeverzeichnis des Benutzers liegt und Benutzerspezifische Einstellungen erlaubt. Existieren beide Dateien, werden die persönlichen Einstellungen in der .asoundrc den systemweiten Einstellungen in der asound.conf vorgezogen, bzw. die Einstellungen der .asoundrc überlagern die Einstellungen der asound.conf. Für genauere Details zu den möglichen Einstellungen schaut euch die ALSA-Documentation auf der ALSA-Homepage an. Ich zeige hier nur eine simple Konfiguration, die vorraussetzt, daß ALSA die Soundhardware korrekt erkannt hat und die entsprechenden Module geladen hat, was bei meinen 3 Rechnern auf denen ich Linux getestet habe, jedes mal der Fall war. Eine Auflistung
der konfigurierten Karten sieht man unter: Genauere
Informationen liefert auch: Den Befehl
aplay -L benötigen wir später noch zum festlegen
der Default-Soundkarte bei Verwendung von mehreren Soundkarten.
Hat man ähnliche Ausgaben mit den oben genannten Befehlen,
ist die Soundkarte eigentlich schon Einsatzbereit und müßte
funktionieren. Sollte dies dennoch nicht der Fall sein, gibt es
den nützlichen Befehl alsaconf.
alias snd-card-0 snd-hda-intel Dazu kurz noch ein paar Sätze zu Debian. Früher wurde die gesamte Modul-Konfiguration in einer einzigen Datei durchgeführt. Entweder /etc/modprobe.conf oder /etc/modules. Neuere Debian-Releases mit Kernel 2.6 haben für die Konfiguration der Module nicht mehr eine einzige Datei, sondern ein ganzes Verzeichnis namens /etc/modprobe.d, in welchem die einzelnen Konfigurations-Dateien für die Module abgelegt sind. Im Falle von ALSA ist das eben die Datei sound (in Zukunft sound.conf), welche die alias-Namen und die Optionen vergibt. Siehe hierzu auch Hinweis zu den Konfigurations-Dateien in /etc. Noch ein Hinweis: Sollte trotz der Konfiguration mit alsaconf die
Karte stumm bleiben, lohnt sich die Installation des alsa-mixers,
Paketname alsamixergui. Ruft man denselbigen dann im Startmenü
unter Multimedia auf, sollte man kontrollieren, ob die Ausgänge
überhaupt aktiviert sind, oder doch stumm geschaltet. ;-) Konfiguration von mehreren Soundkarten Bei mehreren
Soundkarten, ob nun Onboard oder PCI, muß man sich eines kleinen
Tricks bemühen. ALSA ist in der Lage mehrere Soundkarten zu
verwalten. Warum aber eine entsprechende Option in die alsaconf
nicht integriert wurde um gleich mehrere Soundkarten zu erfassen
und einzurichten, ist mir ein Rätsel. Die Vorgehensweise ist
jedoch recht einfach. Zuerst Konfiguriert man mit alsaconf die erste
Soundkarte und macht von der Datei /etc/modprobe.d/sound eine
Sicherheitskopie mittels Anschließend
startet man wieder alsaconf und wählt die zweite Karte aus.
Im Zuge der Konfiguration überschreibt alsaconf die Datei sound
mit den alias-Einträgen der zweiten Karte. Nun kopiert man
mittels des Befehls alias
snd-card-0 snd-cs4281 alias snd-card-0 snd-via82xx (hier für
eine Crystel-Logic und einen VIA-Onboard-AC97-Soundchip) alias snd-card-0
snd-cs4281 alias snd-card-1
snd-via82xx Nach einem Neustart (sind wir hier etwa bei Windows?) lassen sich beide Karten in den
Soundprogrammen die ALSA unterstützen ansprechen. Man kann auch ohne Neustart mittels dem Befehl
Möglichkeit 1: ist ohne eine Default-Einstellung für die Soundkarte und beinhaltet lediglich, daß man die Karte, welche man verwenden will, in der Datei sound als card-0 definiert. KDE nimmt per Default die erste definierte Soundkarte. Möglichkeit 2: ist die Karte per Default-Einstellung festzulegen.
Dazu holt man sich erstmal die Informationen über den Namen
der Karte mittels des Befehls aplay -L Probleme mit der Soundwiedergabe unter Debian lenny mit 64-Bit-Kernel und KDE Nach dem Start von Debian lenny kommt zwar der System-Start-Sound von KDE, aber andere Anwendungen wie z.B. der Flashplayer im Firefox oder der RealPlayer bleiben stumm. Im Falle des RealPlayers schließt dieser sich sofort nach dem Öffnen wieder. Ein Start des RealPlayers von der Konsole aus, liefert folgende Fehlermeldung: ALSA lib ../../../src/pcm/pcm_dmix.c:996:(snd_pcm_dmix_open) unable to open slave In den Einstellungen im RealPlayer unter "Extras/Einstellungen/Hardware" ist als PCM-Gerät cards.pcm.default eingetragen. Macht man einen Soundtest des Geräts mittels # speaker-test -channels 2 --device cards.pcm.default erscheint eine ähnliche Fehlermeldung: ALSA lib pcm_dmix.c:996:(snd_pcm_dmix_open) unable to open slave Läßt man den Soundtest weiter ackern, kann es sein, daß sich nach ca. 30 Sekunden dann doch was tut und auf einmal alles funktioniert. Solange, bis man durch eine Änderung der Sound-Einstellungen im Kontrollzentrum von KDE den Soundserver neu startet. Dann kann es wieder besagte 30 Sekunden dauern, bis die Soundausgabe auch auf anderen Geräten funktioniert. Wohlgemerkt, nur bei Dauerbeanspruchung, also wenn man die Fehlermeldungen ignoriert und permanent versucht, etwas auf dem belegten Slave auszugeben! Das Auftreten dieses Phänomen konnte ich eindeutig Methode 2 zuordnen, also die Verwendung der asound.conf zum Eintragen einer Default-Karte. In dem Fall war die verwendete Soundkarte ein Onboard HD-Chip von Intel auch Azalia genannt. Dabei war es unerheblich ob ich eine /etc/modprobe.d/sound Datei verwendet hatte oder nicht. Natürlich muß man beim weglassen der asound.conf und dem vorhandensein mehrerer Sound-Devices eine /etc/modprobe.d/sound Datei mittels alsaconf anlegen lassen, da KDE sonst unter Umständen das falsche Device als Standard nimmt (-> Methode 1). Eine Ausgabe was eigentlich den Sound belegt, liefert folgender Befehl: Noch zwei Hinweise:
Hinweis zu Grafikkarten mit HDMI-Soundausgabe Macht das HDMI Sounddevice Probleme, kann man es mit folgender Zeile in der Datei /etc/rc.local deaktivieren: |
Zurück zur Auswahl |