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