Hi all, I've got this touchpad: https://www.amazon.com/Wireless-VOGEK-Rechargeable-Multi-Touch-Navigation/dp/B07NMTV9S8/ It's not recognized as a touchpad but as four /dev/input/event* devices, one being a mouse, one a keyboard and two being keys. This means that I can basically use it but multi-touch gestures won't work and I have found no way to emulate a middle-click. Additionally, mouse and touchpad share the same (GNOME) settings although I'd rather use different settings for mouse & touchpad. I've tested the device on a Windows 10 computer of a colleague, and there it seemed to work fine out-of-the-box without special driver (just USB HID) and supported multi-touch gestures like 3-finger swipes to switch between applications. However, also there it seems to be recognized equally as in linux, i.e., the touchpad settings are not enabled but the mouse settings have take effect for the device. This is what dmesg has to say: --8<---------------cut here---------------start------------->8--- [ 6202.107555] usb 2-11: new full-speed USB device number 11 using xhci_hcd [ 6202.250296] usb 2-11: New USB device found, idVendor=1357, idProduct=1000, bcdDevice= 1.00 [ 6202.250300] usb 2-11: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [ 6202.250303] usb 2-11: Product: Smart Control [ 6202.250306] usb 2-11: Manufacturer: HL 0000 00 00 00 01 [ 6202.253563] input: HL 0000 00 00 00 01 Smart Control as /devices/pci0000:00/0000:00:14.0/usb2/2-11/2-11:1.0/0003:1357:1000.001C/input/input63 [ 6202.308083] hid-generic 0003:1357:1000.001C: input,hidraw8: USB HID v1.01 Keyboard [HL 0000 00 00 00 01 Smart Control] on usb-0000:00:14.0-11/input0 [ 6202.310380] input: HL 0000 00 00 00 01 Smart Control as /devices/pci0000:00/0000:00:14.0/usb2/2-11/2-11:1.1/0003:1357:1000.001D/input/input64 [ 6202.310646] hid-generic 0003:1357:1000.001D: input,hidraw9: USB HID v1.01 Mouse [HL 0000 00 00 00 01 Smart Control] on usb-0000:00:14.0-11/input1 [ 6202.312485] input: HL 0000 00 00 00 01 Smart Control Consumer Control as /devices/pci0000:00/0000:00:14.0/usb2/2-11/2-11:1.2/0003:1357:1000.001E/input/input65 [ 6202.367911] input: HL 0000 00 00 00 01 Smart Control System Control as /devices/pci0000:00/0000:00:14.0/usb2/2-11/2-11:1.2/0003:1357:1000.001E/input/input66 [ 6202.368279] hid-generic 0003:1357:1000.001E: input,hidraw10: USB HID v1.01 Device [HL 0000 00 00 00 01 Smart Control] on usb-0000:00:14.0-11/input2 --8<---------------cut here---------------end--------------->8--- This is what "sudo hid-recorder /dev/hidraw{8,9,10}" outputs:
D: 0 # HL 0000 00 00 00 01 Smart Control # 0x05, 0x01, // Usage Page (Generic Desktop) 0 # 0x09, 0x06, // Usage (Keyboard) 2 # 0xa1, 0x01, // Collection (Application) 4 # 0x05, 0x07, // Usage Page (Keyboard) 6 # 0x19, 0xe0, // Usage Minimum (224) 8 # 0x29, 0xe7, // Usage Maximum (231) 10 # 0x15, 0x00, // Logical Minimum (0) 12 # 0x25, 0x01, // Logical Maximum (1) 14 # 0x75, 0x01, // Report Size (1) 16 # 0x95, 0x08, // Report Count (8) 18 # 0x81, 0x02, // Input (Data,Var,Abs) 20 # 0x95, 0x01, // Report Count (1) 22 # 0x75, 0x08, // Report Size (8) 24 # 0x81, 0x01, // Input (Cnst,Arr,Abs) 26 # 0x95, 0x05, // Report Count (5) 28 # 0x75, 0x01, // Report Size (1) 30 # 0x05, 0x08, // Usage Page (LEDs) 32 # 0x19, 0x01, // Usage Minimum (1) 34 # 0x29, 0x05, // Usage Maximum (5) 36 # 0x91, 0x02, // Output (Data,Var,Abs) 38 # 0x95, 0x01, // Report Count (1) 40 # 0x75, 0x03, // Report Size (3) 42 # 0x91, 0x01, // Output (Cnst,Arr,Abs) 44 # 0x95, 0x06, // Report Count (6) 46 # 0x75, 0x08, // Report Size (8) 48 # 0x15, 0x00, // Logical Minimum (0) 50 # 0x26, 0xff, 0x00, // Logical Maximum (255) 52 # 0x05, 0x07, // Usage Page (Keyboard) 55 # 0x19, 0x00, // Usage Minimum (0) 57 # 0x2a, 0xff, 0x00, // Usage Maximum (255) 59 # 0x81, 0x00, // Input (Data,Arr,Abs) 62 # 0xc0, // End Collection 64 # R: 65 05 01 09 06 a1 01 05 07 19 e0 29 e7 15 00 25 01 75 01 95 08 81 02 95 01 75 08 81 01 95 05 75 01 05 08 19 01 29 05 91 02 95 01 75 03 91 01 95 06 75 08 15 00 26 ff 00 05 07 19 00 2a ff 00 81 00 c0 N: HL 0000 00 00 00 01 Smart Control I: 3 1357 1000 D: 1 # HL 0000 00 00 00 01 Smart Control # 0x05, 0x01, // Usage Page (Generic Desktop) 0 # 0x09, 0x02, // Usage (Mouse) 2 # 0xa1, 0x01, // Collection (Application) 4 # 0x09, 0x01, // Usage (Pointer) 6 # 0xa1, 0x00, // Collection (Physical) 8 # 0x05, 0x09, // Usage Page (Button) 10 # 0x19, 0x01, // Usage Minimum (1) 12 # 0x29, 0x05, // Usage Maximum (5) 14 # 0x15, 0x00, // Logical Minimum (0) 16 # 0x25, 0x01, // Logical Maximum (1) 18 # 0x75, 0x01, // Report Size (1) 20 # 0x95, 0x05, // Report Count (5) 22 # 0x81, 0x02, // Input (Data,Var,Abs) 24 # 0x75, 0x03, // Report Size (3) 26 # 0x95, 0x01, // Report Count (1) 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 # 0x15, 0x81, // Logical Minimum (-127) 38 # 0x25, 0x7f, // Logical Maximum (127) 40 # 0x75, 0x08, // Report Size (8) 42 # 0x95, 0x02, // Report Count (2) 44 # 0x81, 0x06, // Input (Data,Var,Rel) 46 # 0xa1, 0x02, // Collection (Logical) 48 # 0x09, 0x48, // Usage (Resolution Multiplier) 50 # 0x15, 0x00, // Logical Minimum (0) 52 # 0x25, 0x01, // Logical Maximum (1) 54 # 0x35, 0x01, // Physical Minimum (1) 56 # 0x45, 0x04, // Physical Maximum (4) 58 # 0x75, 0x02, // Report Size (2) 60 # 0x95, 0x01, // Report Count (1) 62 # 0xa4, // Push 64 # 0xb1, 0x02, // Feature (Data,Var,Abs) 65 # 0x09, 0x38, // Usage (Wheel) 67 # 0x15, 0x81, // Logical Minimum (-127) 69 # 0x25, 0x7f, // Logical Maximum (127) 71 # 0x35, 0x00, // Physical Minimum (0) 73 # 0x45, 0x00, // Physical Maximum (0) 75 # 0x75, 0x08, // Report Size (8) 77 # 0x81, 0x06, // Input (Data,Var,Rel) 79 # 0xc0, // End Collection 81 # 0xa1, 0x02, // Collection (Logical) 82 # 0x09, 0x48, // Usage (Resolution Multiplier) 84 # 0xb4, // Pop 86 # 0xb1, 0x02, // Feature (Data,Var,Abs) 87 # 0x35, 0x00, // Physical Minimum (0) 89 # 0x45, 0x00, // Physical Maximum (0) 91 # 0x75, 0x04, // Report Size (4) 93 # 0xb1, 0x03, // Feature (Cnst,Var,Abs) 95 # 0x05, 0x0c, // Usage Page (Consumer Devices) 97 # 0x0a, 0x38, 0x02, // Usage (AC Pan) 99 # 0x15, 0x81, // Logical Minimum (-127) 102 # 0x25, 0x7f, // Logical Maximum (127) 104 # 0x75, 0x08, // Report Size (8) 106 # 0x81, 0x06, // Input (Data,Var,Rel) 108 # 0xc0, // End Collection 110 # 0xc0, // End Collection 111 # 0xc0, // End Collection 112 # R: 113 05 01 09 02 a1 01 09 01 a1 00 05 09 19 01 29 05 15 00 25 01 75 01 95 05 81 02 75 03 95 01 81 03 05 01 09 30 09 31 15 81 25 7f 75 08 95 02 81 06 a1 02 09 48 15 00 25 01 35 01 45 04 75 02 95 01 a4 b1 02 09 38 15 81 25 7f 35 00 45 00 75 08 81 06 c0 a1 02 09 48 b4 b1 02 35 00 45 00 75 04 b1 03 05 0c 0a 38 02 15 81 25 7f 75 08 81 06 c0 c0 c0 N: HL 0000 00 00 00 01 Smart Control I: 3 1357 1000 D: 2 # HL 0000 00 00 00 01 Smart Control # 0x05, 0x0c, // Usage Page (Consumer Devices) 0 # 0x09, 0x01, // Usage (Consumer Control) 2 # 0xa1, 0x01, // Collection (Application) 4 # 0x85, 0x01, // Report ID (1) 6 # 0x75, 0x10, // Report Size (16) 8 # 0x95, 0x01, // Report Count (1) 10 # 0x16, 0x00, 0x00, // Logical Minimum (0) 12 # 0x26, 0x9c, 0x02, // Logical Maximum (668) 15 # 0x1a, 0x00, 0x00, // Usage Minimum (0) 18 # 0x2a, 0x9c, 0x02, // Usage Maximum (668) 21 # 0x81, 0x00, // Input (Data,Arr,Abs) 24 # 0xc0, // End Collection 26 # 0x05, 0x01, // Usage Page (Generic Desktop) 27 # 0x09, 0x80, // Usage (System Control) 29 # 0xa1, 0x01, // Collection (Application) 31 # 0x85, 0x02, // Report ID (2) 33 # 0x75, 0x01, // Report Size (1) 35 # 0x95, 0x08, // Report Count (8) 37 # 0x15, 0x00, // Logical Minimum (0) 39 # 0x25, 0x01, // Logical Maximum (1) 41 # 0x09, 0x81, // Usage (System Power Down) 43 # 0x09, 0x82, // Usage (System Sleep) 45 # 0x09, 0x83, // Usage (System Wake Up) 47 # 0x09, 0x84, // Usage (System Context Menu) 49 # 0x09, 0x85, // Usage (System Main Menu) 51 # 0x09, 0x86, // Usage (System App Menu) 53 # 0x09, 0x87, // Usage (System Help Menu) 55 # 0x09, 0x88, // Usage (System Menu Exit) 57 # 0x81, 0x02, // Input (Data,Var,Abs) 59 # 0x75, 0x01, // Report Size (1) 61 # 0x95, 0x08, // Report Count (8) 63 # 0x81, 0x03, // Input (Cnst,Var,Abs) 65 # 0xc0, // End Collection 67 # R: 68 05 0c 09 01 a1 01 85 01 75 10 95 01 16 00 00 26 9c 02 1a 00 00 2a 9c 02 81 00 c0 05 01 09 80 a1 01 85 02 75 01 95 08 15 00 25 01 09 81 09 82 09 83 09 84 09 85 09 86 09 87 09 88 81 02 75 01 95 08 81 03 c0 N: HL 0000 00 00 00 01 Smart Control I: 3 1357 1000 D: 1
This is what "sudo usbhid-dump --model=1357:1000" outputs:
002:011:002:DESCRIPTOR 1553583663.154950 05 0C 09 01 A1 01 85 01 75 10 95 01 16 00 00 26 9C 02 1A 00 00 2A 9C 02 81 00 C0 05 01 09 80 A1 01 85 02 75 01 95 08 15 00 25 01 09 81 09 82 09 83 09 84 09 85 09 86 09 87 09 88 81 02 75 01 95 08 81 03 C0 002:011:001:DESCRIPTOR 1553583663.156357 05 01 09 02 A1 01 09 01 A1 00 05 09 19 01 29 05 15 00 25 01 75 01 95 05 81 02 75 03 95 01 81 03 05 01 09 30 09 31 15 81 25 7F 75 08 95 02 81 06 A1 02 09 48 15 00 25 01 35 01 45 04 75 02 95 01 A4 B1 02 09 38 15 81 25 7F 35 00 45 00 75 08 81 06 C0 A1 02 09 48 B4 B1 02 35 00 45 00 75 04 B1 03 05 0C 0A 38 02 15 81 25 7F 75 08 81 06 C0 C0 C0 002:011:000:DESCRIPTOR 1553583663.157742 05 01 09 06 A1 01 05 07 19 E0 29 E7 15 00 25 01 75 01 95 08 81 02 95 01 75 08 81 01 95 05 75 01 05 08 19 01 29 05 91 02 95 01 75 03 91 01 95 06 75 08 15 00 26 FF 00 05 07 19 00 2A FF 00 81 00 C0
This is what "udevadm info /dev/input/event{256,257,258,259}" outputs:
$ udevadm info /dev/input/event{256,257,258,259} P: /devices/pci0000:00/0000:00:14.0/usb2/2-11/2-11:1.2/0003:1357:1000.001F/input/input67/event256 N: input/event256 L: 0 S: input/by-path/pci-0000:00:14.0-usb-0:11:1.2-event S: input/by-id/usb-HL_0000_00_00_00_01_Smart_Control-event-if02 E: DEVPATH=/devices/pci0000:00/0000:00:14.0/usb2/2-11/2-11:1.2/0003:1357:1000.001F/input/input67/event256 E: DEVNAME=/dev/input/event256 E: MAJOR=13 E: MINOR=256 E: SUBSYSTEM=input E: USEC_INITIALIZED=6350686461 E: ID_INPUT=1 E: ID_INPUT_KEY=1 E: ID_VENDOR=HL_0000_00_00_00_01 E: ID_VENDOR_ENC=HL\x200000\x2000\x2000\x2000\x2001 E: ID_VENDOR_ID=1357 E: ID_MODEL=Smart_Control E: ID_MODEL_ENC=Smart\x20Control E: ID_MODEL_ID=1000 E: ID_REVISION=0100 E: ID_SERIAL=HL_0000_00_00_00_01_Smart_Control E: ID_TYPE=hid E: ID_BUS=usb E: ID_USB_INTERFACES=:030001:030002:030000: E: ID_USB_INTERFACE_NUM=02 E: ID_USB_DRIVER=usbhid E: ID_PATH=pci-0000:00:14.0-usb-0:11:1.2 E: ID_PATH_TAG=pci-0000_00_14_0-usb-0_11_1_2 E: LIBINPUT_DEVICE_GROUP=3/1357/1000:usb-0000:00:14.0-11 E: DEVLINKS=/dev/input/by-path/pci-0000:00:14.0-usb-0:11:1.2-event /dev/input/by-id/usb-HL_0000_00_00_00_01_Smart_Control-event-if02 E: TAGS=:power-switch: P: /devices/pci0000:00/0000:00:14.0/usb2/2-11/2-11:1.2/0003:1357:1000.001F/input/input68/event257 N: input/event257 L: 0 S: input/by-path/pci-0000:00:14.0-usb-0:11:1.2-event S: input/by-id/usb-HL_0000_00_00_00_01_Smart_Control-event-if02 E: DEVPATH=/devices/pci0000:00/0000:00:14.0/usb2/2-11/2-11:1.2/0003:1357:1000.001F/input/input68/event257 E: DEVNAME=/dev/input/event257 E: MAJOR=13 E: MINOR=257 E: SUBSYSTEM=input E: USEC_INITIALIZED=6350640530 E: ID_INPUT=1 E: ID_INPUT_KEY=1 E: ID_VENDOR=HL_0000_00_00_00_01 E: ID_VENDOR_ENC=HL\x200000\x2000\x2000\x2000\x2001 E: ID_VENDOR_ID=1357 E: ID_MODEL=Smart_Control E: ID_MODEL_ENC=Smart\x20Control E: ID_MODEL_ID=1000 E: ID_REVISION=0100 E: ID_SERIAL=HL_0000_00_00_00_01_Smart_Control E: ID_TYPE=hid E: ID_BUS=usb E: ID_USB_INTERFACES=:030001:030002:030000: E: ID_USB_INTERFACE_NUM=02 E: ID_USB_DRIVER=usbhid E: ID_PATH=pci-0000:00:14.0-usb-0:11:1.2 E: ID_PATH_TAG=pci-0000_00_14_0-usb-0_11_1_2 E: LIBINPUT_DEVICE_GROUP=3/1357/1000:usb-0000:00:14.0-11 E: DEVLINKS=/dev/input/by-path/pci-0000:00:14.0-usb-0:11:1.2-event /dev/input/by-id/usb-HL_0000_00_00_00_01_Smart_Control-event-if02 E: TAGS=:power-switch: P: /devices/pci0000:00/0000:00:14.0/usb2/2-11/2-11:1.1/0003:1357:1000.0020/input/input69/event258 N: input/event258 L: 0 S: input/by-path/pci-0000:00:14.0-usb-0:11:1.1-event-mouse S: input/by-id/usb-HL_0000_00_00_00_01_Smart_Control-if01-event-mouse E: DEVPATH=/devices/pci0000:00/0000:00:14.0/usb2/2-11/2-11:1.1/0003:1357:1000.0020/input/input69/event258 E: DEVNAME=/dev/input/event258 E: MAJOR=13 E: MINOR=258 E: SUBSYSTEM=input E: USEC_INITIALIZED=6350687766 E: ID_INPUT=1 E: ID_INPUT_MOUSE=1 E: ID_VENDOR=HL_0000_00_00_00_01 E: ID_VENDOR_ENC=HL\x200000\x2000\x2000\x2000\x2001 E: ID_VENDOR_ID=1357 E: ID_MODEL=Smart_Control E: ID_MODEL_ENC=Smart\x20Control E: ID_MODEL_ID=1000 E: ID_REVISION=0100 E: ID_SERIAL=HL_0000_00_00_00_01_Smart_Control E: ID_TYPE=hid E: ID_BUS=usb E: ID_USB_INTERFACES=:030001:030002:030000: E: ID_USB_INTERFACE_NUM=01 E: ID_USB_DRIVER=usbhid E: ID_PATH=pci-0000:00:14.0-usb-0:11:1.1 E: ID_PATH_TAG=pci-0000_00_14_0-usb-0_11_1_1 E: LIBINPUT_DEVICE_GROUP=3/1357/1000:usb-0000:00:14.0-11 E: DEVLINKS=/dev/input/by-path/pci-0000:00:14.0-usb-0:11:1.1-event-mouse /dev/input/by-id/usb-HL_0000_00_00_00_01_Smart_Control-if01-event-mouse P: /devices/pci0000:00/0000:00:14.0/usb2/2-11/2-11:1.0/0003:1357:1000.0021/input/input70/event259 N: input/event259 L: 0 S: input/by-path/pci-0000:00:14.0-usb-0:11:1.0-event-kbd S: input/by-id/usb-HL_0000_00_00_00_01_Smart_Control-event-kbd E: DEVPATH=/devices/pci0000:00/0000:00:14.0/usb2/2-11/2-11:1.0/0003:1357:1000.0021/input/input70/event259 E: DEVNAME=/dev/input/event259 E: MAJOR=13 E: MINOR=259 E: SUBSYSTEM=input E: USEC_INITIALIZED=6350640659 E: ID_INPUT=1 E: ID_INPUT_KEY=1 E: ID_INPUT_KEYBOARD=1 E: ID_VENDOR=HL_0000_00_00_00_01 E: ID_VENDOR_ENC=HL\x200000\x2000\x2000\x2000\x2001 E: ID_VENDOR_ID=1357 E: ID_MODEL=Smart_Control E: ID_MODEL_ENC=Smart\x20Control E: ID_MODEL_ID=1000 E: ID_REVISION=0100 E: ID_SERIAL=HL_0000_00_00_00_01_Smart_Control E: ID_TYPE=hid E: ID_BUS=usb E: ID_USB_INTERFACES=:030001:030002:030000: E: ID_USB_INTERFACE_NUM=00 E: ID_USB_DRIVER=usbhid E: ID_PATH=pci-0000:00:14.0-usb-0:11:1.0 E: ID_PATH_TAG=pci-0000_00_14_0-usb-0_11_1_0 E: LIBINPUT_DEVICE_GROUP=3/1357/1000:usb-0000:00:14.0-11 E: DEVLINKS=/dev/input/by-path/pci-0000:00:14.0-usb-0:11:1.0-event-kbd /dev/input/by-id/usb-HL_0000_00_00_00_01_Smart_Control-event-kbd E: TAGS=:power-switch:
And finally, this is what USBlyzer on Windows 10 says about the device.
Attachment:
USBlyzer_Dev_Details.html.gz
Description: application/gzip
I had the expectation that given that at first sight the device seemed to work like a real touchpad on Windows, there must be a way to make it work on linux, too. But now I think that there's no way to have it working as a real touchpad without changes to the device's firmware, right? Thanks, Tassilo