support for logitech mx610 mouse

Hans Petter Selasky hselasky at c2i.net
Sat Mar 14 01:30:56 PDT 2009


On Saturday 14 March 2009, man at email.com.ua wrote:
> Hi.
> I have logitech mx610. This mouse have a lot of buttons, but not all of
> this buttons work (volume control, mail, im and tilt wheel).
>
> ums0: <Logitech USB Receiver, class 0/0, rev 2.00/42.00, addr 2> on usbus0
> ums0: 16 buttons and [XYZ] coordinates
>
> kldunload ums
> kldunload uhid
> kldload uhid
>
> uhid0: <Logitech USB Receiver, class 0/0, rev 2.00/42.00, addr 2> on usbus0
> uhid1: <Logitech USB Receiver, class 0/0, rev 2.00/42.00, addr 2> on usbus0
>
> usbhidctl -f /dev/uhid0 -ar
> Report descriptor:
> Collection page=Generic_Desktop usage=Mouse
> Collection page=Generic_Desktop usage=Pointer
> Input   size=1 count=1 page=Button usage=Button_1, logical range 0..1
> Input   size=1 count=1 page=Button usage=Button_2, logical range 0..1
> Input   size=1 count=1 page=Button usage=Button_3, logical range 0..1
> Input   size=1 count=1 page=Button usage=Button_4, logical range 0..1
> Input   size=1 count=1 page=Button usage=Button_5, logical range 0..1
> Input   size=1 count=1 page=Button usage=Button_6, logical range 0..1
> Input   size=1 count=1 page=Button usage=Button_7, logical range 0..1
> Input   size=1 count=1 page=Button usage=Button_8, logical range 0..1
> Input   size=1 count=1 page=Button usage=Button_9, logical range 0..1
> Input   size=1 count=1 page=Button usage=Button_10, logical range 0..1
> Input   size=1 count=1 page=Button usage=Button_11, logical range 0..1
> Input   size=1 count=1 page=Button usage=Button_12, logical range 0..1
> Input   size=1 count=1 page=Button usage=Button_13, logical range 0..1
> Input   size=1 count=1 page=Button usage=Button_14, logical range 0..1
> Input   size=1 count=1 page=Button usage=Button_15, logical range 0..1
> Input   size=1 count=1 page=Button usage=Button_16, logical range 0..1
> Input   size=12 count=1 page=Generic_Desktop usage=X, logical range
> -2047..2047 Input   size=12 count=1 page=Generic_Desktop usage=Y, logical
> range -2047..2047 Input   size=8 count=1 page=Generic_Desktop usage=Wheel,
> logical range -127..127 Input   size=8 count=1 page=Consumer usage=AC_Pan,
> logical range -127..127 End collection
> End collection
> Total   input size 7 bytes
> Total  output size 0 bytes
> Total feature size 0 bytes
> usbhidctl: USB_SET_IMMED: Device not configured
>
> usbhidctl -f /dev/uhid1 -ar
> Report descriptor:
> Total   input size 0 bytes
> Total  output size 0 bytes
> Total feature size 0 bytes
> usbhidctl: USB_SET_IMMED: Device not configured
>
> usbconfig -u 0 -a 2 do_request 0x81 0x06 0x2200 1 0x100
> REQUEST = <0x05 0x0c 0x09 0x01 0xa1 0x01 0x85 0x03 0x75 0x10 0x95 0x02 0x15
> 0x01 0x26 0x8c 0x02 0x19 0x01 0x2a 0x8c 0x02 0x81 0x60 0xc0 0x06 0x00 0xff
> 0x09 0x01 0xa1 0x01 0x85 0x10 0x75 0x08 0x95 0x06 0x15 0x00 0x26 0xff 0x00
> 0x09 0x01 0x81 0x00 0x09 0x01 0x91 0x00 0xc0 0x06 0x00 0xff 0x09 0x02 0xa1
> 0x01 0x85 0x11 0x75 0x08 0x95 0x13 0x15 0x00 0x26 0xff 0x00 0x09 0x02 0x81
> 0x00 0x09 0x02 0x91 0x00 0xc0><u&*`u&u&>
>
>
> I see from this report, what tilt wheel is defined as AC_Pan  (expected
> button) - this is not supported by Xorg. Can I remap this?

You can re-map in /sys/dev/usb/input/ums.c

> All of the 
> additional buttons would have to determine at uhid1, but  not decided. This
> can be done?

I need some samples of the data format, when you a) move mouse b) press 
buttons. Can you write a small C-program?

f = open("/dev/uhid0", O_RDONLY);
if (f < 0) return;

uint8_t buf[256];
int len;

while (1) {

len = read(f, buf, sizeof(buf));
if (len < 0) break;
}

dump buf in HEX.

--HPS

>
> Thanks in advance.
>
> You gave hope that the usb subsystem will be released at a high level of
> implementation. IMHO your job - is a big step forward for support FreeBSD
> at desktop.


More information about the freebsd-usb mailing list