0

Greetings everybody,

I have been trying to acquire data from my Sound Blaster audio device through USB
using libusb library.

Have been trying to implement isochronous communication mode and having an error
related to busy device, errno = 16.

While I was searching in the web, I see when asound.state file is running, similar
problems might arise.

I am not experienced that much in either Linux and libusb. That is why, wanted to
ask this in this forum.

If you could show me a way to solve my problem, I would be glad.

Thanks in advance

2
Contributors
5
Replies
16
Views
3 Years
Discussion Span
Last Post by m.a.u.
1

It is almost certain that the kernel module/driver for the sound-card is in use. If Alsa is running, that would also be using the kernel module for the sound card. So something (either the driver or ALSA) is claiming ownership of the sound device and this is most likely stopping libusb from being able to access it - Giving you the 'device busy' error message. (BTW: I'm not sure ownership is the right term, but you get what I mean!)

Why are you using libusb to get data from your sound card? Why not go through another API like ALSA or JACK?
This article might be of some help to you:
http://www.linuxdevcenter.com/pub/a/linux/2007/08/02/an-introduction-to-linux-audio.html

0

Jason,

Thanks for your reply, I will try gnuradio library.

It provides a DSP library in addition to data acquisition from either USB & ethernet.

Thanks for your time

0

Jason thansk again,

The link you shared looks very useful, and you are right. The reason why I was trying libusb, I had no experience and found it when I googled.

Thanks

0

Might I ask if there is a library which I could use in ethernet communication, especially for data acquisition purpose?

boost.asio is an alternative for such applications as far as I see.

If I could link in Code::Blocks, currently what I prefer to use, GnuRadio seems to be a perfect match along with its signal processing modules; already have some python, gnuradio, & numpy experience.

Socket is also another option, but never used - no idea.

This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.