Add a new driver for the NEXT Biometrics NB-2033-U fingerprint reader
(USB ID 298d:2033). The NB-2033-U uses the same sensor die as the
NB-1010-U/NB-2020-U (256x180 @ 385 DPI) but a different USB protocol.
Protocol reverse-engineered from USB captures (usbmon) on Linux.
No proprietary code was used.
Key protocol differences from NB-1010-U:
- Bulk IN on EP 0x81 (not EP 0x83)
- TLV command framing: [CMD][0x00][LEN_LO][LEN_HI][PAYLOAD]
- Enhanced finger detection requires two 0x0D config commands before 0x38
- Image transfer: 180 individual rows of 268 bytes (12 hdr + 256 pixels)
- Init command (0x07) must be sent twice per detection cycle
Tested with fprintd-enroll and fprintd-verify on a Fujitsu notebook with
integrated NB-2033-U reader: enrollment (5/5 stages), verification
(correct finger matches, wrong finger rejected).
Signed-off-by: Sebastian van de Meer <kernel-error@kernel-error.com>
Add USB PID 0x2020 (NB-2020-U) to the nb1010 driver's id_table.
The NB-2020-U is an embedded variant of the NB-1010-U using an
identical sensor die (confirmed by independent teardown reports from
System Plus Consulting/Yole Group). USB endpoint layout, command
protocol and image format are identical between both devices.
Tested on a Fujitsu notebook with integrated NB-2020-U reader
(USB ID 298d:2020): device enumeration, finger detection polling
and image capture all work correctly with the existing nb1010
driver code.
Signed-off-by: Sebastian van de Meer <kernel-error@kernel-error.com>
This FPreader was found on Minisforum X1 Pro MiniPC, and it is
listed by lsusb as "Generic Realtek USB2.0 Finger Print Bridge".
Though the VID is not the same as the well-known "0bda", we can
confirm it's from Realtek by analyzing Windows version driver.
Signed-off-by: Ryan Wong <colorfulshark@gmail.com>