Skip to content

Support for Synaptics 06cb:00b7 (Sensor Type 0xd51) #225

@rsomonte

Description

@rsomonte

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:

  1. 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

  2. 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.

  3. 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.

  4. 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.

  5. 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

journalctllog.txt

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions