Tom Schouten wrote:
>>
Another method would be type=vendor recipient=device control requests
>> over the default endpoint.
Well... I tried this for the CDC and I get "Device or resource busy".
What did you try exactly?
It doesn't work if the device is already opened by
another process or a
kernel driver.
There is always a kernel driver for every single interface, also when
using libusb. It is just a different kernel driver. It is not possible
to communicate with a USB device without a kernel driver, also using
libusb.
"open the device" is not really a significant concept with USB, it is
much more important what happens with individual interfaces. libccid
uses libusb to claim the CCID interface, but that is distinct from
the default endpoint.
It seems plausible a USB device can only be opened
once,
That's not the case however.
so you're can you elaborate on what you are
referring to by
"it works well everywhere" wrt "already bound by another driver" ?
Please describe what you've done in more detail instead.
//Peter