# Alsa zwei Soundkarten [SOLVED]

## palatan14

Hallo @all,

Ich hab vor paar tagen gentoo auf mein PC installiert,

dabei hatte ich in Kernel die Unterstützung für zwei Soundkarten aktiviert (also build-in Treiber)

```

CONFIG_SND_INTEL8X0=y

CONFIG_SND_EMU10K1=y

```

Es Funktioniert so weit alles gut.

Das Problem ist die Intel-Soundkarte wurde als erste erkannt und ist damit default-Karte für alle andere Applikationen.

Ich will aber meine SB-Live Karte als default haben. Ist es Möglich, ohne die Treiber als Modulen zu laden?

Gruss VaceslavLast edited by palatan14 on Mon Apr 03, 2006 11:13 am; edited 1 time in total

----------

## musv

Kannst du in /etc/modules.d/alsa festlegen.

----------

## franzf

Hallo

Schau mal hier!

Vllt. bringts was  :Wink: 

Franz

----------

## felicehome

Hallo, wenn du wie ich (habe 3 soundkarten) die treiber built in machst, dann musst du die Reihenfolge als Kernelparameter übergeben. Hab mal vor einiger Zeit ein HowTo darüber geschrieben. Guckst du hier:

https://forums.gentoo.org/viewtopic-t-435343-highlight-multiple+soundcards.html

----------

## LunX

Hi,

also ich hab auch 2 Soundkarten am laufen. Hab Alsa als Modul im Kernel.

Beim einrichten habe ich alsaconf ausgeführt und für die erste Soundkarte anpassen lassen. Danach habe ich mir /etc/autoload.d/alsa gesichert und alsaconf die andere Karte anpassen lassen. Dann den inhalt verglichen und /etc/autoload.d/alsa wie folgt angepasst:

```
alias /dev/mixer snd-mixer-oss

alias /dev/dsp snd-pcm-oss

alias /dev/midi snd-seq-oss

alias char-major-116 snd

alias char-major-14 soundcore

# --- SND1 ---

alias sound-service-0-0 snd-mixer-oss

alias sound-service-0-1 snd-seq-oss

alias sound-service-0-3 snd-pcm-oss

alias sound-service-0-8 snd-seq-oss

alias sound-service-0-12 snd-pcm-oss

alias snd-card-0 snd-emu10k1

alias sound-slot-0 snd-emu10k1

# --- SND2 ---

alias sound-service-1-0 snd-mixer-oss

alias sound-service-1-1 snd-seq-oss

alias sound-service-1-3 snd-pcm-oss

alias sound-service-1-8 snd-seq-oss

alias sound-service-1-12 snd-pcm-oss

alias snd-card-1 snd-ens1371

alias sound-slot-1 snd-ens1371

```

Klappt bei mir alles ohne Probleme.

Gruß

Lunx

----------

## palatan14

Danke für schnelle Hilfe.

Den Vorschlag von felicehome hat mir geholfen.

Die andere Vorschläge beziehen sich auf Konfiguration mit Modulen. Trotzdem Danke.

Jetzt weiter in dieser Richtung:

Kann man zur Laufzeit die Einstellungen ändern?

Vllt. zwei Scripten die auf Klick Default-Karte ändern können?

Gruss Vaceslav

----------

## felicehome

Soweit ich weiß geht das leider nicht, da ja die übergabe mit Kernelparametern funktioniert. Und dies jedesmal ein reboot erfordert. 

Mit Modulen würde das gehen, aber auch dann müsstest du die module entladen, reihenfolgeeinstellungen verändern und dannach module neu laden.

Für welchen Zweck musst du denn die Default-Karte im laufenden Betrieb ändern? Bei vielen Programmen kannst du die Ausgabe ändern (/dev/dsp oder /dev/dsp1). Dann gibt es noch die Möglichkeit die Ausgabe an eine andere Soundkarte weiterzupipen, um somit die Ausgabe auf eine andere Soundkarte zu erzwingen, falls sich /dev/dsp bei entsprechendem Programm nicht verstellen läßt.

Ist dies keine praktikable Lösung für dich musst du es mit Modules versuchen.

Gruß Felice

----------

## felicehome

Mir ist da noch was eingefallen. Du könntest ein Skript schreiben, dass symlinks setzt und wieder entfernt.

```
ln -sf /dev/dsp1 /dev/dsp
```

bewirkt z.B., daß alles was sonst auf dsp1 ausgegeben wird nun auf dsp ausgegeben wird.

/dev/dsp ist dabei deine Defaultkarte.

----------

## firefly

und was macht er mit den programmen , welche nicht den oss layer von alsa sondern alsa direkt verwenden?

denn dann hilft kein ändern der symlinks /dev/dsp*  :Wink: 

----------

## felicehome

Da hast du allerdings recht.   :Embarassed:   Es muss doch auch bei ALSA eine Möglichkeit geben, den sound auf eine andere Karte zu bringen. 

Hmm...

----------

## Vortex375

 *Quote:*   

> Es muss doch auch bei ALSA eine Möglichkeit geben, den sound auf eine andere Karte zu bringen.

 

Selbstverständlich geht das, es geht sogar sehr einfach und lässt sich im Betrieb jederzeit beliebig umstellen.

Das "default" device lässt sich in der ~/.asoundrc ganz einfach überschreiben:

```

pcm.!default {

type hw

card 0

device 0

}

```

Definiert die erste Soundkarte als "default", entspricht hier im Beispiel dem alsa-Gerät "hw:0,0". 

Für die zweite Soundkarte dann halt ein

```

pcm.!default {

type hw

card 1

device 0

}

```

Damit Änderungen in der .asoundrc wirksam werden muss man sich weder neu einloggen noch alsa neustarten. Das entsprechende Programm muss nur das alsa-device neu öffnen. Bei XMMS reicht z.B. schon ein klick auf Stop und wieder auf Start.

EDIT: Was noch fehlt ist ein nettes Frontend für die .asoundrc, damit man Soundoptionen wirklich mit "einem Klick" einstellen kann. Es gibt doch sicher jemanden der gerne sowas schreiben würde.  :Wink: 

----------

## felicehome

Cool, dann haben wir ja alles zusammen. 

Gibt es eigentlich auch eine einfache ALSA Möglichkeit auf beiden Soundkarten genau das selbe auszugeben, also mit oss kann man ja z.B. sowas machen, wenn ich mich nicht irre:

```
dd if=/dev/dsp of=/dev/dsp1
```

Geht sowas ähnliches auch mit Programmen die native-ALSA verwenden ?

----------

## musv

 *felicehome wrote:*   

> 
> 
> ```
> dd if=/dev/dsp of=/dev/dsp1
> ```
> ...

 

Hab das mal eben ausprobiert. Also die Qualität ist ja unter aller ***, wenn man von der einen auf die Karte kopiert. Die Frage mit dem nativen Alsa versteh ich nicht wirklich. Ich verwende bei mir ausschließlich alsa. D.h. OSS ist nur Emulation. Mein xmms benutzt auch das Alsa-Device, trotzdem kann ich den Sound über dsp abrufen mit obiger Methode.

----------

## spirou

 *Quote:*   

> EDIT: Was noch fehlt ist ein nettes Frontend für die .asoundrc, damit man Soundoptionen wirklich mit "einem Klick" einstellen kann. Es gibt doch sicher jemanden der gerne sowas schreiben würde. 

 

Oooooh jaaaaaa, darauf würde ich schon lange warten. Wahrscheinlich gibt's das noch nicht, weil keiner die wirre .asoundrc versteht...

Grüßle

Spirou  :Very Happy: 

----------

## Vortex375

 *Quote:*   

> Wahrscheinlich gibt's das noch nicht, weil keiner die wirre .asoundrc versteht... 

 

... weil es anscheinend nirgendwo eine gute Dokumentation zur .asoundrc gibt.  :Rolling Eyes: 

----------

## palatan14

Danke für viele Antworten.

Ich markiere es als SOLVED.

----------

## musv

 *musv wrote:*   

> Kannst du in /etc/modules.d/alsa festlegen.

 

Ich glaub, ich muß mich revidieren. Bis vor kurzem ging das damit noch. Seit ich Kernel-2.6.16-r1 drauf hab (ich glaub aber nicht, daß es daran liegt), funktioniert das irgendwie nicht mehr.

lspci gibt mir aus (Auszüge):

```

00:06.0 Multimedia audio controller: nVidia Corporation nForce2 AC97 Audio Controler (MCP) (rev a1)

01:09.1 Multimedia controller: Brooktree Corporation Bt878 Audio Capture (rev 11)

01:0a.2 FireWire (IEEE 1394): Creative Labs SB Audigy FireWire Port

```

In der /etc/modules.autoload.d/kernel-2.6 steht (Auszüge):

```

snd_emu10k1

snd_intel8x0

snd_bt87x

snd_pcm_oss

snd_mixer_oss

```

Und in der /etc/modules.d/alsa hab ich stehen (Auszüge):

```

alias snd-card-0 snd-emu10k1

alias sound-slot-0 snd-emu10k1

options snd-card-emu10k1 index=0 enable

alias snd-card-1 snd-intel8x0

alias sound-slot-1 snd-intel8x0

options snd-card-intel8x0 index=1 enable

alias snd-card-2 snd-bt87x

alias sound-slot-2 snd-bt87x

options snd-card-bt87x index=2 enable

```

Und trotzdem sind bei mir Soundkarte 2 und 3 in der falschen Reihenfolge:

1 Emu10k1

2 Win-TV Audio Grabber

3 Nvidia AC97

Das soll mal einer verstehen.

Auch wenn ich schon mal oben negatives gelesen hab, aber hat irgendjemand mal 'ne halbwegs brauchbare Doku zu den ganzen Optionen für die alsa-conf gefunden? Kann mal alsaconf irgendwie dazu prügeln, auch mehrere Soundkarten gleichzeitig zu installieren?

----------

