[libhid-discuss] Using composite USB devices
Ali Asad
Asad.Ali at gemalto.com
Mon Mar 30 14:57:33 UTC 2009
Hi,
Based on feedback from this list and also from libusb, I was to resolve these issues with my composite device. I can now send and receive data to it. Many thanks for your suggestions.
Peter Stuge wrote:
>> Are ep1-2 and ep4 in different interfaces? If not I think you're in trouble if you want to use the MSC at the same time as HID.
Yes, ep1-2 and ep4 are on different interfaces.
Peter Stuge wrote:
>> Using native HID on OS X?
Yes, we use native HID support on OS X.
Best regards,
--- asad
-----Original Message-----
From: libhid-discuss-bounces+asad.ali=gemalto.com at lists.alioth.debian.org [mailto:libhid-discuss-bounces+asad.ali=gemalto.com at lists.alioth.debian.org] On Behalf Of Peter Stuge
Sent: Monday, March 23, 2009 10:14 AM
To: libhid-discuss at lists.alioth.debian.org
Subject: Re: [libhid-discuss] Using composite USB devices
Ali Asad wrote:
> The device in question is a composite USB memory token that also
> enumerates as an HID device. It has four end points; ep 1 and ep 2 for
> bulk mass storage, ep 0 as control end-point, and ep 4 for interrupt
> IN.
> The control end-point is used for sending HID data from host to
> device, and the interrupt end-point for sending HID data from device
> to the host.
Are ep1-2 and ep4 in different interfaces? If not I think you're in trouble if you want to use the MSC at the same time as HID.
> I can talk to this device over HID on both Windows and Mac OS (Tiger
> as well as Leopard), and now want to support Linux as well.
Using native HID on OS X?
> I am attaching the pseudo code of using the USB library (libhid gave
> me similar results). Do you spot anything wrong in this appraoch?
Posting to libusb-devel might be better. I'll try to give some hints here at least.
> rv = usb_detach_kernel_driver_np(usb_handle,
> MY_CONTROL_INTERFACE);
Do you need to?
> rv = usb_claim_interface(usb_handle, MY_CONTROL_INTERFACE);
This makes me a bit scared. How many interfaces are there? You should have at least two. Output from lsusb -v and /proc/bus/usb/devices is always helpful in these questions.
> rv = usb_interrupt_read(usb_handle,
>
> // ERROR: this call fails. I do not see any data on the USB bus.
How does it fail? Please provide every single detail if you want us to be able to help you.
//Peter
_______________________________________________
libhid-discuss mailing list
libhid-discuss at lists.alioth.debian.org
http://lists.alioth.debian.org/mailman/listinfo/libhid-discuss
http://libhid.alioth.debian.org/
More information about the libhid-discuss
mailing list