External USB touchpad (vendor/product 1357:1000) not recognized as touchpad

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux