Fedor G. Pikus wrote:
> > Fedor G. Pikus wrote:
> > > > > > > arecord: pcm_read:1049: read error: Input/output error
> > >
> > > Still nothing in the log, even with --with-debug=full
>
> I built arecord and libasound with debug and went into it with gdb.
> I traced it to the function static snd_pcm_sframes_t snd_pcm_hw_readi(...)
> in pcm_hw.c line 525. There, it makes a call to
> result = ioctl(fd, SNDRV_PCM_IOCTL_READI_FRAMES, &xferi);
> and pauses for a few seconds. When ioctl returns, result == -1,
> size == 5, xferi == {result = -5, buf = 0x805a470, frames = 4096},
> and errno == 5 (EIO according to asm/include.h, the man page for ioctl does
> not even list it among valid error codes). The function immediately returns,
> and arecord exits.
If the pause is 10 seconds, the error may have been returned by the following
code in snd_pcm_lib_read1:
if (schedule_timeout(10 * HZ) == 0) {
state = ... EXPIRED;
break;
}
...
case EXPIRED:
snd_printd("capture read error (DMA or IRQ trouble?)\n");
err = -EIO;
Or is the pause 5 seconds (the timeout of usb_set_interface)?
if (usb_set_interface(dev, subs->interface, fmt->altset_idx) < 0) {
snd_printk(KERN_ERR "%d:%d:%d: usb_set_interface failed\n",
dev->devnum, subs->interface, fmt->altsetting);
return -EIO;
}
Are you _really_ sure you have recompiled the entire alsa-driver package
with debug output, installed it correctly, and there's nothing in the log?
Please try inserting the line
snd_printk(KERN_ERR "now calling usb_set_interface ...\n");
immediately before the line with usb_set_interface in usbaudio.c. This
message must always be visible in the log.
HTH
Clemens
-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
Alsa-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-devel