8.2. Soundkarten einrichten
Zurück | Kapitel 8. Multimedia | Weiter

## 8.2. Soundkarten einrichten

Von Moses Moore.
Aktualisiert von Marc Fonvieille.
Übersetzt von Benedikt Köhler und Uwe Pierau.

### 8.2.1. Den Soundtreiber einrichten

Zunächst sollten Sie in Erfahrung bringen, welches Soundkartenmodell Sie besitzen, welchen Chip die Karte benutzt und ob es sich um eine PCI- oder ISA-Karte handelt. FreeBSD unterstützt eine Reihe von PCI- als auch von ISA-Karten. Die Hardware-Notes zählen alle unterstützten Karten und deren Treiber auf.

Um Ihre Soundkarte benutzen zu können, müssen Sie den richtigen Gerätetreiber laden. Sie haben zwei Möglichkeiten, den Treiber zu laden: Am einfachsten ist es, das Modul mit kldload(8) zu laden. Sie können dazu die Kommandozeile verwenden:

`#` `kldload snd_emu10k1`

Alternativ können Sie auch einen Eintrag in der Datei `/boot/loader.conf` erstellen:

snd_emu10k1_load="YES"

Beide Beispiele gelten für eine Creative SoundBlaster® Live! Soundkarte. Weitere ladbare Soundmodule sind in der Datei `/boot/defaults/loader.conf` aufgeführt. Wenn Sie nicht sicher sind, welchen Gerätetreiber Sie laden müssen, laden Sie den Treiber `snd_driver`:

`#` `kldload snd_driver`

Der Treiber `snd_driver` ist ein Meta-Treiber, der alle gebräuchlichen Treiber lädt und die Suche nach dem richtigen Treiber vereinfacht. Weiterhin können alle Treiber über `/boot/loader.conf` geladen werden.

Wollen Sie feststellen, welcher Treiber für Ihre Soundkarte vom Metatreiber `snd_driver` geladen wurde, sollten Sie sich mit `cat /dev/sndstat` den Inhalt der Datei `/dev/sndstat` ansehen.

Alternativ können Sie die Unterstützung für die Soundkarte direkt in den Kernel einkompilieren. Diese Methode im nächsten Abschnitt beschrieben. Weiteres über den Bau eines Kernels erfahren Sie im Kapitel Kernelkonfiguration.

#### 8.2.1.1. Soundkarten in der Kernelkonfiguration einrichten

Zuerst müssen Sie sound(4), den Treiber für das Audio-Framework in die Kernelkonfiguration aufnehmen. Fügen Sie dazu die folgende Zeile in die Kernelkonfigurationsdatei ein:

device sound

Als Nächstes müssen Sie den richtigen Treiber in die Kernelkonfiguration einfügen. Den Treiber entnehmen Sie bitte der Liste der unterstützen Soundkarten aus den Hardware-Notes. Zum Beispiel wird die Creative SoundBlaster® Live! Soundkarte vom Treiber snd_emu10k1(4) unterstützt. Für diese Karte verwenden Sie die nachstehende Zeile:

device snd_emu10k1

Die richtige Syntax für die Zeile lesen Sie bitte in der Hilfeseite des entsprechenden Treibers nach. Die korrekte Syntax für alle unterstützten Treiber finden Sie außerdem in der Datei `/usr/src/sys/conf/NOTES`.

Nicht PnP-fähige ISA-Soundkarten benötigen (wie alle anderen ISA-Karten auch) weiterhin Angaben zu den Karteneinstellungen (wie IRQ und I/O-Port). Die Karteneinstellungen tragen Sie in die Datei `/boot/device.hints` ein. Während des Systemstarts liest der loader(8) diese Datei und reicht die Einstellungen an den Kernel weiter. Für eine alte Creative SoundBlaster® 16 ISA-Karte, die sowohl den snd_sbc(4)- als auch den `snd_sb16`-Treiber benötigt, fügen Sie folgende Zeilen in die Kernelkonfigurationsdatei ein:

device snd_sbc device snd_sb16

In die Datei `/boot/device.hints` tragen Sie für diese Karte zusätzlich die folgenden Einstellungen ein:

hint.sbc.0.at="isa" hint.sbc.0.port="0x220" hint.sbc.0.irq="5" hint.sbc.0.drq="1" hint.sbc.0.flags="0x15"

In diesem Beispiel benutzt die Karte den I/O-Port `0x220` und den IRQ `5`.

Die Manualpage sound(4) sowie des jeweiligen Treibers beschreiben die Syntax der Einträge in der Datei `/boot/device.hints`.

