Vice zvukovych zarizeni na USB + ALSA

Zdenek Janis zdenek.janis na brajan.cz
Pátek Květen 18 23:24:18 CEST 2007


Dobry den,
Potreboval bych pomoci s diagnostikou problemu.

Chtel bych mit u PC pripojeno vice zvukovych zarizeni pres USB (ponechme 
stranou proc to). Ty zarizeni nejsou stejne (pozdeji se muze stat, ze 
jich nekolik stejnych bude), jedno jsou USB sluchatka a druhe USB 
zvukovka (skatulka). Nutno poznamenat ze zarizeni pripojuji pre USB 7p 
switch.
Samostatne kazde znich pracuje k plne spokojenosti vyuzivajic modul 
jadra "snd_usb_audio". Test pomoci "speaker-test" - ok pro obe (samostatne).
Mam-li ale zapojeny obe USB zvukovky, tak uz znich nedostanu zadny zvuk 
a "speaker-test" neustale vypisuje:

$ speaker-test -c 6 -D usb_phone

speaker-test 1.0.13

Playback device is usb_phone
Stream parameters are 48000Hz, S16_LE, 6 channels
Using 16 octaves of pink noise
ALSA lib pcm_direct.c:985:(snd_pcm_direct_initialize_slave) unable to 
install hw params
ALSA lib pcm_dmix.c:876:(snd_pcm_dmix_open) unable to initialize slave
Playback open error: -32,Přerušena roura (SIGPIPE)

A v "kernel.log" jsou tato hlaseni:
May 18 22:57:19 tux kernel: cannot submit datapipe for urb 0, error -28: 
not enough bandwidth

Co je ale zajimave, ze pokud necham bezet "speaker-test" na USB 
sluchatkach a pri tom zapojim USB zvukovku, tak potom funguji obe naraz. 
Pochopitelne do prvniho retartu, vypnuti pc, nebo odpojeni USB switche.
Pokud to ale zapojim primo do PC (bez USB switche), tak to funguje uplne 
skvele (az na to, ze kdyz pustim do USB zvukovky zvuk, tak prvni pouziti 
zdechne prehravac na sig.11). Jenze USBcek na MB neni moc a tak bych to 
potreboval pripojovat pres switch. Podobny problem ukazujici na switch 
mam u USB-serial prevodniku.
Ted jde tedy o to, zda se mam obratit na vyvojare modulu ktery resi USB 
switch (je-li nejaky, nebo zda to je primo v modulu pro USB port) ci je 
to problem modulu pro USB zvukovku, nebo zda zlobi neco v ALSA ci za to 
muze asound.conf nebo rovnou zahodit a shanet jiny USB switch?!


Vypis z kernel.log - prvni cast je pripojeni USB sluchatek, druha cast 
USB zvukovky:

May 18 21:57:04 tux kernel: usb 1-2.4: new full speed USB device using 
ehci_hcd and address 13
May 18 21:57:04 tux kernel: usb 1-2.4: configuration #1 chosen from 1 choice
May 18 21:57:04 tux kernel: input: USB Audio as /class/input/input8
May 18 21:57:04 tux kernel: input: USB HID v1.00 Device [USB Audio] on 
usb-0000:00:0a.1-2.4


May 18 21:57:34 tux kernel: usb 1-2.3: new full speed USB device using 
ehci_hcd and address 14
May 18 21:57:35 tux kernel: usb 1-2.3: configuration #1 chosen from 1 choice
May 18 21:57:35 tux kernel: input: USB Audio as /class/input/input9
May 18 21:57:35 tux kernel: input: USB HID v1.00 Device [USB Audio] on 
usb-0000:00:0a.1-2.3

obsah: "/proc/asound/cards"
  0 [NVidia         ]: HDA-Intel - HDA NVidia
                       HDA NVidia at 0xfe020000 irq 22
  1 [Audio          ]: USB-Audio - USB Audio
                       USB Audio at usb-0000:00:0a.1-2.4, full speed
  2 [Audio_1        ]: USB-Audio - USB Audio
                       USB Audio at usb-0000:00:0a.1-2.3, full speed

obsah: "/proc/asound/devices"
   0: [ 0]   : control
   1:        : sequencer
  16: [ 0- 0]: digital audio playback
  17: [ 0- 1]: digital audio playback
  24: [ 0- 0]: digital audio capture
  25: [ 0- 1]: digital audio capture
  32: [ 1]   : control
  33:        : timer
  48: [ 1- 0]: digital audio playback
  56: [ 1- 0]: digital audio capture
  64: [ 2]   : control
  80: [ 2- 0]: digital audio playback
  88: [ 2- 0]: digital audio capture

obsah: "/proc/asound/pcm"
00-01: AD198x Digital : AD198x Digital : playback 1 : capture 1
00-00: AD198x Analog : AD198x Analog : playback 1 : capture 3
01-00: USB Audio : USB Audio : playback 1 : capture 1
02-00: USB Audio : USB Audio : playback 1 : capture 1

obsah: "/proc/asound/version"
Advanced Linux Sound Architecture Driver Version 1.0.14rc3 (Wed Mar 14 
07:25:50 2007 UTC).

obsah: "proc/asound/card1/stream0" - USB sluchatka
USB Audio at usb-0000:00:0a.1-2.4, full speed : USB Audio

Playback:
   Status: Stop
   Interface 1
     Altset 1
     Format: 0x2
     Channels: 8
     Endpoint: 6 OUT (ADAPTIVE)
     Rates: 44100, 48000

Capture:
   Status: Stop
   Interface 2
     Altset 1
     Format: 0x2
     Channels: 2
     Endpoint: 5 IN (ASYNC)
     Rates: 44100, 48000


obsah: "proc/asound/card2/stream0" - USB sb1
USB Audio at usb-0000:00:0a.1-2.3, full speed : USB Audio

Playback:
   Status: Stop
   Interface 1
     Altset 1
     Format: 0x2
     Channels: 2
     Endpoint: 1 OUT (ADAPTIVE)
     Rates: 48000
   Interface 1
     Altset 2
     Format: 0x2
     Channels: 6
     Endpoint: 1 OUT (ADAPTIVE)
     Rates: 48000

Capture:
   Status: Stop
   Interface 2
     Altset 1
     Format: 0x2
     Channels: 2
     Endpoint: 2 IN (ASYNC)
     Rates: 48000

obsah: "/etc/asound.conf" (ale zkouseno i bez nej)
pcm.dmix_usb_phone {
     type dmix
     ipc_key 110001
     slave {
         pcm "hw:1"
         rate 48000
         period_time 0
         period_size 1024
         buffer_size 8192
         channels 6
     }
     bindings {
         0 0
         1 1
         2 4
         3 5
         4 3
         5 2
     }
}

pcm.usb_phone {
     type plug
     slave {
         pcm "dmix_usb_phone"
         channels 6
     }
}

pcm.dmix_usb_sb1 {
     type dmix
     ipc_key 110002
     slave {
         pcm "hw:2"
         rate 48000
         period_time 0
         period_size 1024
         buffer_size 8192
         channels 6
     }
     bindings {
         0 0
         1 1
         2 4
         3 5
         4 3
         5 2
     }
}

pcm.usb_sb1 {
     type plug
     slave {
         pcm "dmix_usb_sb1"
         channels 6
     }
}


Kernel verze 2.6.21.1 (vlastni kompilace).

-- 
S pozdravem
                 Zdenek Janis




Další informace o konferenci Linux