Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 17 Apr 2009 15:16:23 +0300
From:      Alexander Motin <mav@FreeBSD.org>
To:        freebsd-usb@freebsd.org
Subject:   Are usbhidctl/usbhidaction working?
Message-ID:  <49E87317.2060103@FreeBSD.org>

next in thread | raw e-mail | index | archive | help
Hi.

I have tried to configure multimedia buttons of my Logitech/BTC keyboard
on 8-CURRENT from March 26 and found that it is not working.

Keyboard detected as:
ugen0.2: <BTC> at usbus0
ukbd0: <BTC USB Multimedia Keyboard, class 0/0, rev 1.10/1.00, addr 2>
on usbus0
kbd2 at ukbd0
kbd2: ukbd0, generic (0), config:0x0, flags:0x3d0000
uhid0: <BTC USB Multimedia Keyboard, class 0/0, rev 1.10/1.00, addr 2>
on usbus0

As I have found keyboard supports 3 reports: #1, #2 and #3, while tools
only trying to use report #0 and fail.

I have tried to hack tools to use report 2, which is most interesting
for me, but I have found that data read from uhid device are preceded
with 0x02 byte (I think it may be report id) which confuses
usbhidaction. Here is some debug I have got from it after just stripping
first byte to make it work:

read 3 bytes: 02 02 00
2 Consumer:Volume_Decrement 1 0 echo 'Volume_Decrement' >>/qqq 1
system 'echo 'Volume_Decrement' >>/qqq'
read 1 bytes: 00
read 3 bytes: 02 00 00
read 1 bytes: 00
read 3 bytes: 02 01 00
1 Consumer:Volume_Increment 1 0 echo 'Volume_Increment' >>/qqq 1
system 'echo 'Volume_Increment' >>/qqq'
read 1 bytes: 00
read 3 bytes: 02 00 00
read 1 bytes: 00

So I have a questions:
 - Are these tools are working at least for somebody now?
 - Are these tools able to work with several report ids?
 - Am I right that 0x02 by preceded before report is report id and
usbhidaction tool should parse/strip it?
 - Is it expected way to use uhid with libusd by reading /dev/uhidX
device directly?

-- 
Alexander Motin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?49E87317.2060103>