You are going to have trouble using the same interface from two different
processes. Linux maintains exclusive access for a process once it has
claimed an interface until it is released or the file descriptor is closed
(either intentionally or from the process exiting). If you claim the
interface in the parent, you'll get EBUSY in the child.

As far as hotplug goes, I'm sorry to not be helpful there.

Chris

On Saturday, January 25, 2014, Judd Taylor <jud...@orbitalsystems.com>
wrote:

>  I've got a big (and late) project that needs to use libusb/libusbx to
> ingest data from a satellite demodulator.
>
> I need async capability, as well as the ability to talk via two different
> logical interfaces via different processes, even through they are on the
> same USB interface (logical interface 1 is a control channel, with an
> IN/OUT EP, and logical interface 2 is the data channel with an IN
> endpoint). I know it's retarded they are on the same USB interface, but I
> can handle this with forking after claim_interface() (I think).
>
> My main problem is in getting a working version of this library. I'm using
> CentOS5 (which can't be changed for other reasons), and the latest version
> of the libusbx simply don't work at all for me due to hotplug issues. The
> problem I'm getting is that it assumes I have netlink if I configure
> libusbx with --enable-udev=no. I have to use --enable-udev=no because while
> there is an early udev available, there is no way libudev.h will ever be
> available for this OS release.
>
> However, netlink isn't there either, so what I really need to do is to
> disable hotplug altogether, and I don't see any way to do this.
>
>
> So after fighting the above problem in 1.0.17 of libusbx, I ended up
> trying to move the project forward by going back releases until I found
> something that worked. This is libusb-1.0.8. HOWEVER, now in my latest
> testing, it seems I can't get the async data ingest thread to terminate
> properly, seemingly due to a race condition bug in that old version of
> libusb. (libusb_handle_events() is all that is available).
>
> So it seems I'm stuck between a rock and a hard place here. I can't use
> the old version of libusb (1.0.8) because it's async stuff is racy/broken,
> and I can't use the new libusbx stuff since it won't get past libusb_init().
>
>
> Can anyone help me with this? Maybe via a patch that completely disables
> hotplug?
>
>
> PS: I'm using this through Perl, via a new XS level language extension
> that I'm writing. I have this working with the async callbacks (which was a
> nightmare in itself).
>
> Thanks,
>     Judd
>
>   ____________________________
> Judd Taylor
> Software Engineer
>
> Orbital Systems, Ltd.
> 3807 Carbon Rd.
> Irving, TX 75038-3415
>
> (972) 915-3669 x127
>
------------------------------------------------------------------------------
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments & Everything In Between.
Get a Quote or Start a Free Trial Today. 
http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
_______________________________________________
libusbx-devel mailing list
libusbx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libusbx-devel

Reply via email to