Das Beispiel verwendet die vorgegebenen Werte. Falls Ihre Karteneinstellungen andere Werte vorgeben, müssen Sie die Werte in der Kernelkonfiguration anpassen. Weitere Informationen zu dieser Soundkarte entnehmen Sie bitte der Manualpage snd_sbc(4).

### 8.2.2. Die Soundkarte testen

Nachdem Sie den neuen Kernel gestartet oder das erforderliche Modul geladen haben, sollte Ihre Soundkarte in den Systemmeldungen (dmesg(8)) auftauchen. Zum Beispiel:

pcm0: <Intel ICH3 (82801CA)> port 0xdc80-0xdcbf,0xd800-0xd8ff irq 5 at device 31.5 on pci0 pcm0: [GIANT-LOCKED] pcm0: <Cirrus Logic CS4205 AC97 Codec>

Den Status der Karte können Sie über die Datei `/dev/sndstat` prüfen:

`#` `cat /dev/sndstat` FreeBSD Audio Driver (newpcm) Installed devices: pcm0: <Intel ICH3 (82801CA)> at io 0xd800, 0xdc80 irq 5 bufsz 16384 kld snd_ich (1p/2r/0v channels duplex default)

Die Ausgaben können auf Ihrem System anders aussehen. Wenn das Gerät `pcm` nicht erscheint, prüfen Sie bitte Ihre Konfiguration. Stellen sie sicher, dass Sie den richtigen Treiber gewählt haben. Abschnitt 8.2.2.1, „Häufige Probleme“ beschreibt häufig auftretende Probleme.

Wenn alles glatt lief, haben Sie nun eine funktionierende Soundkarte. Wenn ein CD-ROM oder DVD-ROM-Laufwerk an Ihrer Soundkarte angeschlossen ist, können Sie jetzt mit cdcontrol(1) eine CD abspielen:

`%` `cdcontrol -f /dev/acd0 play 1`

Es gibt viele Anwendungen, wie `audio/workman`, die eine bessere Benutzerschnittstelle besitzen. Um sich MP3-Audiodateien anzuhören, können Sie eine Anwendung wie `audio/mpg123` installieren.

Eine weitere schnelle Möglichkeit die Karte zu prüfen, ist es, Daten an das Gerät `/dev/dsp` zu senden:

`%` `cat `Datei` > /dev/dsp`

Für ``Datei`` können Sie eine beliebige Datei verwenden. Wenn Sie einige Geräusche hören, funktioniert die Soundkarte.

### Anmerkung:

Die Gerätedateien `/dev/dsp*` werden automatisch erzeugt, wenn sie das erste Mal benötigt werden. Werden sie nicht verwendet, sind sie hingegen nicht vorhanden und tauchen daher auch nicht in der Ausgabe von ls(1) auf.

Die Einstellungen des Mixers können Sie mit dem Kommando mixer(8) verändern. Weiteres lesen Sie bitte in der Hilfeseite mixer(8) nach.

#### 8.2.2.1. Häufige Probleme

Fehler | Lösung
--- | ---
sb_dspwr(XX) timed out | Der I/O Port ist nicht korrekt angegeben.
bad irq XX | Der IRQ ist falsch angegeben. Stellen Sie sicher, dass der angegebene IRQ mit dem Sound IRQ übereinstimmt.
xxx: gus pcm not attached, out of memory | Es ist nicht genug Speicher verfügbar, um das Gerät zu betreiben.
xxx: can't open /dev/dsp! | Überprüfen Sie mit `fstat | grep dsp` ob eine andere Anwendung das Gerät geöffnet hat. Häufige Störenfriede sind esound oder die Sound-Unterstützung von KDE.

Ein weiterer Fall ist der, dass moderne Graphikkarten oft auch ihre eigenen Soundtreiber mit sich führen, um HDMI oder ähnliches zu verwenden. Diese Audiogeräte werden manchmal vor der eigentlichen, separaten Soundkarte aufgeführt und dadurch nicht als das Standardgerät zum Abspielen von Tönen benutzt. Um zu prüfen, ob das bei Ihnen der Fall ist, führen Sie dmesg aus und suchen Sie nach der Zeichenfolge `pcm`. Die Ausgabe sieht in etwa so aus wie folgt:

