[libhid-discuss] device with multiple interfaces
Peter Stuge
stuge-libhid at cdy.org
Tue May 15 21:11:43 UTC 2007
On Tue, May 15, 2007 at 09:40:45PM +0200, Arvid Picciani wrote:
> acording to the manufactor it has 4 interfaces:
> (keyboard,mouse,consumer device,vendor specific)
This isn't true, unfortunately.
First, general stuff about the device:
> T: Bus=05 Lev=02 Prnt=02 Port=01 Cnt=02 Dev#= 10 Spd=12 MxCh= 0
> D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
> P: Vendor=4243 ProdID=ee08 Rev= 1.01
> S: Manufacturer=Linux4Media GmbH
> S: Product=RF Control
> S: SerialNumber=SNR0001
Then one configuration with two interfaces:
> C:* #Ifs= 2 Cfg#= 1 Atr=80 MxPwr=100mA
Then the first interface:
> I:* If#= 0 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=00 Prot=00 Driver=usbhid
> E: Ad=82(I) Atr=03(Int.) MxPS= 9 Ivl=10ms
And then the second:
> I:* If#= 1 Alt= 0 #EPs= 2 Cls=03(HID ) Sub=00 Prot=00 Driver=usbhid
> E: Ad=83(I) Atr=03(Int.) MxPS= 64 Ivl=1ms
> E: Ad=04(O) Atr=03(Int.) MxPS= 64 Ivl=1ms
As you can see, both are HID interfaces.
> Bus 005 Device 009: ID 4243:ee08
[..]
> Interface Descriptor:
> Interface Descriptor:
lsusb confirms.
This is problematic. In order to communicate with the USB device
directly in your application you must first disconnect the kernel
HID driver. This is a really bad approach to programming the device.
(Sometimes neccessary because of really bad device design.)
Maybe you can get away with using the kernel input layer API to
program the device?
What does the manufacturer say about support for the device?
//Peter
More information about the libhid-discuss
mailing list