[alsa-devel] Set fragment size for USB sound card
System: NEC Versa M540 laptop Dist: Debian Etch/Lenny Kernel: 2.6.18 Alsa: using drivers in kernel, although no difference when compiled from alsa-source package. Card in question: C-Media USB sound card (more info below)
Hi there,
I realise that this may not be strictly a developer list question, but someone on the alsa-user list suggested I try here. Any help would be appreciated.
The question is a continuation of:
http://sourceforge.net/mailarchive/forum.php?thread_name=1176015858.4497.9.c... and http://www.linuxquestions.org/questions/showthread.php?t=540205
Essentially, I have a C-Media USB audio adaptor with which to use my headphones, and it only works with a fragment size of 2048 or less (discovered using 'alsaplayer -f 2048'). I would like to be able to plug it in, have ALSA recognise it and use this fragment size for it.
Without specifying this fragment size, I get:
-- $ alsaplayer -i text -o alsa -d hw:2 /usr/share/sounds/generic.wav Unable to install hw params: ACCESS: RW_INTERLEAVED FORMAT: S16_LE SUBFORMAT: STD SAMPLE_BITS: 16 FRAME_BITS: 32 CHANNELS: 2 RATE: 44100 PERIOD_TIME: (23219 23220) PERIOD_SIZE: 1024 PERIOD_BYTES: 4096 PERIODS: 8 BUFFER_TIME: (185759 185760) BUFFER_SIZE: 8192 BUFFER_BYTES: 32768 TICK_TIME: 1000 failed to configure output device...trying OSS
...done playing --
...and the sound comes through the laptop speakers. I tried defining a slave PCM:
-- pcm.usbtest { type dmix ipc_key 192837465 ipc_key_add_uid true slave { pcm "hw:2,0" # period_size 2048 buffer_size 2048 } } --
But trying 'alsaplayer -i text -o alsa -d usbtest /usr/share/sounds/generic.wav' gave exactly the same error.
From my previous post:
--
...I also tried forcing the index of the card by adding the following to /etc/modprobe.d/alsa-base, but even this only works half of the time:
-- # Prevent abnormal drivers from grabbing index 0 options snd-bt87x index=-2 options snd-cx88_alsa index=-2 options snd-atiixp-modem index=-2 # options snd-intel8x0m index=-2 options snd-via82xx-modem index=-2
options snd-intel8x0 index=0 options snd-intel8x0m index=1 options snd-usb-audio index=2 vid=0d8c pid=000c options snd-usb-audio index=3 --
The contents of '/proc/asound/cards' are:
-- 0 [I82801DBICH4 ]: ICH4 - Intel 82801DB-ICH4 Intel 82801DB-ICH4 with ALC655 at 0xf0000400, irq 5 1 [Modem ]: ICH-MODEM - Intel 82801DB-ICH4 Modem Intel 82801DB-ICH4 Modem at 0xe200, irq 5 2 [default ]: USB-Audio - C-Media USB Headphone Set C-Media USB Headphone Set at usb-0000:00:1d.1-1, full speed --
...although sometimes the ICH-MODEM is missing and the C-Media card is at #1.
Card information from 'lsusb':
Bus 002 Device 003: ID 0d8c:000c C-Media Electronics, Inc. Audio Adapter
Usually I boot with the card plugged in, but if I plug it in after booting, the new modules loaded are: snd_hwdep, snd_rawmidi, snd_usb_audio and snd_usb_lib. --
Anyway, as I said, any help would be appreciated.
Cheers, Jason
participants (1)
-
Jason Heeris