[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