PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : soundkarte einem device zuordnen



pita
08.02.08, 16:51
hallo gemeinde :)

folgendes "problem":

ich habe zwei soundkarten im meinem rechner:

karte a (onboard) und karte b (pci-karte).

zz habe ich meine boxen an karte b angeschlossen.
nun möchte ich aber karte a für separate kopfhörer verwenden (stichwort teamspeak mit zwei soundkarten).

frage:
wie bekomme ich heraus, welche karte auf welches sound-device in /dev/ gemappt wird (welches ich dann folgerichtig in teamspeak eintrage)?

so, nun zu den harten fakten:


lspci | grep audio
karte b-> 00:0b.0 Multimedia audio controller: C-Media Electronics Inc CM8738 (rev 10)
karte a -> 00:11.5 Multimedia audio controller: VIA Technologies, Inc. VT8233/A/8235/8237 AC97 Audio Controller (rev 60) <- karte a
--------
cat /proc/asound/cards
0 [CMI8738MC6 ]: CMI8738-MC6 - C-Media PCI CMI8738-MC6
C-Media PCI CMI8738-MC6 (model 55) at 0xd800, irq 19
1 [V8237 ]: VIA8237 - VIA 8237
VIA 8237 with AD1888 at 0xe000, irq 20
---------
cat /proc/asound/devices
0: [ 0] : control
1: : sequencer
4: [ 0- 0]: hardware dependent
16: [ 0- 0]: digital audio playback
17: [ 0- 1]: digital audio playback
18: [ 0- 2]: digital audio playback
24: [ 0- 0]: digital audio capture
26: [ 0- 2]: digital audio capture
32: [ 1] : control
33: : timer
48: [ 1- 0]: digital audio playback
49: [ 1- 1]: digital audio playback
56: [ 1- 0]: digital audio capture
57: [ 1- 1]: digital audio capture
-------------
cat /proc/asound/pcm
00-02: CMI8738-MC6 : C-Media PCI IEC958 : playback 1 : capture 1
00-01: CMI8738-MC6 : C-Media PCI 2nd DAC : playback 1
00-00: CMI8738-MC6 : C-Media PCI DAC/ADC : playback 1 : capture 1
01-01: VIA 8237 : VIA 8237 : playback 1 : capture 1
01-00: VIA 8237 : VIA 8237 : playback 4 : capture 1
-----------
cat /proc/asound/oss/device
cat: /proc/asound/oss/device: No such file or directory



geladene alsa-module:


lsmod | grep snd
snd_opl3_synth 14084 0
snd_seq_instr 7296 1 snd_opl3_synth
snd_seq_midi_emul 5888 1 snd_opl3_synth
snd_ainstr_fm 2368 1 snd_opl3_synth
snd_via82xx 26872 1
snd_via82xx_modem 14536 0
snd_ac97_codec 92836 2 snd_via82xx,snd_via82xx_modem
ac97_bus 2272 1 snd_ac97_codec
snd_cmipci 32480 3
gameport 14984 2 snd_via82xx,snd_cmipci
snd_pcm_oss 39200 0
snd_mixer_oss 15424 1 snd_pcm_oss
snd_pcm 72324 6 snd_via82xx,snd_via82xx_modem,snd_ac97_codec,snd_c mipci,snd_pcm_oss
snd_opl3_lib 9824 2 snd_opl3_synth,snd_cmipci
snd_hwdep 8772 1 snd_opl3_lib
snd_mpu401_uart 8096 2 snd_via82xx,snd_cmipci
snd_seq_midi 8160 0
snd_rawmidi 22624 2 snd_mpu401_uart,snd_seq_midi
snd_seq_dummy 3748 0
snd_seq_oss 29408 0
snd_seq_midi_event 6880 2 snd_seq_midi,snd_seq_oss
snd_seq 46320 9 snd_opl3_synth,snd_seq_instr,snd_seq_midi_emul,snd _seq_midi,snd_seq_dummy,snd_seq_oss,snd_seq_midi_e vent
snd_timer 21028 4 snd_pcm,snd_opl3_lib,snd_seq
snd_seq_device 7692 7 snd_opl3_synth,snd_opl3_lib,snd_seq_midi,snd_rawmi di,snd_seq_dummy,snd_seq_oss,snd_seq
snd 48324 22 snd_opl3_synth,snd_via82xx,snd_via82xx_modem,snd_a c97_codec,snd_cmipci,snd_pcm_oss,snd_mixer_oss,snd _pcm,snd_opl3_lib,snd_hwdep,snd_mpu401_uart,snd_ra wmidi,snd_seq_oss,snd_seq,snd_timer,snd_seq_device
snd_page_alloc 9512 3 snd_via82xx,snd_via82xx_modem,snd_pcm
soundcore 7520 1 snd



so, hier die zz gemappten devices:


ll /dev |grep dsp
crw-rw---- 1 root audio 14, 12 2008-02-08 17:15 adsp
crw-rw---- 1 root audio 14, 28 2008-02-08 17:15 adsp1
crw-rw---- 1 root audio 14, 3 2008-02-08 17:15 dsp
crw-rw---- 1 root audio 14, 19 2008-02-08 17:15 dsp1



mein zur zeit aktives device (karte b) ist /dev/dsp (hab ich mittels befehl1="cat /dev/urandom > /dev/dsp" herausgefunden).

wenn ich jetzt allerdings kopfhörer in karte a stöpsel und befehl1 ausführe (jeweils mit den anderen devices) kommt bei keinem etwas (ich setzt vorraus, dass karte a an sich funktioniert).