... hdac0: HDA Driver Revision: 20100226_0142 hdac1: HDA Driver Revision: 20100226_0142 hdac0: HDA Codec #0: NVidia (Unknown) hdac0: HDA Codec #1: NVidia (Unknown) hdac0: HDA Codec #2: NVidia (Unknown) hdac0: HDA Codec #3: NVidia (Unknown) pcm0: <HDA NVidia (Unknown) PCM #0 DisplayPort> at cad 0 nid 1 on hdac0 pcm1: <HDA NVidia (Unknown) PCM #0 DisplayPort> at cad 1 nid 1 on hdac0 pcm2: <HDA NVidia (Unknown) PCM #0 DisplayPort> at cad 2 nid 1 on hdac0 pcm3: <HDA NVidia (Unknown) PCM #0 DisplayPort> at cad 3 nid 1 on hdac0 hdac1: HDA Codec #2: Realtek ALC889 pcm4: <HDA Realtek ALC889 PCM #0 Analog> at cad 2 nid 1 on hdac1 pcm5: <HDA Realtek ALC889 PCM #1 Analog> at cad 2 nid 1 on hdac1 pcm6: <HDA Realtek ALC889 PCM #2 Digital> at cad 2 nid 1 on hdac1 pcm7: <HDA Realtek ALC889 PCM #3 Digital> at cad 2 nid 1 on hdac1 ...

Hier wurde die Graphikkarte (`NVidia`) vor der Soundkarte (`Realtek ALC889`) aufgeführt. Um die Soundkarte als Standardabspielgerät einzusetzen, ändern Sie `hw.snd.default_unit` auf die Einheit, welche für das Abspielen benutzt werden soll, wie folgt:

`#` `sysctl hw.snd.default_unit=`n``

Hier repräsentiert `n` die Nummer der Soundkarte, die verwendet werden soll, in diesem Beispiel also `4`. Sie können diese Änderung dauerhaft machen, indem Sie die folgende Zeile zu der `/etc/sysctl.conf` Datei hinzufügen:

hw.snd.default_unit=`4`

### 8.2.3. Mehrere Tonquellen abspielen

Beigetragen von Munish Chopra.

Oft sollen mehrere Tonquellen gleichzeitig abgespielt werden, auch wenn beispielsweise esound oder artsd das Audiogerät nicht mit einer anderen Anwendung teilen können.

Unter FreeBSD können mit sysctl(8) virtuelle Tonkanäle eingerichtet werden. Virtuelle Kanäle mischen die Tonquellen im Kernel (so können mehr Kanäle als von der Hardware unterstützt benutzt werden).

Die Anzahl der virtuellen Kanäle können Sie als Benutzer `root` wie folgt einstellen:

`#` `sysctl dev.pcm.0.play.vchans=4` `#` `sysctl dev.pcm.0.rec.vchans=4` `#` `sysctl hw.snd.maxautovchans=4`

Im Beispiel werden vier virtuelle Kanäle eingerichtet, eine im Normalfall ausreichende Anzahl. Sowohl `dev.pcm.0.play.vchans=4` und `dev.pcm.0.rec.vchans=4` sind die Anzahl der virtuellen Kanäle des Geräts `pcm0`, die fürs Abspielen und Aufnehmen verwendet werden und sie können konfiguriert werden, sobald das Gerät existiert. `hw.snd.maxautovchans` ist die Anzahl der virtuellen Kanäle, die einem Gerät zugewiesen werden, wenn es durch kldload(8) eingerichtet wird. Da das Modul `pcm` unabhängig von den Hardware-Treibern geladen werden kann, gibt `hw.snd.maxautovchans` die Anzahl der virtuellen Kanäle an, die später eingerichtete Geräte erhalten. Lesen Sie dazu pcm(4) für weitere Informationen.

### Anmerkung:

Sie können die Anzahl der virtuellen Kanäle nur ändern, wenn das Gerät nicht genutzt wird. Schließen Sie daher zuerst alle Programme (etwa Musikabspielprogramme oder Sound-Daemonen), die auf dieses Gerät zugreifen.

Die korrekte `pcm`-Gerätedatei wird automatisch zugeteilt, wenn ein Programm das Gerät `/dev/dsp0` anfordert.

### 8.2.4. Den Mixer einstellen

Beigetragen von Josef El-Rayes.

Die Voreinstellungen des Mixers sind im Treiber pcm(4) fest kodiert. Es gibt zwar viele Anwendungen und Dienste, die den Mixer einstellen können und die eingestellten Werte bei jedem Start wieder setzen, am einfachsten ist es allerdings, die Standardwerte für den Mixer direkt im Treiber einzustellen. Der Mixer kann in der Datei `/boot/device.hints` eingestellt werden:

hint.pcm.0.vol="50"

Die Zeile setzt die Lautstärke des Mixers beim Laden des Moduls pcm(4) auf den Wert `50`.

Zurück | Nach oben | Weiter
Kapitel 8. Multimedia | Zum Anfang | 8.3. MP3-Audio

Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an <de-bsd-questions@de.FreeBSD.org>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an <de-bsd-translators@de.FreeBSD.org>.