Got the mouse. Here's dmesg:

[54669.820284] usb 1-6.2: new full-speed USB device number 8 using xhci_hcd
[54669.896522] usb 1-6.2: not running at top speed; connect to a high speed hub [54669.896933] usb 1-6.2: New USB device found, idVendor=1a40, idProduct=0101, bcdDevice= 1.11 [54669.896938] usb 1-6.2: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[54669.896942] usb 1-6.2: Product: USB 2.0 Hub
[54669.898659] hub 1-6.2:1.0: USB hub found
[54669.898739] hub 1-6.2:1.0: 4 ports detected
[54670.183244] usb 1-6.2.2: new full-speed USB device number 9 using xhci_hcd [54670.272694] usb 1-6.2.2: New USB device found, idVendor=06cb, idProduct=0051, bcdDevice= 1.54 [54670.272700] usb 1-6.2.2: New USB device strings: Mfr=0, Product=0, SerialNumber=1
[54670.272705] usb 1-6.2.2: SerialNumber: f2769000b594
[54670.460092] usb 1-6.2.1: new full-speed USB device number 10 using xhci_hcd [54670.551370] usb 1-6.2.1: New USB device found, idVendor=264a, idProduct=1006, bcdDevice=30.02 [54670.551376] usb 1-6.2.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[54670.551380] usb 1-6.2.1: Product: Tt eSPORTS BLACK V2
[54670.551384] usb 1-6.2.1: Manufacturer: Thermaltake
[54670.555187] input: Thermaltake Tt eSPORTS BLACK V2 as /devices/pci0000:00/0000:00:14.0/usb1/1-6/1-6.2/1-6.2.1/1-6.2.1:1.0/0003:264A:1006.0006/input/input19 [54670.608474] hid-generic 0003:264A:1006.0006: input,hidraw3: USB HID v1.11 Mouse [Thermaltake Tt eSPORTS BLACK V2] on usb-0000:00:14.0-6.2.1/input0
[54670.610302] hid-generic 0003:264A:1006.0007: ignoring exceeding usage max
[54670.612647] input: Thermaltake Tt eSPORTS BLACK V2 Keyboard as /devices/pci0000:00/0000:00:14.0/usb1/1-6/1-6.2/1-6.2.1/1-6.2.1:1.1/0003:264A:1006.0007/input/input20 [54670.664783] input: Thermaltake Tt eSPORTS BLACK V2 Consumer Control as /devices/pci0000:00/0000:00:14.0/usb1/1-6/1-6.2/1-6.2.1/1-6.2.1:1.1/0003:264A:1006.0007/input/input21 [54670.665489] hid-generic 0003:264A:1006.0007: input,hiddev97,hidraw5: USB HID v1.11 Keyboard [Thermaltake Tt eSPORTS BLACK V2] on usb-0000:00:14.0-6.2.1/input1

And the output of lsusb:

06cb:0051:
Bus 001 Device 009: ID 06cb:0051 Synaptics, Inc.
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass          255 Vendor Specific Class
  bDeviceSubClass        16
  bDeviceProtocol       255
  bMaxPacketSize0         8
  idVendor           0x06cb Synaptics, Inc.
  idProduct          0x0051
  bcdDevice            1.54
  iManufacturer           0
  iProduct                0
  iSerial                 1
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           53
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           5
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0
      bInterfaceProtocol      0
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval               4
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x84  EP 4 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0010  1x 16 bytes
        bInterval              10


264a:1006:
Bus 001 Device 010: ID 264a:1006
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0         8
  idVendor           0x264a
  idProduct          0x1006
  bcdDevice           30.02
  iManufacturer           1
  iProduct                2
  iSerial                 0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           59
    bNumInterfaces          2
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      1 Boot Interface Subclass
      bInterfaceProtocol      2 Mouse
      iInterface              0
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.11
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength     126
         Report Descriptors:
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0010  1x 16 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      1 Boot Interface Subclass
      bInterfaceProtocol      1 Keyboard
      iInterface              0
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.11
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength     109
         Report Descriptors:
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0010  1x 16 bytes
        bInterval               1

What's the first step in finding out if it's a similar protocol to something that's already supported?


On 02/10/18 02:19 AM, Bastien Nocera wrote:
On Sat, 2018-09-29 at 10:04 -0600, Richi Plana wrote:
Thanks. I'll bite and get the USB IDs. In case it isn't (and it seems
likely since Synaptics' vendor ID isn't on the list),
It's there, under the name "Validity":
https://www.zdnet.com/article/synaptics-acquires-validity-for-255m-dives-into-biometrics/

  are there guides
to help developers figure out how to add support for a new device? Ie.
how do devs normally hack USB device driver reverse engineering?
Depends whether Linux drivers are available. Look for "usb reverse
engineering" in your favourite search engine, and you'll see plenty of
hits.

You'd probably first try to see whether the Windows driver supports
more than one fingerprint reader, and see if that one is already
supported which might just need a USB ID added.

Then people usually start by capturing initialisation, and recreating
this part of the communication using libusb (in C, Python, or whatever
else).

Check out the devices for which work was already started at:
https://gitlab.freedesktop.org/libfprint/libfprint/issues?label_name[]=Driver+Request

Cheers


_______________________________________________
fprint mailing list
fprint@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/fprint

Reply via email to