wie herausfinden ob und auf welches device karte a gemappt wurde bzw. wie kann ich die karte mappen?

danke für die mühe des lesens :)

greetz
pita

El-Biero
09.02.08, 19:02
hy
also bei einer klappt der sound?. Kannst auch alles bei alsamixer einstellen.
Starte mal
alsamixer -c 1
damit öffnet sich der Mixer mit den Einstellungen für die 2 Karte, hier dreh mal master pcm rauf und schau ob was kommt.
Teste mal mit

aplay -D plughw:0,0 bla,bla.wav
die 1 Karte danach mit

aplay -D plughw:1,0 bla,bla.wav
die 2 karte. Klappt das mit beiden?
Die Standrdkarte fürs abspielen stellst in deiner Home/.asoundrc ein. Einfach bei dieser das device ändern od falls nicht vorhanden das hinzufügen

pcm.!default {
type hw
card 1
}

ctl.!default {
type hw
card 1
}
ist hier die 2. Karte, wennst die 1. willst einfach statt der 1 eine 0 eingeben.

Tschau El-Biero

pita
09.02.08, 22:02
hey
danke für die antwort.

bei beiden karten ist sowohl der master, als auch pcm aufgedreht (ich benutze gamixer)


aplay -D plughw:1,0 bla,bla.wav


liefert mir:


Playing WAVE 'bal,bla.wav' : Unsigned 8 bit, Rate 11127 Hz, Mono

allerdings höre ich keinen sound.

das gleich gilt für


aplay -D plughw:0,1 bla,bla.wav

(obwohl sich die wav mittels xmms abspielen lässt)

für verschiedene werte von plughw (0,0 - 0,2 siehe mein oberes posting) bekomme ich:


aplay: main:546: audio open error: Device or resource busy

und ich habe kein anderes programm laufen, dass die soundkarte blockieren könnte.

außerdem will ich ja herausbekommen, auf welches device in /dev/ meine onboard-karte gemappt ist, damit ich dieses dann zb in teamspeak verwenden kann.

greetz
pita

ps: die .asoundrc hab ich nicht in meinem homeverzeichnis. kann ich die einfach anlegen?

El-Biero
10.02.08, 12:28
Hallo
hab mir deine devs noch mal angesehen.
Also kurze Erklärung
plughw:0,2 sollte bei dir die media Karte ansprechen die kann leider nur einen Stream zugleich verarbeiten, aber mit einenn Soundserver sollte das kein prob sein.
0 bedeutet bei dir die 1 Karte 2 ist das 2 dev auf dieser Karte.
Dein Auszug von oben

cat /proc/asound/pcm
00-02: CMI8738-MC6 : C-Media PCI IEC958 : playback 1 : capture 1
00-01: CMI8738-MC6 : C-Media PCI 2nd DAC : playback 1
00-00: CMI8738-MC6 : C-Media PCI DAC/ADC : playback 1 : capture 1
01-01: VIA 8237 : VIA 8237 : playback 1 : capture 1
01-00: VIA 8237 : VIA 8237 : playback 4 : capture 1
Bei einer Karte mit hwmixing sollte bei playback mehr als 1 stehen, dass solte bei dir mit der VIA klappen da steht playback 4.
Bei mir bei der SB-Live ebenso

[elbiero@Tuxbox ~]$ cat /proc/asound/pcm
00-00: emu10k1 : EMU10K1 : playback 32 : capture 1
00-01: emu10k1 mic : EMU10K1 MIC : capture 1
00-02: emu10k1 efx : EMU10K1 EFX : playback 8 : capture 1

Wennst die VIA ansprechen willst must du jedes Programm so einstellen das plughw:1,0 genommen wird, dass sollte unter xmms bei Einstellungen IO plugin alsa konfigurieren Audiogerät statt default dorteinfach hw:1,0 auswählen. Da sollte eine Auswahl aufscheinen. Kannst falls es nicht klappt auch mit 1,1 probieren.
Hmm du solltest auch für die alsaoss Emulation einige devs haben, die brauchst aber nur falls ein prog nur oss unterstützt, sollte dann so etwa aussehen

[elbiero@Tuxbox ~]$ cat /proc/asound/oss/devices
2: [0- 2]: raw midi
12: [0-12]: digital audio
3: [0- 3]: digital audio
0: [0- 0]: mixer
13: [0-13]: raw midi
da aber sowieso fast alle progs alsa Unterstützung haben ist es nicht so tragisch.
Zu .asoundrc wennst keine hast schreib einfach meine ab. Wennst von einer Karte auch noch ein bestimmtes dev nehmen willst fügst beide male nach dem card noch eine zeile device 2 bzw die zahl ein welches dev es sein soll.
Tschau El-Biero

Gimpel
16.02.08, 20:10
außerdem will ich ja herausbekommen, auf welches device in /dev/ meine onboard-karte gemappt ist, damit ich dieses dann zb in teamspeak verwenden kann.

Mit ALSA hast du nur was in /dev/ wenn OSS emulation geladen ist. card0 = /dev/dsp, card1 = /dev/dsp1

Die Reihenfolge der Soundkarten tauscht man idealerweise mit der index= Option beim Laden der Module.

Wenn du über .asoundrc umpolst, dann nimm "type plug" statt "type hw" und als slave.pcm "dmix", sonst ruinierst du dein DMIX setup ;)