Summary: | Contour Rollermouse Red not supported by ums(4) | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | Base System | Reporter: | Atte Peltomäki <koston> | ||||||||
Component: | usb | Assignee: | freebsd-usb (Nobody) <usb> | ||||||||
Status: | Closed FIXED | ||||||||||
Severity: | Affects Some People | CC: | emaste, hselasky, wulf | ||||||||
Priority: | --- | ||||||||||
Version: | 13.1-RELEASE | ||||||||||
Hardware: | amd64 | ||||||||||
OS: | Any | ||||||||||
Attachments: |
|
Description
Atte Peltomäki
2022-11-22 12:43:51 UTC
Hi, Maybe if you use the newer /dev/input/evdevX interface it will work? Also see: sysctl kern.evdev.rcpt_mask --HPS Negative. kern.evdev.input.9.phys: ums0 kern.evdev.input.9.id: { bustype = 0x0003, vendor = 0x0b33, product = 0x1004, version = 0x0000 } kern.evdev.input.9.name: Contour Rollermouse Red [107405.838] (II) config/udev: Adding input device Contour Rollermouse Red (/dev/input/event9) [107405.838] (**) Contour Rollermouse Red: Applying InputClass "evdev pointer catchall" [107405.838] (**) Contour Rollermouse Red: Applying InputClass "libinput pointer catchall" [107405.838] (**) Contour Rollermouse Red: Applying InputClass "Rollermouse" [107405.838] (II) Using input driver 'evdev' for 'Contour Rollermouse Red' [107405.838] (**) Contour Rollermouse Red: always reports core events [107405.838] (**) evdev: Contour Rollermouse Red: Device: "/dev/input/event9" [107405.838] (--) evdev: Contour Rollermouse Red: Vendor 0xb33 Product 0x1004 [107405.838] (--) evdev: Contour Rollermouse Red: Found 20 mouse buttons [107405.838] (--) evdev: Contour Rollermouse Red: Found scroll wheel(s) [107405.838] (--) evdev: Contour Rollermouse Red: Found relative axes [107405.838] (--) evdev: Contour Rollermouse Red: Found x and y relative axes [107405.838] (II) evdev: Contour Rollermouse Red: Configuring as mouse [107405.838] (II) evdev: Contour Rollermouse Red: Adding scrollwheel support [107405.838] (**) evdev: Contour Rollermouse Red: YAxisMapping: buttons 4 and 5 [107405.838] (**) evdev: Contour Rollermouse Red: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200 [107405.838] (II) XINPUT: Adding extended input device "Contour Rollermouse Red" (type: MOUSE, id 14) [107405.838] (II) evdev: Contour Rollermouse Red: initialized for relative axes. [107405.838] (**) Contour Rollermouse Red: (accel) keeping acceleration scheme 1 [107405.839] (**) Contour Rollermouse Red: (accel) acceleration profile 0 [107405.839] (**) Contour Rollermouse Red: (accel) acceleration factor: 2.000 [107405.839] (**) Contour Rollermouse Red: (accel) acceleration threshold: 4 Behaviour remains the same. It also remains the same if using sysmouse(4) event input device for Xorg. And, as previously mentioned, in console using moused(8). Find your device using usbconfig, then use: usbdump -i X -f Y -s 65536 -vvv To see what is going on there. Also you may want to use usbconfig to dump all the usb descriptors for your device. --HPS Thanks! ugen0.6: <Contour Design Contour Rollermouse Red> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (300mA) bLength = 0x0012 bDescriptorType = 0x0001 bcdUSB = 0x0200 bDeviceClass = 0x0000 <Probed by interface class> bDeviceSubClass = 0x0000 bDeviceProtocol = 0x0000 bMaxPacketSize0 = 0x0008 idVendor = 0x0b33 idProduct = 0x1004 bcdDevice = 0x0005 iManufacturer = 0x0001 <Contour Design> iProduct = 0x0003 <Contour Rollermouse Red> iSerialNumber = 0x0080 <> bNumConfigurations = 0x0001 usbdump of two events, first pressing and releasing Left button, then pressing and releasing the roller bar: 16:58:29.330938 usbus0.6 DONE-INTR-EP=00000081,SPD=FULL,NFR=1,SLEN=16,IVAL=4,ERR=0 frame[0] READ 16 bytes 0000 01 01 00 00 00 00 00 00 41 01 00 00 00 00 00 00 |........A.......| flags 0xa <SHORT_XFER_OK|PIPE_BOF|0> status 0xcb021 <OPEN|STARTED|SHORT_XFER_OK|BDMA_ENABLE|BDMA_SETUP|CAN_CANCEL_IMMED|DOING_CALLBACK|0> 16:58:29.330950 usbus0.6 SUBM-INTR-EP=00000081,SPD=FULL,NFR=1,SLEN=0,IVAL=4 frame[0] READ 64 bytes flags 0xa <SHORT_XFER_OK|PIPE_BOF|0> status 0xeb023 <OPEN|TRANSFERRING|STARTED|SHORT_XFER_OK|BDMA_ENABLE|BDMA_SETUP|CURR_DMA_SET|CAN_CANCEL_IMMED|DOING_CALLBACK|0> 16:58:29.398938 usbus0.6 DONE-INTR-EP=00000081,SPD=FULL,NFR=1,SLEN=16,IVAL=4,ERR=0 frame[0] READ 16 bytes 0000 01 00 00 00 00 00 00 00 41 00 00 00 00 00 00 00 |........A.......| flags 0xa <SHORT_XFER_OK|PIPE_BOF|0> status 0xeb021 <OPEN|STARTED|SHORT_XFER_OK|BDMA_ENABLE|BDMA_SETUP|CURR_DMA_SET|CAN_CANCEL_IMMED|DOING_CALLBACK|0> 16:58:29.398950 usbus0.6 SUBM-INTR-EP=00000081,SPD=FULL,NFR=1,SLEN=0,IVAL=4 frame[0] READ 64 bytes flags 0xa <SHORT_XFER_OK|PIPE_BOF|0> status 0xcb023 <OPEN|TRANSFERRING|STARTED|SHORT_XFER_OK|BDMA_ENABLE|BDMA_SETUP|CAN_CANCEL_IMMED|DOING_CALLBACK|0> 16:58:34.626935 usbus0.6 DONE-INTR-EP=00000081,SPD=FULL,NFR=1,SLEN=16,IVAL=4,ERR=0 frame[0] READ 16 bytes 0000 03 00 00 00 00 00 41 01 00 00 00 00 00 00 00 00 |......A.........| flags 0xa <SHORT_XFER_OK|PIPE_BOF|0> status 0xcb021 <OPEN|STARTED|SHORT_XFER_OK|BDMA_ENABLE|BDMA_SETUP|CAN_CANCEL_IMMED|DOING_CALLBACK|0> 16:58:34.626945 usbus0.6 SUBM-INTR-EP=00000081,SPD=FULL,NFR=1,SLEN=0,IVAL=4 frame[0] READ 64 bytes flags 0xa <SHORT_XFER_OK|PIPE_BOF|0> status 0xeb023 <OPEN|TRANSFERRING|STARTED|SHORT_XFER_OK|BDMA_ENABLE|BDMA_SETUP|CURR_DMA_SET|CAN_CANCEL_IMMED|DOING_CALLBACK|0> 16:58:34.628933 usbus0.6 DONE-INTR-EP=00000081,SPD=FULL,NFR=1,SLEN=16,IVAL=4,ERR=0 frame[0] READ 16 bytes 0000 01 01 00 00 00 00 00 00 41 00 00 00 00 00 00 00 |........A.......| flags 0xa <SHORT_XFER_OK|PIPE_BOF|0> status 0xeb021 <OPEN|STARTED|SHORT_XFER_OK|BDMA_ENABLE|BDMA_SETUP|CURR_DMA_SET|CAN_CANCEL_IMMED|DOING_CALLBACK|0> 16:58:34.628941 usbus0.6 SUBM-INTR-EP=00000081,SPD=FULL,NFR=1,SLEN=0,IVAL=4 frame[0] READ 64 bytes flags 0xa <SHORT_XFER_OK|PIPE_BOF|0> status 0xcb023 <OPEN|TRANSFERRING|STARTED|SHORT_XFER_OK|BDMA_ENABLE|BDMA_SETUP|CAN_CANCEL_IMMED|DOING_CALLBACK|0> 16:58:34.818938 usbus0.6 DONE-INTR-EP=00000081,SPD=FULL,NFR=1,SLEN=16,IVAL=4,ERR=0 frame[0] READ 16 bytes 0000 03 00 00 00 00 00 41 00 00 00 00 00 00 00 00 00 |......A.........| flags 0xa <SHORT_XFER_OK|PIPE_BOF|0> status 0xcb021 <OPEN|STARTED|SHORT_XFER_OK|BDMA_ENABLE|BDMA_SETUP|CAN_CANCEL_IMMED|DOING_CALLBACK|0> 16:58:34.818954 usbus0.6 SUBM-INTR-EP=00000081,SPD=FULL,NFR=1,SLEN=0,IVAL=4 frame[0] READ 64 bytes flags 0xa <SHORT_XFER_OK|PIPE_BOF|0> status 0xeb023 <OPEN|TRANSFERRING|STARTED|SHORT_XFER_OK|BDMA_ENABLE|BDMA_SETUP|CURR_DMA_SET|CAN_CANCEL_IMMED|DOING_CALLBACK|0> 16:58:34.820934 usbus0.6 DONE-INTR-EP=00000081,SPD=FULL,NFR=1,SLEN=16,IVAL=4,ERR=0 frame[0] READ 16 bytes 0000 01 00 00 00 00 00 00 00 41 00 00 00 00 00 00 00 |........A.......| flags 0xa <SHORT_XFER_OK|PIPE_BOF|0> status 0xeb021 <OPEN|STARTED|SHORT_XFER_OK|BDMA_ENABLE|BDMA_SETUP|CURR_DMA_SET|CAN_CANCEL_IMMED|DOING_CALLBACK|0> 16:58:34.820948 usbus0.6 SUBM-INTR-EP=00000081,SPD=FULL,NFR=1,SLEN=0,IVAL=4 frame[0] READ 64 bytes flags 0xa <SHORT_XFER_OK|PIPE_BOF|0> status 0xcb023 <OPEN|TRANSFERRING|STARTED|SHORT_XFER_OK|BDMA_ENABLE|BDMA_SETUP|CAN_CANCEL_IMMED|DOING_CALLBACK|0> You need to get a USB HID descriptor dump, which is verbose. I don't recall right here and now how you do that, but that is likely where the culpit is. Adding wulf@ --HPS It is quite unusual device. I am even not sure if it is relative or absolute mice. Additionally to what Hans asked, it would be nice to collect not only USB HID report descriptors, but a report data too. To do that, add to /boot/loader.conf: hw.usb.usbhid.enable=1 usbhid_load="YES" hidraw_load="YES" Than reboot and run hid-recorder utility from sysutils/hid-tools port against your mice. Both decrypted HID report descriptor (large dump at beginning) and decrypted reaction on mouse movement is interesting. Sorry for late response, I have been traveling without access to this computer. Enabling the suggested loader.conf settings changed the mouse behaviour, becoming even more erratic. Most prominent change was repeated button 3 inputs during all movements of the mouse, but button behaviour changed too. Here is some data, hopefully it includes something useful. dmesg | grep Contour: ugen0.4: <Contour Design Contour Rollermouse Red> at usbus0 uhid1: <Contour Design Contour Rollermouse Red, class 0/0, rev 2.00/0.05, addr 3> on usbus0 ums0: <Contour Rollermouse Red> on usbus0 ugen0.4: <Contour Design Contour Rollermouse Red> at usbus0 usbhid1: <Contour Rollermouse Red> on usbus0 hidraw1: <Contour Design Contour Rollermouse Red Raw HID Device> on hidbus1 usbhid2: <Contour Design Contour Rollermouse Red, class 0/0, rev 2.00/0.05, addr 3> on usbus0 hidraw2: <Contour Design Contour Rollermouse Red Raw HID Device> on hidbus2 hms0: <Contour Design Contour Rollermouse Red> on hidbus1 hkbd0: <Contour Design Contour Rollermouse Red Keyboard> on hidbus1 hcons0: <Contour Design Contour Rollermouse Red Consumer Control> on hidbus1 grep Contour /var/log/Xorg.0.log: [ 464.597] (II) config/udev: Adding input device Contour Design Contour Rollermouse Red Keyboard (/dev/input/event10) [ 464.597] (**) Contour Design Contour Rollermouse Red Keyboard: Applying InputClass "evdev keyboard catchall" [ 464.597] (**) Contour Design Contour Rollermouse Red Keyboard: Applying InputClass "Evdev keyboard" [ 464.597] (**) Contour Design Contour Rollermouse Red Keyboard: Applying InputClass "libinput keyboard catchall" [ 464.597] (**) Contour Design Contour Rollermouse Red Keyboard: Applying InputClass "keyboard-all" [ 464.597] (II) Using input driver 'evdev' for 'Contour Design Contour Rollermouse Red Keyboard' [ 464.597] (**) Contour Design Contour Rollermouse Red Keyboard: always reports core events [ 464.597] (**) evdev: Contour Design Contour Rollermouse Red Keyboard: Device: "/dev/input/event10" [ 464.597] (--) evdev: Contour Design Contour Rollermouse Red Keyboard: Vendor 0xb33 Product 0x1004 [ 464.597] (--) evdev: Contour Design Contour Rollermouse Red Keyboard: Found keys [ 464.597] (II) evdev: Contour Design Contour Rollermouse Red Keyboard: Configuring as keyboard [ 464.597] (II) XINPUT: Adding extended input device "Contour Design Contour Rollermouse Red Keyboard" (type: KEYBOARD, id 8) [ 464.597] (II) config/udev: Adding input device Contour Design Contour Rollermouse Red Consumer Control (/dev/input/event11) [ 464.597] (**) Contour Design Contour Rollermouse Red Consumer Control: Applying InputClass "evdev keyboard catchall" [ 464.597] (**) Contour Design Contour Rollermouse Red Consumer Control: Applying InputClass "Evdev keyboard" [ 464.597] (**) Contour Design Contour Rollermouse Red Consumer Control: Applying InputClass "libinput keyboard catchall" [ 464.597] (**) Contour Design Contour Rollermouse Red Consumer Control: Applying InputClass "keyboard-all" [ 464.597] (II) Using input driver 'evdev' for 'Contour Design Contour Rollermouse Red Consumer Control' [ 464.597] (**) Contour Design Contour Rollermouse Red Consumer Control: always reports core events [ 464.597] (**) evdev: Contour Design Contour Rollermouse Red Consumer Control: Device: "/dev/input/event11" [ 464.597] (--) evdev: Contour Design Contour Rollermouse Red Consumer Control: Vendor 0xb33 Product 0x1004 [ 464.597] (--) evdev: Contour Design Contour Rollermouse Red Consumer Control: Found 1 mouse buttons [ 464.597] (--) evdev: Contour Design Contour Rollermouse Red Consumer Control: Found keys [ 464.597] (II) evdev: Contour Design Contour Rollermouse Red Consumer Control: Forcing relative x/y axes to exist. [ 464.597] (II) evdev: Contour Design Contour Rollermouse Red Consumer Control: Configuring as mouse [ 464.597] (II) evdev: Contour Design Contour Rollermouse Red Consumer Control: Configuring as keyboard [ 464.597] (**) evdev: Contour Design Contour Rollermouse Red Consumer Control: YAxisMapping: buttons 4 and 5 [ 464.597] (**) evdev: Contour Design Contour Rollermouse Red Consumer Control: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200 [ 464.597] (II) XINPUT: Adding extended input device "Contour Design Contour Rollermouse Red Consumer Control" (type: KEYBOARD, id 9) [ 464.598] (II) evdev: Contour Design Contour Rollermouse Red Consumer Control: initialized for relative axes. [ 464.598] (**) Contour Design Contour Rollermouse Red Consumer Control: (accel) keeping acceleration scheme 1 [ 464.598] (**) Contour Design Contour Rollermouse Red Consumer Control: (accel) acceleration profile 0 [ 464.598] (**) Contour Design Contour Rollermouse Red Consumer Control: (accel) acceleration factor: 2.000 [ 464.598] (**) Contour Design Contour Rollermouse Red Consumer Control: (accel) acceleration threshold: 4 [ 464.774] (II) config/udev: Adding input device Contour Design Contour Rollermouse Red (/dev/input/event9) [ 464.774] (**) Contour Design Contour Rollermouse Red: Applying InputClass "evdev pointer catchall" [ 464.774] (**) Contour Design Contour Rollermouse Red: Applying InputClass "libinput pointer catchall" [ 464.774] (II) Using input driver 'libinput' for 'Contour Design Contour Rollermouse Red' [ 464.774] (**) Contour Design Contour Rollermouse Red: always reports core events [ 464.776] (II) event9 - Contour Design Contour Rollermouse Red: is tagged by udev as: Mouse [ 464.777] (II) event9 - Contour Design Contour Rollermouse Red: device is a pointer [ 464.778] (II) event9 - Contour Design Contour Rollermouse Red: device removed [ 464.778] (II) XINPUT: Adding extended input device "Contour Design Contour Rollermouse Red" (type: MOUSE, id 16) [ 464.778] (**) Contour Design Contour Rollermouse Red: (accel) selected scheme none/0 [ 464.778] (**) Contour Design Contour Rollermouse Red: (accel) acceleration factor: 2.000 [ 464.778] (**) Contour Design Contour Rollermouse Red: (accel) acceleration threshold: 4 [ 464.780] (II) event9 - Contour Design Contour Rollermouse Red: is tagged by udev as: Mouse [ 464.781] (II) event9 - Contour Design Contour Rollermouse Red: device is a pointer usbhid-dump -a 0:4 000:004:001:DESCRIPTOR 1669636394.813273 06 00 FF 0A 00 FF A1 01 15 00 26 FF 00 75 08 95 20 19 00 2A FF 00 91 02 19 00 2A FF 00 15 00 26 FF 00 75 08 95 20 81 02 C0 000:004:000:DESCRIPTOR 1669636394.815759 05 01 09 02 A1 01 09 01 A1 01 85 01 05 09 19 01 29 08 15 00 25 01 75 01 95 08 81 02 05 01 09 30 09 31 16 08 80 26 FF 7F 75 10 95 02 81 06 09 38 15 81 25 7F 75 08 95 01 81 06 05 0C 0A 00 FF 81 06 06 00 FF 09 01 75 08 95 08 81 02 C0 C0 05 01 09 06 A1 01 85 02 05 07 19 E0 29 E7 15 00 25 01 75 01 95 08 81 02 06 00 FF 09 02 75 08 95 01 81 02 05 07 19 00 29 7F 15 00 25 7F 75 08 95 05 81 00 C0 05 0C 09 01 A1 01 85 03 05 09 19 09 29 18 15 00 25 01 75 01 95 10 81 02 05 0C 19 00 2A FF 03 15 00 26 FF 03 95 01 75 10 81 00 05 01 1A 81 00 2A 83 00 15 00 25 01 75 01 95 03 81 02 95 05 81 01 06 00 FF 09 02 75 08 95 0A 81 02 85 04 06 00 FF 0A 00 FF 75 08 95 0F B1 02 C0 hid-recorder /dev/hidraw1 # Contour Design Contour Rollermouse Red # 0x05, 0x01, // Usage Page (Generic Desktop) 0 # 0x09, 0x02, // Usage (Mouse) 2 # 0xa1, 0x01, // Collection (Application) 4 # 0x09, 0x01, // Usage (Pointer) 6 # 0xa1, 0x01, // Collection (Application) 8 # 0x85, 0x01, // Report ID (1) 10 # 0x05, 0x09, // Usage Page (Button) 12 # 0x19, 0x01, // Usage Minimum (1) 14 # 0x29, 0x08, // Usage Maximum (8) 16 # 0x15, 0x00, // Logical Minimum (0) 18 # 0x25, 0x01, // Logical Maximum (1) 20 # 0x75, 0x01, // Report Size (1) 22 # 0x95, 0x08, // Report Count (8) 24 # 0x81, 0x02, // Input (Data,Var,Abs) 26 # 0x05, 0x01, // Usage Page (Generic Desktop) 28 # 0x09, 0x30, // Usage (X) 30 # 0x09, 0x31, // Usage (Y) 32 # 0x16, 0x08, 0x80, // Logical Minimum (-32760) 34 # 0x26, 0xff, 0x7f, // Logical Maximum (32767) 37 # 0x75, 0x10, // Report Size (16) 40 # 0x95, 0x02, // Report Count (2) 42 # 0x81, 0x06, // Input (Data,Var,Rel) 44 # 0x09, 0x38, // Usage (Wheel) 46 # 0x15, 0x81, // Logical Minimum (-127) 48 # 0x25, 0x7f, // Logical Maximum (127) 50 # 0x75, 0x08, // Report Size (8) 52 # 0x95, 0x01, // Report Count (1) 54 # 0x81, 0x06, // Input (Data,Var,Rel) 56 # 0x05, 0x0c, // Usage Page (Consumer Devices) 58 # 0x0a, 0x00, 0xff, // Usage (Vendor Usage 0xff00) 60 # 0x81, 0x06, // Input (Data,Var,Rel) 63 # 0x06, 0x00, 0xff, // Usage Page (Vendor Defined Page 1) 65 # 0x09, 0x01, // Usage (Vendor Usage 1) 68 # 0x75, 0x08, // Report Size (8) 70 # 0x95, 0x08, // Report Count (8) 72 # 0x81, 0x02, // Input (Data,Var,Abs) 74 # 0xc0, // End Collection 76 # 0xc0, // End Collection 77 # 0x05, 0x01, // Usage Page (Generic Desktop) 78 # 0x09, 0x06, // Usage (Keyboard) 80 # 0xa1, 0x01, // Collection (Application) 82 # 0x85, 0x02, // Report ID (2) 84 # 0x05, 0x07, // Usage Page (Keyboard) 86 # 0x19, 0xe0, // Usage Minimum (224) 88 # 0x29, 0xe7, // Usage Maximum (231) 90 # 0x15, 0x00, // Logical Minimum (0) 92 # 0x25, 0x01, // Logical Maximum (1) 94 # 0x75, 0x01, // Report Size (1) 96 # 0x95, 0x08, // Report Count (8) 98 # 0x81, 0x02, // Input (Data,Var,Abs) 100 # 0x06, 0x00, 0xff, // Usage Page (Vendor Defined Page 1) 102 # 0x09, 0x02, // Usage (Vendor Usage 2) 105 # 0x75, 0x08, // Report Size (8) 107 # 0x95, 0x01, // Report Count (1) 109 # 0x81, 0x02, // Input (Data,Var,Abs) 111 # 0x05, 0x07, // Usage Page (Keyboard) 113 # 0x19, 0x00, // Usage Minimum (0) 115 # 0x29, 0x7f, // Usage Maximum (127) 117 # 0x15, 0x00, // Logical Minimum (0) 119 # 0x25, 0x7f, // Logical Maximum (127) 121 # 0x75, 0x08, // Report Size (8) 123 # 0x95, 0x05, // Report Count (5) 125 # 0x81, 0x00, // Input (Data,Arr,Abs) 127 # 0xc0, // End Collection 129 # 0x05, 0x0c, // Usage Page (Consumer Devices) 130 # 0x09, 0x01, // Usage (Consumer Control) 132 # 0xa1, 0x01, // Collection (Application) 134 # 0x85, 0x03, // Report ID (3) 136 # 0x05, 0x09, // Usage Page (Button) 138 # 0x19, 0x09, // Usage Minimum (9) 140 # 0x29, 0x18, // Usage Maximum (24) 142 # 0x15, 0x00, // Logical Minimum (0) 144 # 0x25, 0x01, // Logical Maximum (1) 146 # 0x75, 0x01, // Report Size (1) 148 # 0x95, 0x10, // Report Count (16) 150 # 0x81, 0x02, // Input (Data,Var,Abs) 152 # 0x05, 0x0c, // Usage Page (Consumer Devices) 154 # 0x19, 0x00, // Usage Minimum (0) 156 # 0x2a, 0xff, 0x03, // Usage Maximum (1023) 158 # 0x15, 0x00, // Logical Minimum (0) 161 # 0x26, 0xff, 0x03, // Logical Maximum (1023) 163 # 0x95, 0x01, // Report Count (1) 166 # 0x75, 0x10, // Report Size (16) 168 # 0x81, 0x00, // Input (Data,Arr,Abs) 170 # 0x05, 0x01, // Usage Page (Generic Desktop) 172 # 0x1a, 0x81, 0x00, // Usage Minimum (129) 174 # 0x2a, 0x83, 0x00, // Usage Maximum (131) 177 # 0x15, 0x00, // Logical Minimum (0) 180 # 0x25, 0x01, // Logical Maximum (1) 182 # 0x75, 0x01, // Report Size (1) 184 # 0x95, 0x03, // Report Count (3) 186 # 0x81, 0x02, // Input (Data,Var,Abs) 188 # 0x95, 0x05, // Report Count (5) 190 # 0x81, 0x01, // Input (Cnst,Arr,Abs) 192 # 0x06, 0x00, 0xff, // Usage Page (Vendor Defined Page 1) 194 # 0x09, 0x02, // Usage (Vendor Usage 2) 197 # 0x75, 0x08, // Report Size (8) 199 # 0x95, 0x0a, // Report Count (10) 201 # 0x81, 0x02, // Input (Data,Var,Abs) 203 # 0x85, 0x04, // Report ID (4) 205 # 0x06, 0x00, 0xff, // Usage Page (Vendor Defined Page 1) 207 # 0x0a, 0x00, 0xff, // Usage (Vendor Usage 0xff00) 210 # 0x75, 0x08, // Report Size (8) 213 # 0x95, 0x0f, // Report Count (15) 215 # 0xb1, 0x02, // Feature (Data,Var,Abs) 217 # 0xc0, // End Collection 219 # R: 220 05 01 09 02 a1 01 09 01 a1 01 85 01 05 09 19 01 29 08 15 00 25 01 75 01 95 08 81 02 05 01 09 30 09 31 16 08 80 26 ff 7f 75 10 95 02 81 06 09 38 15 81 25 7f 75 08 95 01 81 06 05 0c 0a 00 ff 81 06 06 00 ff 09 01 75 08 95 08 81 02 c0 c0 05 01 09 06 a1 01 85 02 05 07 19 e0 29 e7 15 00 25 01 75 01 95 08 81 02 06 00 ff 09 02 75 08 95 01 81 02 05 07 19 00 29 7f 15 00 25 7f 75 08 95 05 81 00 c0 05 0c 09 01 a1 01 85 03 05 09 19 09 29 18 15 00 25 01 75 01 95 10 81 02 05 0c 19 00 2a ff 03 15 00 26 ff 03 95 01 75 10 81 00 05 01 1a 81 00 2a 83 00 15 00 25 01 75 01 95 03 81 02 95 05 81 01 06 00 ff 09 02 75 08 95 0a 81 02 85 04 06 00 ff 0a 00 ff 75 08 95 0f b1 02 c0 N: Contour Design Contour Rollermouse Red I: 3 0b33 1004 hid-record /dev/hidraw2 # Contour Design Contour Rollermouse Red # 0x06, 0x00, 0xff, // Usage Page (Vendor Defined Page 1) 0 # 0x0a, 0x00, 0xff, // Usage (Vendor Usage 0xff00) 3 # 0xa1, 0x01, // Collection (Application) 6 # 0x15, 0x00, // Logical Minimum (0) 8 # 0x26, 0xff, 0x00, // Logical Maximum (255) 10 # 0x75, 0x08, // Report Size (8) 13 # 0x95, 0x20, // Report Count (32) 15 # 0x19, 0x00, // Usage Minimum (0) 17 # 0x2a, 0xff, 0x00, // Usage Maximum (255) 19 # 0x91, 0x02, // Output (Data,Var,Abs) 22 # 0x19, 0x00, // Usage Minimum (0) 24 # 0x2a, 0xff, 0x00, // Usage Maximum (255) 26 # 0x15, 0x00, // Logical Minimum (0) 29 # 0x26, 0xff, 0x00, // Logical Maximum (255) 31 # 0x75, 0x08, // Report Size (8) 34 # 0x95, 0x20, // Report Count (32) 36 # 0x81, 0x02, // Input (Data,Var,Abs) 38 # 0xc0, // End Collection 40 # R: 41 06 00 ff 0a 00 ff a1 01 15 00 26 ff 00 75 08 95 20 19 00 2a ff 00 91 02 19 00 2a ff 00 15 00 26 ff 00 75 08 95 20 81 02 c0 N: Contour Design Contour Rollermouse Red I: 3 0b33 1004 # Undefined: 0 | Vendor Usage 1: 0 | Vendor Usage 2: 0 | 0xff000003: 0 | 0xff000004: 0 | 0xff000005: 0 | 0xff000006: 0 | 0xff000007: 0 | 0xff000008: 0 | 0xff000009: 0 | 0xff00000a: 0 | 0xff00000b: 0 | 0xff00000c: 0 | 0xff00000d: 0 | 0xff00000e: 0 | 0xff00000f: 0 | 0xff000010: 0 | 0xff000011: 0 | 0xff000012: 0 | 0xff000013: 0 | 0xff000014: 0 | 0xff000015: 0 | 0xff000016: 0 | 0xff000017: 0 | 0xff000018: 0 | 0xff000019: 0 | 0xff00001a: 0 | 0xff00001b: 0 | 0xff00001c: 0 | 0xff00001d: 0 | 0xff00001e: 0 | 0xff00001f: 0 E: 000000.000000 32 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 /dev/hidraw2 registered no inputs, so following are all recorded from /dev/hidraw1: Left: # ReportID: 1 / Button: 1 0 0 0 0 0 0 0 | X: 0 | Y: 0 | Wheel: 0 | 0xcff00: 0 | Vendor Usage 1: 65 , 1 , 0 , 0 , 0 , 0 , 0 , 0 E: 000000.000000 16 01 01 00 00 00 00 00 00 41 01 00 00 00 00 00 00 # ReportID: 1 / Button: 0 0 0 0 0 0 0 0 | X: 0 | Y: 0 | Wheel: 0 | 0xcff00: 0 | Vendor Usage 1: 65 , 0 , 0 , 0 , 0 , 0 , 0 , 0 E: 000000.231984 16 01 00 00 00 00 00 00 00 41 00 00 00 00 00 00 00 Right: # ReportID: 1 / Button: 0 1 0 0 0 0 0 0 | X: 0 | Y: 0 | Wheel: 0 | 0xcff00: 0 | Vendor Usage 1: 65 , 2 , 0 , 0 , 0 , 0 , 0 , 0 E: 000000.000000 16 01 02 00 00 00 00 00 00 41 02 00 00 00 00 00 00 # ReportID: 1 / Button: 0 0 0 0 0 0 0 0 | X: 0 | Y: 0 | Wheel: 0 | 0xcff00: 0 | Vendor Usage 1: 65 , 0 , 0 , 0 , 0 , 0 , 0 , 0 E: 000000.436006 16 01 00 00 00 00 00 00 00 41 00 00 00 00 00 00 00 Middle: # ReportID: 1 / Button: 0 0 1 0 0 0 0 0 | X: 0 | Y: 0 | Wheel: 0 | 0xcff00: 0 | Vendor Usage 1: 65 , 4 , 0 , 0 , 0 , 0 , 0 , 0 E: 000066.604014 16 01 04 00 00 00 00 00 00 41 04 00 00 00 00 00 00 # ReportID: 1 / Button: 0 0 0 0 0 0 0 0 | X: 0 | Y: 0 | Wheel: 0 | 0xcff00: 0 | Vendor Usage 1: 65 , 0 , 0 , 0 , 0 , 0 , 0 , 0 E: 000067.280000 16 01 00 00 00 00 00 00 00 41 00 00 00 00 00 00 00 Roll bar: # ReportID: 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |Consumer Devices ['00'] | System Power Down: 0 | System Sleep: 0 | System Wake Up: 0 | # | Vendor Usage 2: 65 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 E: 000067.454002 16 03 00 00 00 00 00 41 01 00 00 00 00 00 00 00 00 # ReportID: 1 / Button: 1 0 0 0 0 0 0 0 | X: 0 | Y: 0 | Wheel: 0 | 0xcff00: 0 | Vendor Usage 1: 65 , 0 , 0 , 0 , 0 , 0 , 0 , 0 E: 000067.455986 16 01 01 00 00 00 00 00 00 41 00 00 00 00 00 00 00 # ReportID: 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |Consumer Devices ['00'] | System Power Down: 0 | System Sleep: 0 | System Wake Up: 0 | # | Vendor Usage 2: 65 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 E: 000067.985989 16 03 00 00 00 00 00 41 00 00 00 00 00 00 00 00 00 # ReportID: 1 / Button: 0 0 0 0 0 0 0 0 | X: 0 | Y: 0 | Wheel: 0 | 0xcff00: 0 | Vendor Usage 1: 65 , 0 , 0 , 0 , 0 , 0 , 0 , 0 E: 000067.987968 16 01 00 00 00 00 00 00 00 41 00 00 00 00 00 00 00 Double click: # ReportID: 1 / Button: 0 0 0 0 0 0 0 0 | X: 0 | Y: 0 | Wheel: 0 | 0xcff00: 0 | Vendor Usage 1: 65 , -128 , 0 , 0 , 0 , 0 , 0 , 0 E: 000000.000000 16 01 00 00 00 00 00 00 00 41 80 00 00 00 00 00 00 # ReportID: 1 / Button: 1 0 0 0 0 0 0 0 | X: 0 | Y: 0 | Wheel: 0 | 0xcff00: 0 | Vendor Usage 1: 65 , -128 , 0 , 0 , 0 , 0 , 0 , 0 E: 000000.001977 16 01 01 00 00 00 00 00 00 41 80 00 00 00 00 00 00 # ReportID: 1 / Button: 0 0 0 0 0 0 0 0 | X: 0 | Y: 0 | Wheel: 0 | 0xcff00: 0 | Vendor Usage 1: 65 , -128 , 0 , 0 , 0 , 0 , 0 , 0 E: 000000.003950 16 01 00 00 00 00 00 00 00 41 80 00 00 00 00 00 00 # ReportID: 1 / Button: 1 0 0 0 0 0 0 0 | X: 0 | Y: 0 | Wheel: 0 | 0xcff00: 0 | Vendor Usage 1: 65 , -128 , 0 , 0 , 0 , 0 , 0 , 0 E: 000000.005946 16 01 01 00 00 00 00 00 00 41 80 00 00 00 00 00 00 # ReportID: 1 / Button: 0 0 0 0 0 0 0 0 | X: 0 | Y: 0 | Wheel: 0 | 0xcff00: 0 | Vendor Usage 1: 65 , -128 , 0 , 0 , 0 , 0 , 0 , 0 E: 000000.007945 16 01 00 00 00 00 00 00 00 41 80 00 00 00 00 00 00 # ReportID: 1 / Button: 0 0 0 0 0 0 0 0 | X: 0 | Y: 0 | Wheel: 0 | 0xcff00: 0 | Vendor Usage 1: 65 , 0 , 0 , 0 , 0 , 0 , 0 , 0 E: 000000.115963 16 01 00 00 00 00 00 00 00 41 00 00 00 00 00 00 00 Copy: # ReportID: 2 / LeftControl: 1 | LeftShift: 0 | LeftAlt: 0 | Left GUI: 0 | RightControl: 0 | RightShift: 0 | RightAlt: 0 | Right GUI: 0 | Vendor Usage 2: 65 |Keyboard ['c and C', '00', '00', '00', '00'] E: 000159.344037 8 02 01 41 06 00 00 00 00 # ReportID: 1 / Button: 0 0 0 0 0 0 0 0 | X: 0 | Y: 0 | Wheel: 0 | 0xcff00: 0 | Vendor Usage 1: 65 , 32 , 0 , 0 , 0 , 0 , 0 , 0 E: 000159.346030 16 01 00 00 00 00 00 00 00 41 20 00 00 00 00 00 00 # ReportID: 2 / LeftControl: 0 | LeftShift: 0 | LeftAlt: 0 | Left GUI: 0 | RightControl: 0 | RightShift: 0 | RightAlt: 0 | Right GUI: 0 | Vendor Usage 2: 65 |Keyboard ['00', '00', '00', '00', '00'] E: 000159.544015 8 02 00 41 00 00 00 00 00 # ReportID: 1 / Button: 0 0 0 0 0 0 0 0 | X: 0 | Y: 0 | Wheel: 0 | 0xcff00: 0 | Vendor Usage 1: 65 , 0 , 0 , 0 , 0 , 0 , 0 , 0 E: 000160.820033 16 01 00 00 00 00 00 00 00 41 00 00 00 00 00 00 00 Paste: # ReportID: 2 / LeftControl: 1 | LeftShift: 0 | LeftAlt: 0 | Left GUI: 0 | RightControl: 0 | RightShift: 0 | RightAlt: 0 | Right GUI: 0 | Vendor Usage 2: 65 |Keyboard ['v and V', '00', '00', '00', '00'] E: 000168.598039 8 02 01 41 19 00 00 00 00 # ReportID: 1 / Button: 0 0 0 0 0 0 0 0 | X: 0 | Y: 0 | Wheel: 0 | 0xcff00: 0 | Vendor Usage 1: 65 , 64 , 0 , 0 , 0 , 0 , 0 , 0 E: 000168.599985 16 01 00 00 00 00 00 00 00 41 40 00 00 00 00 00 00 # ReportID: 2 / LeftControl: 0 | LeftShift: 0 | LeftAlt: 0 | Left GUI: 0 | RightControl: 0 | RightShift: 0 | RightAlt: 0 | Right GUI: 0 | Vendor Usage 2: 65 |Keyboard ['00', '00', '00', '00', '00'] E: 000168.800021 8 02 00 41 00 00 00 00 00 # ReportID: 1 / Button: 0 0 0 0 0 0 0 0 | X: 0 | Y: 0 | Wheel: 0 | 0xcff00: 0 | Vendor Usage 1: 65 , 0 , 0 , 0 , 0 , 0 , 0 , 0 E: 000169.598007 16 01 00 00 00 00 00 00 00 41 00 00 00 00 00 00 00 And, moving the mouse (very short clip, it was flooding this constantly, only X: and Y: changed depending on the direction cursor was moved to) # ReportID: 1 / Button: 0 0 0 0 0 0 0 0 | X: 1 | Y: 0 | Wheel: 0 | 0xcff00: 0 | Vendor Usage 1: 65 , 0 , 1 , 0 , 0 , 0 , 0 , 0 E: 000005.331956 16 01 00 01 00 00 00 00 00 41 00 01 00 00 00 00 00 # ReportID: 1 / Button: 0 0 0 0 0 0 0 0 | X: 1 | Y: 0 | Wheel: 0 | 0xcff00: 0 | Vendor Usage 1: 65 , 0 , 1 , 0 , 0 , 0 , 0 , 0 E: 000005.337936 16 01 00 01 00 00 00 00 00 41 00 01 00 00 00 00 00 # ReportID: 1 / Button: 0 0 0 0 0 0 0 0 | X: 0 | Y: 1 | Wheel: 0 | 0xcff00: 0 | Vendor Usage 1: 65 , 0 , 0 , 0 , 1 , 0 , 0 , 0 E: 000005.339934 16 01 00 00 00 01 00 00 00 41 00 00 00 01 00 00 00 # ReportID: 1 / Button: 0 0 0 0 0 0 0 0 | X: 1 | Y: 0 | Wheel: 0 | 0xcff00: 0 | Vendor Usage 1: 65 , 0 , 1 , 0 , 0 , 0 , 0 , 0 E: 000005.345925 16 01 00 01 00 00 00 00 00 41 00 01 00 00 00 00 00 # ReportID: 1 / Button: 0 0 0 0 0 0 0 0 | X: 0 | Y: 1 | Wheel: 0 | 0xcff00: 0 | Vendor Usage 1: 65 , 0 , 0 , 0 , 1 , 0 , 0 , 0 E: 000005.347946 16 01 00 00 00 01 00 00 00 41 00 00 00 01 00 00 00 # ReportID: 1 / Button: 0 0 0 0 0 0 0 0 | X: 1 | Y: 0 | Wheel: 0 | 0xcff00: 0 | Vendor Usage 1: 65 , 0 , 1 , 0 , 0 , 0 , 0 , 0 E: 000005.349935 16 01 00 01 00 00 00 00 00 41 00 01 00 00 00 00 00 # ReportID: 1 / Button: 0 0 0 0 0 0 0 0 | X: 1 | Y: 0 | Wheel: 0 | 0xcff00: 0 | Vendor Usage 1: 65 , 0 , 1 , 0 , 0 , 0 , 0 , 0 E: 000005.355935 16 01 00 01 00 00 00 00 00 41 00 01 00 00 00 00 00 # ReportID: 1 / Button: 0 0 0 0 0 0 0 0 | X: 0 | Y: 1 | Wheel: 0 | 0xcff00: 0 | Vendor Usage 1: 65 , 0 , 0 , 0 , 1 , 0 , 0 , 0 E: 000005.357934 16 01 00 00 00 01 00 00 00 41 00 00 00 01 00 00 00 # ReportID: 1 / Button: 0 0 0 0 0 0 0 0 | X: 1 | Y: 0 | Wheel: 0 | 0xcff00: 0 | Vendor Usage 1: 65 , 0 , 1 , 0 , 0 , 0 , 0 , 0 E: 000005.361933 16 01 00 01 00 00 00 00 00 41 00 01 00 00 00 00 00 # ReportID: 1 / Button: 0 0 0 0 0 0 0 0 | X: 1 | Y: 1 | Wheel: 0 | 0xcff00: 0 | Vendor Usage 1: 65 , 0 , 1 , 0 , 1 , 0 , 0 , 0 E: 000005.363925 16 01 00 01 00 01 00 00 00 41 00 01 00 01 00 00 00 Notably, when using "xev -input button | grep button", I saw more erratic button behaviour than with hid-recorder. Multiple buttons being pressed simultaneously, and behaviour changed depending if cursor had been moved before pressing a button or not. On hid-recorder, the above results were consistent. Transport layer looks good. Reports match report descriptor and actions. Let's check kernel driver output. Use evemu-record from devel/evemu to check events sent to userworld through /dev/input/event# device nodes. All Rollermouse nodes should be checked even a keyboard one. And after then libinput should be tested. Run 'libinput debug-events' and see its output. Yes sir! After capturing all requested data, I realised I had disabled the usbhid/hidraw loader.conf options (since they make the machine quite unusable), so I rebooted and did it all over again. Since the data differ from each other, I'm including both sets. First, without the options. # EVEMU 1.3 # Kernel: 13.1-RELEASE-p3 # Input device name: "Contour Rollermouse Red" # Input device ID: bus 0x03 vendor 0xb33 product 0x1004 version 0000 # Supported events: # Event type 0 (EV_SYN) # Event code 0 (SYN_REPORT) # Event code 1 (SYN_CONFIG) # Event code 2 (SYN_MT_REPORT) # Event code 3 (SYN_DROPPED) # Event code 4 ((null)) # Event code 5 ((null)) # Event code 6 ((null)) # Event code 7 ((null)) # Event code 8 ((null)) # Event code 9 ((null)) # Event code 10 ((null)) # Event code 11 ((null)) # Event code 12 ((null)) # Event code 13 ((null)) # Event code 14 ((null)) # Event code 15 (SYN_MAX) # Event type 1 (EV_KEY) # Event code 272 (BTN_LEFT) # Event code 273 (BTN_RIGHT) # Event code 274 (BTN_MIDDLE) # Event code 275 (BTN_SIDE) # Event code 276 (BTN_EXTRA) # Event code 277 (BTN_FORWARD) # Event code 278 (BTN_BACK) # Event code 279 (BTN_TASK) # Event code 280 ((null)) # Event code 281 ((null)) # Event code 282 ((null)) # Event code 283 ((null)) # Event code 284 ((null)) # Event code 285 ((null)) # Event code 286 ((null)) # Event code 287 ((null)) # Event code 288 (BTN_TRIGGER) # Event code 289 (BTN_THUMB) # Event code 290 (BTN_THUMB2) # Event code 291 (BTN_TOP) # Event code 292 (BTN_TOP2) # Event code 293 (BTN_PINKIE) # Event code 294 (BTN_BASE) # Event code 295 (BTN_BASE2) # Event code 296 (BTN_BASE3) # Event code 297 (BTN_BASE4) # Event type 2 (EV_REL) # Event code 0 (REL_X) # Event code 1 (REL_Y) # Event code 8 (REL_WHEEL) # Properties: # Property type 0 (INPUT_PROP_POINTER) N: Contour Rollermouse Red I: 0003 0b33 1004 0000 P: 01 00 00 00 00 00 00 00 B: 00 0b 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 ff ff ff 03 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 02 03 01 00 00 00 00 00 00 B: 03 00 00 00 00 00 00 00 00 B: 04 00 00 00 00 00 00 00 00 B: 05 00 00 00 00 00 00 00 00 B: 11 00 00 00 00 00 00 00 00 B: 12 00 00 00 00 00 00 00 00 B: 14 00 00 00 00 00 00 00 00 B: 15 00 00 00 00 00 00 00 00 B: 15 00 00 00 00 00 00 00 00 ################################ # Waiting for events # ################################ Left: E: 22.620007 0001 0110 0001 # EV_KEY / BTN_LEFT 1 E: 22.620007 0000 0000 0001 # ------------ SYN_REPORT (1) ---------- +15342ms E: 22.739929 0001 0110 0000 # EV_KEY / BTN_LEFT 0 E: 22.739929 0000 0000 0001 # ------------ SYN_REPORT (1) ---------- +119ms Right: E: 30.202002 0001 0110 0001 # EV_KEY / BTN_LEFT 1 E: 30.202002 0001 0111 0001 # EV_KEY / BTN_RIGHT 1 E: 30.202002 0000 0000 0001 # ------------ SYN_REPORT (1) ---------- +7463ms E: 30.418010 0001 0110 0000 # EV_KEY / BTN_LEFT 0 E: 30.418010 0001 0111 0000 # EV_KEY / BTN_RIGHT 0 E: 30.418010 0000 0000 0001 # ------------ SYN_REPORT (1) ---------- +216ms Middle: E: 41.836010 0001 0110 0001 # EV_KEY / BTN_LEFT 1 E: 41.836010 0001 0112 0001 # EV_KEY / BTN_MIDDLE 1 E: 41.836010 0000 0000 0001 # ------------ SYN_REPORT (1) ---------- +11418ms E: 42.228031 0001 0110 0000 # EV_KEY / BTN_LEFT 0 E: 42.228031 0001 0112 0000 # EV_KEY / BTN_MIDDLE 0 E: 42.228031 0000 0000 0001 # ------------ SYN_REPORT (1) ---------- +392ms Double: E: 56.732014 0001 0110 0001 # EV_KEY / BTN_LEFT 1 E: 56.732014 0000 0000 0001 # ------------ SYN_REPORT (1) ---------- +14504ms E: 57.024015 0001 0110 0000 # EV_KEY / BTN_LEFT 0 E: 57.024015 0000 0000 0001 # ------------ SYN_REPORT (1) ---------- +292ms Copy: E: 69.289978 0001 0110 0001 # EV_KEY / BTN_LEFT 1 E: 69.289978 0000 0000 0001 # ------------ SYN_REPORT (1) ---------- +12265ms E: 69.552022 0001 0110 0000 # EV_KEY / BTN_LEFT 0 E: 69.552022 0000 0000 0001 # ------------ SYN_REPORT (1) ---------- +263ms Paste: E: 77.800015 0001 0110 0001 # EV_KEY / BTN_LEFT 1 E: 77.800015 0000 0000 0001 # ------------ SYN_REPORT (1) ---------- +8248ms E: 78.014019 0001 0110 0000 # EV_KEY / BTN_LEFT 0 E: 78.014019 0000 0000 0001 # ------------ SYN_REPORT (1) ---------- +214ms Scroll bar: E: 99.148023 0001 0111 0001 # EV_KEY / BTN_RIGHT 1 E: 99.148023 0000 0000 0001 # ------------ SYN_REPORT (1) ---------- +21134ms E: 99.149893 0001 0110 0001 # EV_KEY / BTN_LEFT 1 E: 99.149893 0001 0111 0000 # EV_KEY / BTN_RIGHT 0 E: 99.149893 0000 0000 0001 # ------------ SYN_REPORT (1) ---------- +1ms E: 99.508024 0001 0110 0000 # EV_KEY / BTN_LEFT 0 E: 99.508024 0001 0111 0001 # EV_KEY / BTN_RIGHT 1 E: 99.508024 0000 0000 0001 # ------------ SYN_REPORT (1) ---------- +359ms E: 99.509882 0001 0111 0000 # EV_KEY / BTN_RIGHT 0 E: 99.509882 0000 0000 0001 # ------------ SYN_REPORT (1) ---------- +1ms Wheel up and down: E: 147.820034 0002 0008 0001 # EV_REL / REL_WHEEL 1 E: 147.820034 0000 0000 0001 # ------------ SYN_REPORT (1) ---------- +48311ms E: 153.555873 0002 0008 -001 # EV_REL / REL_WHEEL -1 E: 153.555873 0000 0000 0001 # ------------ SYN_REPORT (1) ---------- +5735ms Moving mouse: E: 188.843915 0002 0001 -001 # EV_REL / REL_Y -1 E: 188.843915 0000 0000 0001 # ------------ SYN_REPORT (1) ---------- +4ms E: 188.845902 0002 0000 0001 # EV_REL / REL_X 1 E: 188.845902 0000 0000 0001 # ------------ SYN_REPORT (1) ---------- +2ms E: 188.847916 0002 0001 -001 # EV_REL / REL_Y -1 E: 188.847916 0000 0000 0001 # ------------ SYN_REPORT (1) ---------- +2ms E: 188.851846 0002 0000 0001 # EV_REL / REL_X 1 E: 188.851846 0000 0000 0001 # ------------ SYN_REPORT (1) ---------- +4ms E: 188.855839 0002 0000 0001 # EV_REL / REL_X 1 E: 188.855839 0000 0000 0001 # ------------ SYN_REPORT (1) ---------- +4ms E: 188.859852 0002 0000 0001 # EV_REL / REL_X 1 E: 188.859852 0000 0000 0001 # ------------ SYN_REPORT (1) ---------- +4ms E: 188.863837 0002 0000 0001 # EV_REL / REL_X 1 E: 188.863837 0000 0000 0001 # ------------ SYN_REPORT (1) ---------- +4ms E: 188.869851 0002 0000 0001 # EV_REL / REL_X 1 E: 188.869851 0002 0001 -001 # EV_REL / REL_Y -1 E: 188.869851 0000 0000 0001 # ------------ SYN_REPORT (1) ---------- +6ms E: 188.875858 0002 0001 -001 # EV_REL / REL_Y -1 E: 188.875858 0000 0000 0001 # ------------ SYN_REPORT (1) ---------- +6ms E: 188.879855 0002 0000 0001 # EV_REL / REL_X 1 libinput debug-events: (same buttons pressed in same order as previously) -event0 DEVICE_ADDED System mouse seat0 default group1 cap:p left scroll-nat scroll-button -event1 DEVICE_ADDED System keyboard multiplexer seat0 default group2 cap:k -event2 DEVICE_ADDED Control Method Lid Switch seat0 default group3 cap:S -event3 DEVICE_ADDED Sleep Button seat0 default group4 cap:k -event4 DEVICE_ADDED AT keyboard seat0 default group5 cap:k -event5 DEVICE_ADDED SynPS/2 Synaptics TouchPad seat0 default group6 cap:pg size 98x54mm tap(dl off) left scroll-nat scroll-2fg-edge click-buttonareas-clickfinger dwt-on -event6 DEVICE_ADDED Generic PS/2 mouse seat0 default group7 cap:p left scroll-nat scroll-button -event7 DEVICE_ADDED keyboard seat0 default group8 cap:k -event8 DEVICE_ADDED Multi-Media seat0 default group9 cap:k -event9 DEVICE_ADDED Contour Rollermouse Red seat0 default group10 cap:p left scroll-nat scroll-button event9 POINTER_BUTTON +0.000s BTN_LEFT (272) pressed, seat count: 1 event9 POINTER_BUTTON +0.116s BTN_LEFT (272) released, seat count: 0 event9 POINTER_BUTTON +2.208s BTN_LEFT (272) pressed, seat count: 1 event9 POINTER_BUTTON +2.208s BTN_RIGHT (273) pressed, seat count: 1 event9 POINTER_BUTTON +2.344s BTN_LEFT (272) released, seat count: 0 event9 POINTER_BUTTON +2.344s BTN_RIGHT (273) released, seat count: 0 event9 POINTER_BUTTON +9.618s BTN_LEFT (272) pressed, seat count: 1 event9 POINTER_BUTTON +9.618s BTN_MIDDLE (274) pressed, seat count: 1 event9 POINTER_BUTTON +9.914s BTN_LEFT (272) released, seat count: 0 event9 POINTER_BUTTON +9.914s BTN_MIDDLE (274) released, seat count: 0 event9 POINTER_BUTTON +12.368s BTN_LEFT (272) pressed, seat count: 1 event9 POINTER_BUTTON +12.576s BTN_LEFT (272) released, seat count: 0 event9 POINTER_BUTTON +14.498s BTN_LEFT (272) pressed, seat count: 1 event9 POINTER_BUTTON +14.676s BTN_LEFT (272) released, seat count: 0 event9 POINTER_BUTTON +15.674s BTN_LEFT (272) pressed, seat count: 1 event9 POINTER_BUTTON +15.844s BTN_LEFT (272) released, seat count: 0 event9 POINTER_BUTTON +18.056s BTN_RIGHT (273) pressed, seat count: 1 event9 POINTER_BUTTON +18.058s BTN_LEFT (272) pressed, seat count: 1 event9 POINTER_BUTTON +18.058s BTN_RIGHT (273) released, seat count: 0 event9 POINTER_BUTTON +18.252s BTN_LEFT (272) released, seat count: 0 event9 POINTER_BUTTON +18.252s BTN_RIGHT (273) pressed, seat count: 1 event9 POINTER_BUTTON +18.254s BTN_RIGHT (273) released, seat count: 0 event9 POINTER_SCROLL_WHEEL +20.818s vert -15.00/-120.0* horiz 0.00/0.0 (wheel) event9 POINTER_SCROLL_WHEEL +22.164s vert 15.00/120.0* horiz 0.00/0.0 (wheel) and cursor movement: event9 POINTER_MOTION +0.346s 0.00/ 0.93 ( +0.00/ +1.00) event9 POINTER_MOTION +0.368s 0.00/ 0.71 ( +0.00/ +1.00) event9 POINTER_MOTION +0.380s 0.00/ 0.92 ( +0.00/ +1.00) event9 POINTER_MOTION +0.386s 0.00/ 1.00 ( +0.00/ +1.00) event9 POINTER_MOTION +0.396s 0.00/ 1.00 ( +0.00/ +1.00) event9 POINTER_MOTION +0.420s 0.00/ 0.95 ( +0.00/ +1.00) event9 POINTER_MOTION +0.424s 0.00/ 0.95 ( +0.00/ +1.00) event9 POINTER_MOTION +0.428s 1.00/ 0.00 ( +1.00/ +0.00) Then, with the loader.conf options: # EVEMU 1.3 # Kernel: 13.1-RELEASE-p3 # Input device name: "Contour Design Contour Rollermouse Red" # Input device ID: bus 0x03 vendor 0xb33 product 0x1004 version 0x05 # Supported events: # Event type 0 (EV_SYN) # Event code 0 (SYN_REPORT) # Event code 1 (SYN_CONFIG) # Event code 2 (SYN_MT_REPORT) # Event code 3 (SYN_DROPPED) # Event code 4 ((null)) # Event code 5 ((null)) # Event code 6 ((null)) # Event code 7 ((null)) # Event code 8 ((null)) # Event code 9 ((null)) # Event code 10 ((null)) # Event code 11 ((null)) # Event code 12 ((null)) # Event code 13 ((null)) # Event code 14 ((null)) # Event code 15 (SYN_MAX) # Event type 1 (EV_KEY) # Event code 272 (BTN_LEFT) # Event code 273 (BTN_RIGHT) # Event code 274 (BTN_MIDDLE) # Event code 275 (BTN_SIDE) # Event code 276 (BTN_EXTRA) # Event code 277 (BTN_FORWARD) # Event code 278 (BTN_BACK) # Event code 279 (BTN_TASK) # Event type 2 (EV_REL) # Event code 0 (REL_X) # Event code 1 (REL_Y) # Event code 8 (REL_WHEEL) # Properties: # Property type 0 (INPUT_PROP_POINTER) N: Contour Design Contour Rollermouse Red I: 0003 0b33 1004 0005 P: 01 00 00 00 00 00 00 00 B: 00 0b 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 ff 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 02 03 01 00 00 00 00 00 00 B: 03 00 00 00 00 00 00 00 00 B: 04 00 00 00 00 00 00 00 00 B: 05 00 00 00 00 00 00 00 00 B: 11 00 00 00 00 00 00 00 00 B: 12 00 00 00 00 00 00 00 00 B: 14 00 00 00 00 00 00 00 00 B: 15 00 00 00 00 00 00 00 00 B: 15 00 00 00 00 00 00 00 00 ################################ # Waiting for events # ################################ Left: E: 35.682005 0001 0110 0001 # EV_KEY / BTN_LEFT 1 E: 35.682005 0001 0111 0001 # EV_KEY / BTN_RIGHT 1 E: 35.682005 0000 0000 0001 # ------------ SYN_REPORT (1) ---------- +16620ms E: 35.765893 0001 0110 0000 # EV_KEY / BTN_LEFT 0 E: 35.765893 0001 0111 0000 # EV_KEY / BTN_RIGHT 0 E: 35.765893 0000 0000 0001 # ------------ SYN_REPORT (1) ---------- +83ms Right: E: 38.570006 0001 0111 0001 # EV_KEY / BTN_RIGHT 1 E: 38.570006 0000 0000 0001 # ------------ SYN_REPORT (1) ---------- +2805ms E: 38.710001 0001 0111 0000 # EV_KEY / BTN_RIGHT 0 E: 38.710001 0000 0000 0001 # ------------ SYN_REPORT (1) ---------- +140ms Middle: E: 42.319839 0001 0111 0001 # EV_KEY / BTN_RIGHT 1 E: 42.319839 0001 0112 0001 # EV_KEY / BTN_MIDDLE 1 E: 42.319839 0000 0000 0001 # ------------ SYN_REPORT (1) ---------- +3609ms E: 42.652008 0001 0111 0000 # EV_KEY / BTN_RIGHT 0 E: 42.652008 0001 0112 0000 # EV_KEY / BTN_MIDDLE 0 E: 42.652008 0000 0000 0001 # ------------ SYN_REPORT (1) ---------- +333ms Double: E: 46.699982 0001 0111 0001 # EV_KEY / BTN_RIGHT 1 E: 46.699982 0000 0000 0001 # ------------ SYN_REPORT (1) ---------- +4047ms E: 46.701877 0001 0110 0001 # EV_KEY / BTN_LEFT 1 E: 46.701877 0000 0000 0001 # ------------ SYN_REPORT (1) ---------- +2ms E: 46.703835 0001 0110 0000 # EV_KEY / BTN_LEFT 0 E: 46.703835 0000 0000 0001 # ------------ SYN_REPORT (1) ---------- +2ms E: 46.705837 0001 0110 0001 # EV_KEY / BTN_LEFT 1 E: 46.705837 0000 0000 0001 # ------------ SYN_REPORT (1) ---------- +2ms E: 46.707854 0001 0110 0000 # EV_KEY / BTN_LEFT 0 E: 46.707854 0000 0000 0001 # ------------ SYN_REPORT (1) ---------- +2ms E: 46.893969 0001 0111 0000 # EV_KEY / BTN_RIGHT 0 E: 46.893969 0000 0000 0001 # ------------ SYN_REPORT (1) ---------- +186ms Copy: E: 50.171837 0001 0111 0001 # EV_KEY / BTN_RIGHT 1 E: 50.171837 0000 0000 0001 # ------------ SYN_REPORT (1) ---------- +3278ms E: 50.394014 0001 0111 0000 # EV_KEY / BTN_RIGHT 0 E: 50.394014 0000 0000 0001 # ------------ SYN_REPORT (1) ---------- +223ms Paste: E: 53.519877 0001 0111 0001 # EV_KEY / BTN_RIGHT 1 E: 53.519877 0000 0000 0001 # ------------ SYN_REPORT (1) ---------- +3125ms E: 53.734008 0001 0111 0000 # EV_KEY / BTN_RIGHT 0 E: 53.734008 0000 0000 0001 # ------------ SYN_REPORT (1) ---------- +215ms Scroll bar: E: 58.246005 0001 0110 0001 # EV_KEY / BTN_LEFT 1 E: 58.246005 0000 0000 0001 # ------------ SYN_REPORT (1) ---------- +4512ms E: 58.514005 0001 0110 0000 # EV_KEY / BTN_LEFT 0 E: 58.514005 0000 0000 0001 # ------------ SYN_REPORT (1) ---------- +268ms Movement: E: 63.492010 0001 0111 0001 # EV_KEY / BTN_RIGHT 1 E: 63.492010 0000 0000 0001 # ------------ SYN_REPORT (1) ---------- +4978ms E: 63.498005 0002 0000 -001 # EV_REL / REL_X -1 E: 63.498005 0000 0000 0001 # ------------ SYN_REPORT (1) ---------- +6ms E: 63.501964 0002 0001 0001 # EV_REL / REL_Y 1 E: 63.501964 0000 0000 0001 # ------------ SYN_REPORT (1) ---------- +3ms E: 63.503913 0002 0000 -001 # EV_REL / REL_X -1 E: 63.503913 0000 0000 0001 # ------------ SYN_REPORT (1) ---------- +2ms E: 68.072009 0002 0000 -001 # EV_REL / REL_X -1 E: 68.072009 0002 0001 0001 # EV_REL / REL_Y 1 E: 68.072009 0000 0000 0001 # ------------ SYN_REPORT (1) ---------- +4569ms E: 68.074006 0002 0001 0001 # EV_REL / REL_Y 1 E: 68.074006 0001 0111 0000 # EV_KEY / BTN_RIGHT 0 E: 68.074006 0000 0000 0001 # ------------ SYN_REPORT (1) ---------- +2ms E: 68.178009 0002 0001 0001 # EV_REL / REL_Y 1 E: 68.178009 0000 0000 0001 # ------------ SYN_REPORT (1) ---------- +104ms E: 68.186009 0002 0000 -001 # EV_REL / REL_X -1 E: 68.186009 0000 0000 0001 # ------------ SYN_REPORT (1) ---------- +8ms E: 68.192012 0002 0001 0001 # EV_REL / REL_Y 1 Buttons: -event0 DEVICE_ADDED System mouse seat0 default group1 cap:p left scroll-nat scroll-button -event1 DEVICE_ADDED System keyboard multiplexer seat0 default group2 cap:k -event10 DEVICE_ADDED Contour Design Contour Rollermouse Red Keyboard seat0 default group3 cap:k -event11 DEVICE_ADDED Contour Design Contour Rollermouse Red Consumer Control seat0 default group4 cap:k -event2 DEVICE_ADDED Control Method Lid Switch seat0 default group5 cap:S -event3 DEVICE_ADDED Sleep Button seat0 default group6 cap:k -event4 DEVICE_ADDED AT keyboard seat0 default group7 cap:k -event5 DEVICE_ADDED SynPS/2 Synaptics TouchPad seat0 default group8 cap:pg size 98x54mm tap(dl off) left scroll-nat scroll-2fg-edge click-buttonareas-clickfinger dwt-on -event6 DEVICE_ADDED TPPS/2 IBM TrackPoint seat0 default group9 cap:p left scroll-nat scroll-button -event7 DEVICE_ADDED keyboard seat0 default group10 cap:k -event8 DEVICE_ADDED Multi-Media seat0 default group11 cap:k -event9 DEVICE_ADDED Contour Design Contour Rollermouse Red seat0 default group12 cap:p left scroll-nat scroll-button event9 POINTER_BUTTON +0.000s BTN_LEFT (272) pressed, seat count: 1 event9 POINTER_BUTTON +0.132s BTN_LEFT (272) released, seat count: 0 event9 POINTER_BUTTON +0.480s BTN_RIGHT (273) pressed, seat count: 1 event9 POINTER_BUTTON +0.592s BTN_RIGHT (273) released, seat count: 0 event9 POINTER_BUTTON +3.276s BTN_RIGHT (273) pressed, seat count: 1 event9 POINTER_BUTTON +3.276s BTN_MIDDLE (274) pressed, seat count: 1 event9 POINTER_BUTTON +3.568s BTN_RIGHT (273) released, seat count: 0 event9 POINTER_BUTTON +3.568s BTN_MIDDLE (274) released, seat count: 0 event9 POINTER_BUTTON +5.978s BTN_RIGHT (273) pressed, seat count: 1 event9 POINTER_BUTTON +5.980s BTN_LEFT (272) pressed, seat count: 1 event9 POINTER_BUTTON +5.982s BTN_LEFT (272) released, seat count: 0 event9 POINTER_BUTTON +5.984s BTN_LEFT (272) pressed, seat count: 1 event9 POINTER_BUTTON +5.986s BTN_LEFT (272) released, seat count: 0 event9 POINTER_BUTTON +6.086s BTN_RIGHT (273) released, seat count: 0 Movement: -event10 KEYBOARD_KEY +6.662s *** (-1) pressed event10 KEYBOARD_KEY +6.662s *** (-1) pressed -event9 POINTER_BUTTON +6.664s BTN_RIGHT (273) pressed, seat count: 1 event9 POINTER_BUTTON +6.842s BTN_RIGHT (273) released, seat count: 0 -event10 KEYBOARD_KEY +6.864s *** (-1) released event10 KEYBOARD_KEY +6.864s *** (-1) released event10 KEYBOARD_KEY +7.194s *** (-1) pressed event10 KEYBOARD_KEY +7.194s *** (-1) pressed -event9 POINTER_BUTTON +7.196s BTN_RIGHT (273) pressed, seat count: 1 event9 POINTER_BUTTON +7.346s BTN_RIGHT (273) released, seat count: 0 -event10 KEYBOARD_KEY +7.396s *** (-1) released event10 KEYBOARD_KEY +7.396s *** (-1) released -event9 POINTER_BUTTON +9.136s BTN_LEFT (272) pressed, seat count: 1 event9 POINTER_BUTTON +9.308s BTN_LEFT (272) released, seat count: 0 I forgot to mention, since providing previous debug data, I have upgraded the OS from 13.1-RELEASE to 13.1-RELEASE-p3. Former was a fresh install, latter a simple binary upgrade. Created attachment 238462 [details]
hms_conditionalize_kensington_support.patch
Extraneous right mouse button events most probably come from Kensington Slimblade trackball support. Attached patch conditionally disables it for hms(4) driver. Test it with the loader.conf options added.
But it is not clear why keyboard events appeared. Your hid-recorder dump did not contain any keyboard reports. Could you run simultaneously following 3 commands: # hid-recorder /dev/hidraw1 # evemu-record /dev/input/event9 # evemu-record /dev/input/event10 And than produce these keyboard events (with mouse movement?) loader.conf options must be enabled at this time. Created attachment 238464 [details]
hms_conditionalize_kensington_support.patch
I'm delighted to report that your patch together with the loader.conf options have successfully fixed the mouse, and it is now working 100% as expected. Thank you very much!! From the working setup Xorg.0.log: [ 14.642] (II) config/udev: Adding input device Contour Design Contour Rollermouse Red Keyboard (/dev/input/event10) [ 14.642] (**) Contour Design Contour Rollermouse Red Keyboard: Applying InputClass "evdev keyboard catchall" [ 14.642] (**) Contour Design Contour Rollermouse Red Keyboard: Applying InputClass "Evdev keyboard" [ 14.642] (**) Contour Design Contour Rollermouse Red Keyboard: Applying InputClass "libinput keyboard catchall" [ 14.642] (**) Contour Design Contour Rollermouse Red Keyboard: Applying InputClass "keyboard-all" [ 14.642] (II) Using input driver 'evdev' for 'Contour Design Contour Rollermouse Red Keyboard' [ 14.642] (**) Contour Design Contour Rollermouse Red Keyboard: always reports core events [ 14.642] (**) evdev: Contour Design Contour Rollermouse Red Keyboard: Device: "/dev/input/event10" [ 14.642] (--) evdev: Contour Design Contour Rollermouse Red Keyboard: Vendor 0xb33 Product 0x1004 [ 14.642] (--) evdev: Contour Design Contour Rollermouse Red Keyboard: Found keys [ 14.642] (II) evdev: Contour Design Contour Rollermouse Red Keyboard: Configuring as keyboard [ 14.642] (**) Option "config_info" "udev:/dev/input/event10" [ 14.642] (II) XINPUT: Adding extended input device "Contour Design Contour Rollermouse Red Keyboard" (type: KEYBOARD, id 8) [ 14.642] (**) Option "xkb_rules" "evdev" [ 14.642] (**) Option "xkb_layout" "us,fi" [ 14.642] (**) Option "xkb_variant" "hhk" [ 14.642] (**) Option "xkb_options" "grp:rwin_toggle" [ 14.642] (II) config/udev: Adding input device Contour Design Contour Rollermouse Red Consumer Control (/dev/input/event11) [ 14.642] (**) Contour Design Contour Rollermouse Red Consumer Control: Applying InputClass "evdev keyboard catchall" [ 14.642] (**) Contour Design Contour Rollermouse Red Consumer Control: Applying InputClass "Evdev keyboard" [ 14.642] (**) Contour Design Contour Rollermouse Red Consumer Control: Applying InputClass "libinput keyboard catchall" [ 14.642] (**) Contour Design Contour Rollermouse Red Consumer Control: Applying InputClass "keyboard-all" [ 14.642] (II) Using input driver 'evdev' for 'Contour Design Contour Rollermouse Red Consumer Control' [ 14.642] (**) Contour Design Contour Rollermouse Red Consumer Control: always reports core events [ 14.642] (**) evdev: Contour Design Contour Rollermouse Red Consumer Control: Device: "/dev/input/event11" [ 14.642] (--) evdev: Contour Design Contour Rollermouse Red Consumer Control: Vendor 0xb33 Product 0x1004 [ 14.642] (--) evdev: Contour Design Contour Rollermouse Red Consumer Control: Found 1 mouse buttons [ 14.642] (--) evdev: Contour Design Contour Rollermouse Red Consumer Control: Found keys [ 14.642] (II) evdev: Contour Design Contour Rollermouse Red Consumer Control: Forcing relative x/y axes to exist. [ 14.642] (II) evdev: Contour Design Contour Rollermouse Red Consumer Control: Configuring as mouse [ 14.642] (II) evdev: Contour Design Contour Rollermouse Red Consumer Control: Configuring as keyboard [ 14.642] (**) evdev: Contour Design Contour Rollermouse Red Consumer Control: YAxisMapping: buttons 4 and 5 [ 14.642] (**) evdev: Contour Design Contour Rollermouse Red Consumer Control: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200 [ 14.642] (**) Option "config_info" "udev:/dev/input/event11" [ 14.642] (II) XINPUT: Adding extended input device "Contour Design Contour Rollermouse Red Consumer Control" (type: KEYBOARD, id 9) [ 14.642] (**) Option "xkb_rules" "evdev" [ 14.642] (**) Option "xkb_layout" "us,fi" [ 14.642] (**) Option "xkb_variant" "hhk" [ 14.642] (**) Option "xkb_options" "grp:rwin_toggle" [ 14.643] (II) evdev: Contour Design Contour Rollermouse Red Consumer Control: initialized for relative axes. [ 14.643] (**) Contour Design Contour Rollermouse Red Consumer Control: (accel) keeping acceleration scheme 1 [ 14.643] (**) Contour Design Contour Rollermouse Red Consumer Control: (accel) acceleration profile 0 [ 14.643] (**) Contour Design Contour Rollermouse Red Consumer Control: (accel) acceleration factor: 2.000 [ 14.643] (**) Contour Design Contour Rollermouse Red Consumer Control: (accel) acceleration threshold: 4 [....] [ 14.813] (II) config/udev: Adding input device Contour Design Contour Rollermouse Red (/dev/input/event9) [ 14.813] (**) Contour Design Contour Rollermouse Red: Applying InputClass "evdev pointer catchall" [ 14.813] (**) Contour Design Contour Rollermouse Red: Applying InputClass "libinput pointer catchall" [ 14.813] (II) Using input driver 'libinput' for 'Contour Design Contour Rollermouse Red' [ 14.813] (**) Contour Design Contour Rollermouse Red: always reports core events [ 14.813] (**) Option "Device" "/dev/input/event9" [ 14.813] (**) Option "_source" "server/udev" [ 14.815] (II) event9 - Contour Design Contour Rollermouse Red: is tagged by udev as: Mouse [ 14.815] (II) event9 - Contour Design Contour Rollermouse Red: device is a pointer [ 14.817] (II) event9 - Contour Design Contour Rollermouse Red: device removed [ 14.817] (**) Option "config_info" "udev:/dev/input/event9" [ 14.817] (II) XINPUT: Adding extended input device "Contour Design Contour Rollermouse Red" (type: MOUSE, id 16) [ 14.817] (**) Option "AccelerationScheme" "none" [ 14.817] (**) Contour Design Contour Rollermouse Red: (accel) selected scheme none/0 [ 14.817] (**) Contour Design Contour Rollermouse Red: (accel) acceleration factor: 2.000 [ 14.817] (**) Contour Design Contour Rollermouse Red: (accel) acceleration threshold: 4 [ 14.818] (II) event9 - Contour Design Contour Rollermouse Red: is tagged by udev as: Mouse [ 14.819] (II) event9 - Contour Design Contour Rollermouse Red: device is a pointer input/event9 is registering all mouse functionality- pointer movement and mouse buttons. input/event10 registers the copy and paste buttons, which depending on the mode the device is in, either produce Ctrl-C/Ctrl-V (PC mode) or Meta-C/Meta-V (Mac mode) key combinations, or nothing (HID mode). input/event11 registers nothing at all. If system is booted without the loader.conf options, operation degenerates back to the first reported erratic behaviour. I did not capture exhaustive debug data from it, though. Let me know if there's anything else you need. FYI, I'm traveling again tomorrow and will likely be gone until end of next week, then I can get back to this. (In reply to Vladimir Kondratyev from comment #14) This patch also fixes the issue, no observable functional change from the previous. Tested against 13.1-RELEASE-p5. Created attachment 238469 [details]
ums_conditionalize_kensington_support.patch
ums(4) patch (no /boot/loader.conf changes). Requires previous patch.
Test this one too.
(In reply to Vladimir Kondratyev from comment #17) Tested. This fixes mouse operation when usbhid(4) is not loaded, the copy/paste buttons just do nothing. Restoring the loader.conf options restores copy/paste button operation. Everything appears to be working as it should. I also have a Happy Hacking keyboard, which according to dmesg is now handled by usbhid(4) instead of ugen(4) and it's also working correctly. Thank you so much for fixing this! A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/src/commit/?id=ab4f740bc59e3ba2948bcc4e03bd6125b1dae36f commit ab4f740bc59e3ba2948bcc4e03bd6125b1dae36f Author: Vladimir Kondratyev <wulf@FreeBSD.org> AuthorDate: 2022-12-24 09:01:20 +0000 Commit: Vladimir Kondratyev <wulf@FreeBSD.org> CommitDate: 2022-12-24 09:01:20 +0000 ums(4): Disable vendor usage page button support for all devices except Kensington Slimblade Trackball as it brokes some other devices like Contour Rollermouse Red Add a quirk for it as well. Reported by: Atte Peltomäki <koston_AT_iki_DOT_fi> PR: 267922 MFC after: 2 weeks share/man/man4/usb_quirk.4 | 2 ++ sys/dev/usb/input/ums.c | 18 ++++++++++++------ sys/dev/usb/quirk/usb_quirk.c | 3 +++ sys/dev/usb/quirk/usb_quirk.h | 1 + sys/dev/usb/usbdevs | 1 + 5 files changed, 19 insertions(+), 6 deletions(-) A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/src/commit/?id=0661cf74e6e5dbd585c4a5a3e621d915bb6787d3 commit 0661cf74e6e5dbd585c4a5a3e621d915bb6787d3 Author: Vladimir Kondratyev <wulf@FreeBSD.org> AuthorDate: 2022-12-24 09:01:20 +0000 Commit: Vladimir Kondratyev <wulf@FreeBSD.org> CommitDate: 2022-12-24 09:01:20 +0000 hms(4): Disable vendor usage page button support for all devices except Kensington Slimblade Trackball as it brokes some other devices like Contour Rollermouse Red Add a quirk for it as well. Reported by: Atte Peltomäki <koston_AT_iki_DOT_fi> PR: 267922 MFC after: 2 weeks share/man/man4/hidquirk.4 | 2 ++ sys/dev/hid/hidquirk.c | 2 ++ sys/dev/hid/hidquirk.h | 1 + sys/dev/hid/hms.c | 12 ++++++++---- 4 files changed, 13 insertions(+), 4 deletions(-) This issue is fixed in 13.2-REL -> changing status to FIXED. Thanks again! |