-
Notifications
You must be signed in to change notification settings - Fork 92
Description
Hello, I'm trying to get a fingerprint sensor with USB ID 06cb:00b7 working. After extensive troubleshooting, it appears the device is unsupported but very close to being compatible. The initialization fails even after applying several patches to the driver source code.
Here is a summary of the manual patches applied in order:
-
Udev Rule: Edited /usr/lib/udev/rules.d/60-python-validity.rules to add a line for the 00b7 product ID to ensure the python3-validity.service is triggered for this
-
Device ID in Driver: Edited /usr/lib/python3.13/site-packages/validitysensor/usb.py to add DEV_b7 = (0x06cb, 0x00b7) to the SupportedDevices Enum, which fixed an initial "No matching devices found" error.
-
Firmware Blob Loading: Edited /usr/lib/python3.13/site-packages/validitysensor/blobs.py. The __load_blob function was failing with an UnboundLocalError because it did not have a case for the 00b7 product ID. I modified the line if usb.usb_dev().idProduct == 0x009a: to if usb.usb_dev().idProduct == 0x009a or usb.usb_dev().idProduct == 0x00b7: to make my device load the blobs_9a module.
-
Sensor Type Profile: Edited /usr/lib/python3.13/site-packages/validitysensor/sensor.py. In the open function, the sensor was correctly identified as sensor type 0xd51 but was then rejected. I modified the line if self.device_info.type == 0x199: to if self.device_info.type == 0x199 or self.device_info.type == 0xd51: to make the driver use the 0x199 sensor profile.
-
Capture Program: Still in sensor.py, the driver then failed with the error Can't find initial capture program. I modified the line self.hardcoded_prog = SensorCaptureProg.get(self.rom_info, self.device_info.type, ...) to self.hardcoded_prog = SensorCaptureProg.get(self.rom_info, 0x199, ...) to force it to load the capture program for the supported 0x199 sensor.
After this final change, the python3-validity.service still fails to start. The full journalctl log for this final failure is attached below.
lsusb output:
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 04d9:fc30 Holtek Semiconductor, Inc. Gaming Mouse [Redragon M711]
Bus 001 Device 003: ID 06cb:00b7 Synaptics, Inc. Fingerprint reader [HP G6]
Bus 001 Device 004: ID 04f2:b669 Chicony Electronics Co., Ltd HP HD Camera
Bus 001 Device 005: ID 8087:0029 Intel Corp. AX200 Bluetooth
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub