Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[SOLVED] Problem mit Alsa und mehreren Soundkarten
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German)
View previous topic :: View next topic  
Author Message
SinoTech
Advocate
Advocate


Joined: 20 Mar 2004
Posts: 2579
Location: Neunkirchen / Saarland / Germany

PostPosted: Mon Oct 12, 2009 2:16 pm    Post subject: [SOLVED] Problem mit Alsa und mehreren Soundkarten Reply with quote

Hallo,
also ich habe hier einen kleinen PC der 3 Soundkarten hat, nämlich eine Intel und 2 USB Soundkarten.
Code:

$ lspci
[...]
00:1f.5 Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 02)
[...]

$ lsusb
[...]
Bus 007 Device 003: ID 0d8c:000c C-Media Electronics, Inc. Audio Adapter
Bus 003 Device 002: ID 06e6:f210 Tiger Jet Network, Inc.
[...]


Ich möchte das, falls nicht anders angegeben, die Intel Soundkarte als default genommen wird. Der "default" Link unter "/proc/asound" zeigt allerdings immer auf die erste USB Soundkarte. Zunächst dachte ich er zeigt immer auf die Soundkarte mit dem niedrigsten Index und habe versucht die Reihenfolge der Soundkarten zu ändern (beim laden der Module die Option "index=" angegeben), was aber leider keine Änderung brachte. Der Link "/proc/asound/default" zeigt immer auf die erste USB Soundkarte.

Habe dann versucht über die Datei "/etc/asound.conf" die Default Soundkarte wie folgt zu setzen (wobei an Index 0 die Intel Soundkarte sitzt):
Code:

pcm.!default {
    type hw
    card 0
}

ctl.!default {
    type hw
    card 0
}

In dem Fall wird zwar tatsächlich die erste (Intel) Soundkarte geöffnet, allerdings wird diese dann auch blockiert (es kann also kein Programm parallel darüber Sound abspielen).

Habe dann versucht das "hw" durch "plughw" zu ersetzen, so das Alsa die verschiedenen Audio streams selbst zusammenführt. Starte ich "aplay" und gebe als Device explizit "plughw:0" an funktioniert das auch einwandfrei. Gebe ich aber kein Device an (sollte ja keinen Unterschied machen da ja "plughw:0" auch in der "asound.conf" eingetragen ist), bekomme ich folgende Fehlermeldung :
Code:

$ aplay -D default /usr/share/sounds/phone.wav
ALSA lib pcm.c:2171:(snd_pcm_open_conf) Cannot open shared library /usr/lib/alsa-lib/libasound_module_pcm_plughw.so
aplay: main:608: audio open error: No such file or directory


Habe also jetzt folgendes Problem:
Ohne /etc/asound.conf können zwar mehrere Anwendungen gleichzeitig Sound abspielen, allerdings kann ich nicht beeinflussen welche Soundkarte als Default benutzt wird.
Wenn ich "hw:0" als Default in /etc/asound.conf eintrage kann ich damit zwar die Default-Soundkarte festlegen, allerdings kann immer nur eine Anwendung Sound abspielen.
Wenn ich "plughw:0" als Default in /etc/asound.conf eintrage, geht gar nichts mehr weil mir anscheinend eine Datei fehlt (google konnte mir da nicht wirklich weiterhelfen).

Habe Alsa mit folgende USE-Flags gebaut:
Code:

$ emerge alsa-lib alsa-plugins alsa-headers alsa-utils -vpt

These are the packages that would be merged, in reverse order:

Calculating dependencies... done!
[ebuild    U  ] media-sound/alsa-utils-1.0.20-r5 [1.0.20-r4] USE="-doc -minimal -nls" 1,021 kB
[ebuild   R   ] media-plugins/alsa-plugins-1.0.20  USE="pulseaudio -debug -ffmpeg -jack -libsamplerate -speex" 317 kB
[ebuild   R   ]  media-libs/alsa-lib-1.0.20-r1  USE="-alisp -debug -doc -python" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" 777 kB
[ebuild   R   ]   media-sound/alsa-headers-1.0.20  2,833 kB


Wie kann ich die Default-Soundkarte angeben UND mit mehreren Anwendungen gleichzeitig darauf zugreifen?

Bin für jede Hilfe dankbar.

Cheers,

Sino
_________________
Help to answer the unanswered


Last edited by SinoTech on Tue Oct 13, 2009 1:32 pm; edited 1 time in total
Back to top
View user's profile Send private message
Josef.95
Advocate
Advocate


Joined: 03 Sep 2007
Posts: 3717
Location: Germany

PostPosted: Tue Oct 13, 2009 12:13 pm    Post subject: Reply with quote

Hallo

Grundsätzlich sollte es funktionieren die Kartenreihenfolge in der Kernel Zeile mit anzugeben, zb
snd_emu10k1.index=0 snd_hda_intel.index=1
doch ob dies wirklich die eleganteste Lösung ist darf bezweifelt werden..

Es ist vermutlich besser diese unter /etc/modprobe.d/alsa.conf zu setzen.
Beispiel:
Code:
##  ALSA portion
alias snd-card-0 snd_emu10k1
alias snd-card-1 snd_hda_intel
alias snd-card-2 saa7134_alsa
##  OSS/Free portion
alias sound-slot-0 snd-card-0
alias sound-slot-1 snd-card-1
alias sound-slot-2 snd-card-2
##
# Set this to the correct number of cards.
options snd cards_limit=3

Hier funkt es so eigentlich ganz gut, schaut dann zb so aus
/proc/asound/cards
Code:

 0 [Audigy2        ]: Audigy2 - SB Audigy 2 ZS Notebook [SB0530]SB Audigy 2 ZS Notebook [SB0530] (rev.0, serial:0x20011102) at 0x3000, irq 16
                      SB Audigy 2 ZS Notebook [SB0530] (rev.0, serial:0x20011102) at 0x3000, irq 16
 1 [Intel          ]: HDA-Intel - HDA Intel
                      HDA Intel at 0x80000000 irq 16
 2 [SAA7134        ]: SAA7134 - SAA7134
                      saa7133[0] at 0xb4007800 irq 19


Viel Erfolg
Back to top
View user's profile Send private message
SinoTech
Advocate
Advocate


Joined: 20 Mar 2004
Posts: 2579
Location: Neunkirchen / Saarland / Germany

PostPosted: Tue Oct 13, 2009 1:31 pm    Post subject: Reply with quote

Josef.95 wrote:
Hallo

Grundsätzlich sollte es funktionieren die Kartenreihenfolge in der Kernel Zeile mit anzugeben, zb
snd_emu10k1.index=0 snd_hda_intel.index=1
doch ob dies wirklich die eleganteste Lösung ist darf bezweifelt werden..

Es ist vermutlich besser diese unter /etc/modprobe.d/alsa.conf zu setzen.
Beispiel:
Code:
##  ALSA portion
alias snd-card-0 snd_emu10k1
alias snd-card-1 snd_hda_intel
alias snd-card-2 saa7134_alsa
##  OSS/Free portion
alias sound-slot-0 snd-card-0
alias sound-slot-1 snd-card-1
alias sound-slot-2 snd-card-2
##
# Set this to the correct number of cards.
options snd cards_limit=3

Hier funkt es so eigentlich ganz gut, schaut dann zb so aus
/proc/asound/cards
Code:

 0 [Audigy2        ]: Audigy2 - SB Audigy 2 ZS Notebook [SB0530]SB Audigy 2 ZS Notebook [SB0530] (rev.0, serial:0x20011102) at 0x3000, irq 16
                      SB Audigy 2 ZS Notebook [SB0530] (rev.0, serial:0x20011102) at 0x3000, irq 16
 1 [Intel          ]: HDA-Intel - HDA Intel
                      HDA Intel at 0x80000000 irq 16
 2 [SAA7134        ]: SAA7134 - SAA7134
                      saa7133[0] at 0xb4007800 irq 19


Viel Erfolg

Ich hatte es auch in die "/etc/modprobe.d/alsa.conf" eingetragen und natürlich ein "update-modules" hinterher ausgeführt.
Code:

$ cat /etc/modprobe.d/alsa.conf
[...]
##  ALSA portion
alias snd-card-0 snd-intel8x0
alias snd-card-1 snd-usb-audio
[...]
# tmm-1540 & tmm-1545
options snd-intel8x0 index=0
options snd-usb-audio index=1,2 vid=0x0d8c,0x06e6 pid=0x000c,0xf210

# Set this to the correct number of cards.
options snd cards_limit=3

Die Reihenfolge der Soundkarten ist danach auch wirklich die, die angegeben wurde. Nur der "default"-link zeigt weiterhin auf die erste USB Soundkarte.
Code:

$ ls -l /proc/asound/
     total 0
     lrwxrwxrwx 1 root root 5 Oct 13 15:18 I82801DBICH4 -> card0
     lrwxrwxrwx 1 root root 5 Oct 13 15:18 U0x6e60xf210 -> card2
     dr-xr-xr-x 3 root root 0 Oct 13 15:18 card0
     dr-xr-xr-x 2 root root 0 Oct 13 15:18 card1
     dr-xr-xr-x 2 root root 0 Oct 13 15:18 card2
     -r--r--r-- 1 root root 0 Oct 13 15:18 cards
--> lrwxrwxrwx 1 root root 5 Oct 13 15:18 default -> card1
[...]

Allerdings weiß ich jetzt auch nicht wie wichtig dieser "default"-Link überhaupt ist, denn in meinem normalen System (und anscheinend auch bei dir) existiert er gar nicht. Aber genau die Soundkarte, auf die der Link zeigt, wird per default benutzt.


Egal, habe das ganze nämlich jetzt endlich (nach langem suchen) über folgende /etc/asound.conf lösen können:
Code:

pcm.!default {
        type plug
        slave.pcm "dmixer"
}



pcm.dmixer {
        type dmix
        ipc_key 1025 # Should be a unique number
        slave {
                pcm "hw:0"
    }
    bindings {
           0 0
           1 1
    }
}


Danke für die Antwort.

Cheers,

Sino
_________________
Help to answer the unanswered
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum