Thank you for the tip. At a first glance systemtap seems quite cumbersome to compile for ARM, but I will be looking into it more extensively during the day.
I analyzed the dmesg output a bit closer after enabling more debug in the kernel; could these messages possibly have something to do with my issue? > ALSA sound/usb/usbmixer.c:405: cannot set ctl value: req = 0x4, wValue = > 0x200, wIndex = 0xd00, type = 4, data = 0x18/0x0 > ALSA sound/usb/usbmixer.c:405: cannot set ctl value: req = 0x4, wValue = > 0x201, wIndex = 0x900, type = 4, data = 0x18/0x0 Also, I was curious wether there was any USB communication at all when recording, so I fired up usbmon to listen for data on the USB port. I can see that after arecord is started, the total data transferred quickly can be counted by the MBs (while not being affected at all if aplay/arecord is not used), which makes me draw the conclusion that traffic is indeed being sent from my sound card, but never reaches the application. Tim > # dmesg > ... > snd-usb-audio 1-1:1.0: usb_probe_interface > snd-usb-audio 1-1:1.0: usb_probe_interface - got id > ALSA sound/usb/usbaudio.c:2826: 2:1:1: add audio endpoint 0x1 > ALSA sound/usb/usbaudio.c:2826: 2:2:1: add audio endpoint 0x82 > ALSA sound/usb/usbmixer.c:988: [13] FU [Mic Playback Switch] ch = 1, val > = 0/1/1 > ALSA sound/usb/usbmixer.c:405: cannot set ctl value: req = 0x4, wValue = > 0x200, wIndex = 0xd00, type = 4, data = 0x18/0x0 > ALSA sound/usb/usbmixer.c:988: [13] FU [Mic Playback Volume] ch = 1, val > = 0/12240/384 > ALSA sound/usb/usbmixer.c:988: [9] FU [Speaker Playback Switch] ch = 1, > val = 0/1/1 > ALSA sound/usb/usbmixer.c:405: cannot set ctl value: req = 0x4, wValue = > 0x201, wIndex = 0x900, type = 4, data = 0x18/0x0 > ALSA sound/usb/usbmixer.c:988: [9] FU [Speaker Playback Volume] ch = 2, > val = -7264/-16/48 > ALSA sound/usb/usbmixer.c:988: [10] FU [Mic Capture Switch] ch = 1, val > = 0/1/1 > ALSA sound/usb/usbmixer.c:405: cannot set ctl value: req = 0x4, wValue = > 0x200, wIndex = 0xa00, type = 4, data = 0x18/0x0 > ALSA sound/usb/usbmixer.c:988: [10] FU [Mic Capture Volume] ch = 1, val > = 0/6096/384 > ALSA sound/usb/usbmixer.c:988: [10] FU [Auto Gain Control] ch = 1, val = > 0/1/1 > usbcore: registered new interface driver snd-usb-audio > firmware: requesting NPE-C > NPE-C: firmware's license can be found in /usr/share/doc/LICENSE.IPL > NPE-C: firmware functionality 0x5, revision 0x2:1 > eth0: link down > eth0: link up, 100Mbps, full-duplex, lpa 0x45E1 > ALSA sound/usb/usbaudio.c:1350: setting usb interface 2:1 > ALSA sound/usb/usbaudio.c:1350: setting usb interface 2:1 > ALSA sound/usb/usbaudio.c:1350: setting usb interface 2:1 > ALSA sound/usb/usbaudio.c:1350: setting usb interface 2:1 > ALSA sound/usb/usbaudio.c:1350: setting usb interface 2:1 > ... -----Original Message----- From: Igor 'Lo' (И.L.) [mailto:bombsiteunres...@gmail.com] Sent: den 6 oktober 2010 18:45 To: Tim Sjöstrand Subject: Re: [Alsa-user] Arecord hangs on poll() with USB sound card Hint: strace seems saying not so enough, get more debug info with Systemtap < http://sourceware.org/systemtap/ > script like: probe module("soundcore").function("*") { } probe module("snd").function("*") { } probe module("snd_hda_codec_realtek").function("*") { } probe module("snd_hda_intel").function("*").call { printf ("%s -> %s\n", thread_indent(1), probefunc()) } probe module("snd_hda_intel").function("*").return { printf ("%s <- %s\n", thread_indent(-1), probefunc()) } Offtopic: can anyone recommend me with a good place to capture function calls like pci register set for soundcards, alsa to pci read/write calls? Interested in this stuff for my study. On 6 October 2010 16:46, Tim Sjöstrand <tim.sjostr...@crlsweden.com> wrote: > > Hello > > I am trying to play and record sound on an ARM (big endian) platform using > alsa and a USB sound card dongle. > > The sound card is detected properly both in dmesg and alsa, and a "Speaker" > and "Mic" mixer control is visible in "amixer". Playback works fine. > Recording does not work however: when using arecord, it produces a 44 byte > large file (size of the wave header?) and seemingly hangs. Running strace > with arecord shows that it is waiting on a poll() function (see output below). > > I can enable playback on the Mic control, and get the microphone input to > play in the speakers, so I know the microphone is working. > > The "Mic" mixer control has been unmuted and set to capture via "amixer". > > One odd thing is that when using alsamixer (the ncurses interface), it is not > possible to set the "Mic" mixer control to Capture with the Space key. Even > if set via "amixer" (which seems to work, given the output) does not change > how it is visually presented in alsamixer. > > Does anyone have any ideas on how I can continue from here on? > > I have been banging my head on this for several days, so any help would be > appreciated! :) > > Also, I've attached output of several files (in case they may help): > > # uname -r > 2.6.27.44 > > # cat /proc/asound/version > Advanced Linux Sound Architecture Driver Version 1.0.17. > > # amixer > Simple mixer control 'Speaker',0 > Capabilities: pvolume pswitch pswitch-joined penum > Playback channels: Front Left - Front Right > Limits: Playback 0 - 151 > Mono: > Front Left: Playback 150 [99%] [-1.37dB] [on] > Front Right: Playback 150 [99%] [-1.37dB] [on] > Simple mixer control 'Mic',0 > Capabilities: pvolume pvolume-joined cvolume cvolume-joined pswitch > pswitch-joined cswitch cswitch-joined penum > Playback channels: Mono > Capture channels: Mono > Limits: Playback 0 - 32 Capture 0 - 16 > Mono: Playback 31 [97%] [46.50dB] [on] Capture 15 [94%] [22.50dB] [on] > Simple mixer control 'Auto Gain Control',0 > Capabilities: pswitch pswitch-joined penum > Playback channels: Mono > Mono: Playback [on] > > # lsmod | grep snd > snd_hda_intel 288462 0 - Live 0xbf12e000 > snd_usb_audio 50368 0 - Live 0xbf120000 > snd_usb_lib 10176 1 snd_usb_audio, Live 0xbf11c000 > snd_rawmidi 11584 1 snd_usb_lib, Live 0xbf118000 > snd_pcm 45704 2 snd_hda_intel,snd_usb_audio, Live 0xbf10b000 > snd_page_alloc 4232 2 snd_hda_intel,snd_pcm, Live 0xbf108000 > snd_timer 13092 1 snd_pcm, Live 0xbf103000 > snd_hwdep 3524 1 snd_usb_audio, Live 0xbf101000 > snd_seq_device 3628 1 snd_rawmidi, Live 0xbf0ff000 > snd 26980 7 > snd_hda_intel,snd_usb_audio,snd_rawmidi,snd_pcm,snd_timer,snd_hwdep,snd_seq_device, > Live 0xbf0f7000 > soundcore 2948 1 snd, Live 0xbf0f5000 > > # arecord -L > null > Discard all samples (playback) or generate zero samples (capture) > default:CARD=default > C-Media USB Headphone Set , USB Audio > Default Audio Device > > # strace arecord > write(1, "RIFF$\0\0\200WAVE", 12RIFF$ WAVE) = 12 > write(1, "fmt \20\0\0\0", 8fmt ) = 8 > write(1, "\1\0\...@\37\0\0@\37\0\0\1\0\10\0", 16 @ @ ) = 16 > write(1, "data\0\0\0\200", 8data ) = 8 > ioctl(4, 0xc0844123, 0x2ada0) = 0 > ioctl(4, 0xc0844123, 0x2ada0) = 0 > ioctl(4, 0x4142, 0x2ada0) = 0 > ioctl(4, 0xc0844123, 0x2ada0) = 0 > poll([{fd=4, events=POLLIN|POLLERR|POLLNVAL}], 1, -1 > > # dmesg > ... > snd-usb-audio 1-1:1.0: usb_probe_interface > snd-usb-audio 1-1:1.0: usb_probe_interface - got id > ALSA sound/usb/usbaudio.c:2826: 2:1:1: add audio endpoint 0x1 > ALSA sound/usb/usbaudio.c:2826: 2:2:1: add audio endpoint 0x82 > ALSA sound/usb/usbmixer.c:988: [13] FU [Mic Playback Switch] ch = 1, val > = 0/1/1 > ALSA sound/usb/usbmixer.c:405: cannot set ctl value: req = 0x4, wValue = > 0x200, wIndex = 0xd00, type = 4, data = 0x18/0x0 > ALSA sound/usb/usbmixer.c:988: [13] FU [Mic Playback Volume] ch = 1, val > = 0/12240/384 > ALSA sound/usb/usbmixer.c:988: [9] FU [Speaker Playback Switch] ch = 1, > val = 0/1/1 > ALSA sound/usb/usbmixer.c:405: cannot set ctl value: req = 0x4, wValue = > 0x201, wIndex = 0x900, type = 4, data = 0x18/0x0 > ALSA sound/usb/usbmixer.c:988: [9] FU [Speaker Playback Volume] ch = 2, > val = -7264/-16/48 > ALSA sound/usb/usbmixer.c:988: [10] FU [Mic Capture Switch] ch = 1, val > = 0/1/1 > ALSA sound/usb/usbmixer.c:405: cannot set ctl value: req = 0x4, wValue = > 0x200, wIndex = 0xa00, type = 4, data = 0x18/0x0 > ALSA sound/usb/usbmixer.c:988: [10] FU [Mic Capture Volume] ch = 1, val > = 0/6096/384 > ALSA sound/usb/usbmixer.c:988: [10] FU [Auto Gain Control] ch = 1, val = > 0/1/1 > usbcore: registered new interface driver snd-usb-audio > firmware: requesting NPE-C > NPE-C: firmware's license can be found in /usr/share/doc/LICENSE.IPL > NPE-C: firmware functionality 0x5, revision 0x2:1 > eth0: link down > eth0: link up, 100Mbps, full-duplex, lpa 0x45E1 > ALSA sound/usb/usbaudio.c:1350: setting usb interface 2:1 > ALSA sound/usb/usbaudio.c:1350: setting usb interface 2:1 > ALSA sound/usb/usbaudio.c:1350: setting usb interface 2:1 > ALSA sound/usb/usbaudio.c:1350: setting usb interface 2:1 > ALSA sound/usb/usbaudio.c:1350: setting usb interface 2:1 > ... > > -- > Tim Sjöstrand, Software Developer > Communication Research Labs Sweden AB > > Address: Gröndalsvägen 19, 392 36 Kalmar, Sweden > E-mail: tim.sjostr...@crlsweden.com > www.crlsweden.com > > This communication is confidential and is only intended for the use of the > individual or entity to which it is directed. This Email (and any files or > other attachments transmitted with it) is intended solely for the use of the > addresee(s). If you are not the intended recipient, please destroy all > copies and notify the sender, you should not retain the message or disclose > its contents to anyone. > ------------------------------------------------------------------------------ > Beautiful is writing same markup. Internet Explorer 9 supports > standards for HTML5, CSS3, SVG 1.1, ECMAScript5, and DOM L2 & L3. > Spend less time writing and rewriting code and more time creating great > experiences on the web. Be a part of the beta today. > http://p.sf.net/sfu/beautyoftheweb > _______________________________________________ > Alsa-user mailing list > Alsa-user@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/alsa-user > ------------------------------------------------------------------------------ Beautiful is writing same markup. Internet Explorer 9 supports standards for HTML5, CSS3, SVG 1.1, ECMAScript5, and DOM L2 & L3. Spend less time writing and rewriting code and more time creating great experiences on the web. Be a part of the beta today. http://p.sf.net/sfu/beautyoftheweb _______________________________________________ Alsa-user mailing list Alsa-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/alsa-user