0

I'd like to understand what I'm missing between HID events and libinput. I have a device that is sending correct mouse events, recorded from hid-recorder:

e.g. For a left-click:

# ReportID: 11 / Button: 1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 | X:     0 | Y:     0 | Wheel:    0 | AC Pan:    0 
E: 000000.000000 8 0b 01 00 00 00 00 00 00
# ReportID: 11 / Button: 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 | X:     0 | Y:     0 | Wheel:    0 | AC Pan:    0 
E: 000000.074781 8 0b 00 00 00 00 00 00 00

The relevant part of the SDP record is:

# 0x05, 0x01,                    // Usage Page (Generic Desktop)        456
# 0x09, 0x02,                    // Usage (Mouse)                       458
# 0xa1, 0x01,                    // Collection (Application)            460
# 0x85, 0x0b,                    //  Report ID (11)                     462
# 0x09, 0x01,                    //  Usage (Pointer)                    464
# 0xa1, 0x00,                    //  Collection (Physical)              466
# 0x95, 0x10,                    //   Report Count (16)                 468
# 0x75, 0x01,                    //   Report Size (1)                   470
# 0x15, 0x00,                    //   Logical Minimum (0)               472
# 0x25, 0x01,                    //   Logical Maximum (1)               474
# 0x05, 0x09,                    //   Usage Page (Button)               476
# 0x19, 0x01,                    //   Usage Minimum (1)                 478
# 0x29, 0x10,                    //   Usage Maximum (16)                480
# 0x81, 0x02,                    //   Input (Data,Var,Abs)              482
# 0x05, 0x01,                    //   Usage Page (Generic Desktop)      484
# 0x16, 0x01, 0xf8,              //   Logical Minimum (-2047)           486
# 0x26, 0xff, 0x07,              //   Logical Maximum (2047)            489
# 0x75, 0x0c,                    //   Report Size (12)                  492
# 0x95, 0x02,                    //   Report Count (2)                  494
# 0x09, 0x30,                    //   Usage (X)                         496
# 0x09, 0x31,                    //   Usage (Y)                         498
# 0x81, 0x06,                    //   Input (Data,Var,Rel)              500
# 0x15, 0x81,                    //   Logical Minimum (-127)            502
# 0x25, 0x7f,                    //   Logical Maximum (127)             504
# 0x75, 0x08,                    //   Report Size (8)                   506
# 0x95, 0x01,                    //   Report Count (1)                  508
# 0x09, 0x38,                    //   Usage (Wheel)                     510
# 0x81, 0x06,                    //   Input (Data,Var,Rel)              512
# 0x95, 0x01,                    //   Report Count (1)                  514
# 0x05, 0x0c,                    //   Usage Page (Consumer Devices)     516
# 0x0a, 0x38, 0x02,              //   Usage (AC Pan)                    518
# 0x81, 0x06,                    //   Input (Data,Var,Rel)              521
# 0xc0,                          //  End Collection                     523
# 0xc0,                          // End Collection                      524

This is a complex Bluetooth device (specifically, a Raspberry Pi that proxies events from several input devices: https://github.com/ruundii/bthidhub).

There are 2 mice connected to the RPi being proxied through (each have their own report IDs in the SDP). On an Ubuntu laptop only the first mouse inputs are working when connected to the RPi, but on a Macbook only the second mouse (with events described above) are working.

I can see the events above are arriving with hid-recorder, but there are no events in libinput debug-events. So, is there maybe a limitation that only 1 pointer report ID can be used (i.e. Linux uses the first pointer in the SDP, while Mac uses the last)? Is there a way to work around such a limitation? My idea here is to basically append the SDP record sections together from multiple input devices on the RPi, and then just translate the report ID from those devices in order to proxy multiple input devices through the RPi.

0

0

You must log in to answer this question.

Browse other questions tagged .