@Coiby Xu (coiby) there is not any text like "invalid report id data" in dmesg output. and on fedora 32 kernel 5.8.5 ===================== [ra@bogon ~]$ dmesg | grep MSFT [ 0.004946] ACPI: SSDT 0x00000000CDFF4000 007216 (v02 LENOVO CB-01 00000001 MSFT 04000000) [ 1.534909] i2c_hid i2c-MSFT0001:00: supply vdd not found, using dummy regulator [ 1.534921] i2c_hid i2c-MSFT0001:00: supply vddl not found, using dummy regulator [ 1.679063] input: MSFT0001:00 04F3:3140 Mouse as /devices/platform/AMDI0010:03/i2c-0/i2c-MSFT0001:00/0018:04F3:3140.0001/input/input6 [ 1.679354] input: MSFT0001:00 04F3:3140 Touchpad as /devices/platform/AMDI0010:03/i2c-0/i2c-MSFT0001:00/0018:04F3:3140.0001/input/input7 [ 1.679516] hid-generic 0018:04F3:3140.0001: input,hidraw0: I2C HID v1.00 Mouse [MSFT0001:00 04F3:3140] on i2c-MSFT0001:00 [ 1.744137] input: MSFT0001:00 04F3:3140 Mouse as /devices/platform/AMDI0010:03/i2c-0/i2c-MSFT0001:00/0018:04F3:3140.0001/input/input8 [ 1.744252] input: MSFT0001:00 04F3:3140 Touchpad as /devices/platform/AMDI0010:03/i2c-0/i2c-MSFT0001:00/0018:04F3:3140.0001/input/input9 [ 1.744326] hid-multitouch 0018:04F3:3140.0001: input,hidraw0: I2C HID v1.00 Mouse [MSFT0001:00 04F3:3140] on i2c-MSFT0001:00 [ra@bogon ~]$ ==================== and ==================== [ra@bogon ~]$ sudo hid-recorder Available devices: /dev/hidraw0: MSFT0001:00 04F3:3140 /dev/hidraw1: Microsoft Microsoft® Nano Transceiver v1.0 /dev/hidraw2: Microsoft Microsoft® Nano Transceiver v1.0 /dev/hidraw3: Microsoft Microsoft® Nano Transceiver v1.0 /dev/hidraw4: ITE Tech. Inc. ITE Device(8910) Select the device event number [0-4]: 0 # MSFT0001:00 04F3:3140 # 0x05, 0x01, // Usage Page (Generic Desktop) 0 # 0x09, 0x02, // Usage (Mouse) 2 # 0xa1, 0x01, // Collection (Application) 4 # 0x85, 0x01, // Report ID (1) 6 # 0x09, 0x01, // Usage (Pointer) 8 # 0xa1, 0x00, // Collection (Physical) 10 # 0x05, 0x09, // Usage Page (Button) 12 # 0x19, 0x01, // Usage Minimum (1) 14 # 0x29, 0x02, // Usage Maximum (2) 16 # 0x15, 0x00, // Logical Minimum (0) 18 # 0x25, 0x01, // Logical Maximum (1) 20 # 0x75, 0x01, // Report Size (1) 22 # 0x95, 0x02, // Report Count (2) 24 # 0x81, 0x02, // Input (Data,Var,Abs) 26 # 0x95, 0x06, // Report Count (6) 28 # 0x81, 0x03, // Input (Cnst,Var,Abs) 30 # 0x05, 0x01, // Usage Page (Generic Desktop) 32 # 0x09, 0x30, // Usage (X) 34 # 0x09, 0x31, // Usage (Y) 36 # 0x09, 0x38, // Usage (Wheel) 38 # 0x15, 0x81, // Logical Minimum (-127) 40 # 0x25, 0x7f, // Logical Maximum (127) 42 # 0x75, 0x08, // Report Size (8) 44 # 0x95, 0x03, // Report Count (3) 46 # 0x81, 0x06, // Input (Data,Var,Rel) 48 # 0x05, 0x0c, // Usage Page (Consumer Devices) 50 # 0x0a, 0x38, 0x02, // Usage (AC Pan) 52 # 0x95, 0x01, // Report Count (1) 55 # 0x81, 0x06, // Input (Data,Var,Rel) 57 # 0x75, 0x08, // Report Size (8) 59 # 0x95, 0x03, // Report Count (3) 61 # 0x81, 0x03, // Input (Cnst,Var,Abs) 63 # 0xc0, // End Collection 65 # 0x06, 0x00, 0xff, // Usage Page (Vendor Defined Page 1) 66 # 0x85, 0x0d, // Report ID (13) 69 # 0x09, 0xc5, // Usage (Vendor Usage 0xc5) 71 # 0x15, 0x00, // Logical Minimum (0) 73 # 0x26, 0xff, 0x00, // Logical Maximum (255) 75 # 0x75, 0x08, // Report Size (8) 78 # 0x95, 0x04, // Report Count (4) 80 # 0xb1, 0x02, // Feature (Data,Var,Abs) 82 # 0x85, 0x0c, // Report ID (12) 84 # 0x09, 0xc6, // Usage (Vendor Usage 0xc6) 86 # 0x96, 0x10, 0x04, // Report Count (1040) 88 # 0x75, 0x08, // Report Size (8) 91 # 0xb1, 0x02, // Feature (Data,Var,Abs) 93 # 0x85, 0x0b, // Report ID (11) 95 # 0x09, 0xc7, // Usage (Vendor Usage 0xc7) 97 # 0x95, 0x42, // Report Count (66) 99 # 0x75, 0x08, // Report Size (8) 101 # 0xb1, 0x02, // Feature (Data,Var,Abs) 103 # 0x09, 0x01, // Usage (Vendor Usage 1) 105 # 0x85, 0x5d, // Report ID (93) 107 # 0x95, 0x1f, // Report Count (31) 109 # 0x75, 0x08, // Report Size (8) 111 # 0x81, 0x06, // Input (Data,Var,Rel) 113 # 0xc0, // End Collection 115 # 0x05, 0x0d, // Usage Page (Digitizers) 116 # 0x09, 0x05, // Usage (Touch Pad) 118 # 0xa1, 0x01, // Collection (Application) 120 # 0x85, 0x04, // Report ID (4) 122 # 0x09, 0x22, // Usage (Finger) 124 # 0xa1, 0x02, // Collection (Logical) 126 # 0x15, 0x00, // Logical Minimum (0) 128 # 0x25, 0x01, // Logical Maximum (1) 130 # 0x09, 0x47, // Usage (Confidence) 132 # 0x09, 0x42, // Usage (Tip Switch) 134 # 0x95, 0x02, // Report Count (2) 136 # 0x75, 0x01, // Report Size (1) 138 # 0x81, 0x02, // Input (Data,Var,Abs) 140 # 0x75, 0x01, // Report Size (1) 142 # 0x95, 0x02, // Report Count (2) 144 # 0x81, 0x03, // Input (Cnst,Var,Abs) 146 # 0x95, 0x01, // Report Count (1) 148 # 0x75, 0x04, // Report Size (4) 150 # 0x25, 0x0f, // Logical Maximum (15) 152 # 0x09, 0x51, // Usage (Contact Id) 154 # 0x81, 0x02, // Input (Data,Var,Abs) 156 # 0x05, 0x01, // Usage Page (Generic Desktop) 158 # 0x15, 0x00, // Logical Minimum (0) 160 # 0x26, 0x89, 0x0c, // Logical Maximum (3209) 162 # 0x75, 0x10, // Report Size (16) 165 # 0x55, 0x0e, // Unit Exponent (-2) 167 # 0x65, 0x13, // Unit (Inch,EngLinear) 169 # 0x09, 0x30, // Usage (X) 171 # 0x35, 0x00, // Physical Minimum (0) 173 # 0x46, 0x91, 0x01, // Physical Maximum (401) 175 # 0x95, 0x01, // Report Count (1) 178 # 0x81, 0x02, // Input (Data,Var,Abs) 180 # 0x46, 0x06, 0x01, // Physical Maximum (262) 182 # 0x26, 0x31, 0x08, // Logical Maximum (2097) 185 # 0x26, 0x31, 0x08, // Logical Maximum (2097) 188 # 0x09, 0x31, // Usage (Y) 191 # 0x81, 0x02, // Input (Data,Var,Abs) 193 # 0x05, 0x0d, // Usage Page (Digitizers) 195 # 0x15, 0x00, // Logical Minimum (0) 197 # 0x25, 0x64, // Logical Maximum (100) 199 # 0x95, 0x03, // Report Count (3) 201 # 0xc0, // End Collection 203 # 0x55, 0x0c, // Unit Exponent (-4) 204 # 0x66, 0x01, 0x10, // Unit (Seconds,SILinear) 206 # 0x47, 0xff, 0xff, 0x00, 0x00, // Physical Maximum (65535) 209 # 0x27, 0xff, 0xff, 0x00, 0x00, // Logical Maximum (65535) 214 # 0x75, 0x10, // Report Size (16) 219 # 0x95, 0x01, // Report Count (1) 221 # 0x09, 0x56, // Usage (Scan Time) 223 # 0x81, 0x02, // Input (Data,Var,Abs) 225 # 0x09, 0x54, // Usage (Contact Count) 227 # 0x25, 0x7f, // Logical Maximum (127) 229 # 0x95, 0x01, // Report Count (1) 231 # 0x75, 0x08, // Report Size (8) 233 # 0x81, 0x02, // Input (Data,Var,Abs) 235 # 0x05, 0x09, // Usage Page (Button) 237 # 0x09, 0x01, // Usage (Vendor Usage 0x01) 239 # 0x25, 0x01, // Logical Maximum (1) 241 # 0x75, 0x01, // Report Size (1) 243 # 0x95, 0x01, // Report Count (1) 245 # 0x81, 0x02, // Input (Data,Var,Abs) 247 # 0x95, 0x07, // Report Count (7) 249 # 0x81, 0x03, // Input (Cnst,Var,Abs) 251 # 0x09, 0xc5, // Usage (Vendor Usage 0xc5) 253 # 0x75, 0x08, // Report Size (8) 255 # 0x95, 0x02, // Report Count (2) 257 # 0x81, 0x03, // Input (Cnst,Var,Abs) 259 # 0x05, 0x0d, // Usage Page (Digitizers) 261 # 0x85, 0x02, // Report ID (2) 263 # 0x09, 0x55, // Usage (Contact Max) 265 # 0x09, 0x59, // Usage (Button Type) 267 # 0x75, 0x04, // Report Size (4) 269 # 0x95, 0x02, // Report Count (2) 271 # 0x25, 0x0f, // Logical Maximum (15) 273 # 0xb1, 0x02, // Feature (Data,Var,Abs) 275 # 0x85, 0x07, // Report ID (7) 277 # 0x09, 0x60, // Usage (Vendor Usage 0x60) 279 # 0x75, 0x01, // Report Size (1) 281 # 0x95, 0x01, // Report Count (1) 283 # 0x15, 0x00, // Logical Minimum (0) 285 # 0x25, 0x01, // Logical Maximum (1) 287 # 0xb1, 0x02, // Feature (Data,Var,Abs) 289 # 0x95, 0x0f, // Report Count (15) 291 # 0xb1, 0x03, // Feature (Cnst,Var,Abs) 293 # 0x06, 0x00, 0xff, // Usage Page (Vendor Defined Page 1) 295 # 0x06, 0x00, 0xff, // Usage Page (Vendor Defined Page 1) 298 # 0x85, 0x06, // Report ID (6) 301 # 0x09, 0xc5, // Usage (Vendor Usage 0xc5) 303 # 0x15, 0x00, // Logical Minimum (0) 305 # 0x26, 0xff, 0x00, // Logical Maximum (255) 307 # 0x75, 0x08, // Report Size (8) 310 # 0x96, 0x00, 0x01, // Report Count (256) 312 # 0xb1, 0x02, // Feature (Data,Var,Abs) 315 # 0xc0, // End Collection 317 # 0x05, 0x0d, // Usage Page (Digitizers) 318 # 0x09, 0x0e, // Usage (Device Configuration) 320 # 0xa1, 0x01, // Collection (Application) 322 # 0x85, 0x03, // Report ID (3) 324 # 0x09, 0x22, // Usage (Finger) 326 # 0xa1, 0x00, // Collection (Physical) 328 # 0x09, 0x52, // Usage (Inputmode) 330 # 0x15, 0x00, // Logical Minimum (0) 332 # 0x25, 0x0a, // Logical Maximum (10) 334 # 0x75, 0x08, // Report Size (8) 336 # 0x95, 0x02, // Report Count (2) 338 # 0xb1, 0x02, // Feature (Data,Var,Abs) 340 # 0xc0, // End Collection 342 # 0x09, 0x22, // Usage (Finger) 343 # 0xa1, 0x00, // Collection (Physical) 345 # 0x85, 0x05, // Report ID (5) 347 # 0x09, 0x57, // Usage (Surface Switch) 349 # 0x09, 0x58, // Usage (Button Switch) 351 # 0x15, 0x00, // Logical Minimum (0) 353 # 0x75, 0x01, // Report Size (1) 355 # 0x95, 0x02, // Report Count (2) 357 # 0x25, 0x03, // Logical Maximum (3) 359 # 0xb1, 0x02, // Feature (Data,Var,Abs) 361 # 0x95, 0x0e, // Report Count (14) 363 # 0xb1, 0x03, // Feature (Cnst,Var,Abs) 365 # 0xc0, // End Collection 367 # 0xc0, // End Collection 368 # R: 369 05 01 09 02 a1 01 85 01 09 01 a1 00 05 09 19 01 29 02 15 00 25 01 75 01 95 02 81 02 95 06 81 03 05 01 09 30 09 31 09 38 15 81 25 7f 75 08 95 03 81 06 05 0c 0a 38 02 95 01 81 06 75 08 95 03 81 03 c0 06 00 ff 85 0d 09 c5 15 00 26 ff 00 75 08 95 04 b1 02 85 0c 09 c6 96 10 04 75 08 b1 02 85 0b 09 c7 95 42 75 08 b1 02 09 01 85 5d 95 1f 75 08 81 06 c0 05 0d 09 05 a1 01 85 04 09 22 a1 02 15 00 25 01 09 47 09 42 95 02 75 01 81 02 75 01 95 02 81 03 95 01 75 04 25 0f 09 51 81 02 05 01 15 00 26 89 0c 75 10 55 0e 65 13 09 30 35 00 46 91 01 95 01 81 02 46 06 01 26 31 08 26 31 08 09 31 81 02 05 0d 15 00 25 64 95 03 c0 55 0c 66 01 10 47 ff ff 00 00 27 ff ff 00 00 75 10 95 01 09 56 81 02 09 54 25 7f 95 01 75 08 81 02 05 09 09 01 25 01 75 01 95 01 81 02 95 07 81 03 09 c5 75 08 95 02 81 03 05 0d 85 02 09 55 09 59 75 04 95 02 25 0f b1 02 85 07 09 60 75 01 95 01 15 00 25 01 b1 02 95 0f b1 03 06 00 ff 06 00 ff 85 06 09 c5 15 00 26 ff 00 75 08 96 00 01 b1 02 c0 05 0d 09 0e a1 01 85 03 09 22 a1 00 09 52 15 00 25 0a 75 08 95 02 b1 02 c0 09 22 a1 00 85 05 09 57 09 58 15 00 75 01 95 02 25 03 b1 02 95 0e b1 03 c0 c0 N: MSFT0001:00 04F3:3140 I: 18 04f3 3140 ^C[ra@bogon ~]$