mirror of
https://gitlab.freedesktop.org/libfprint/libfprint.git
synced 2026-06-21 21:08:36 +02:00
Add driver for SecuGen Hamster Pro 20
Add support for the SecuGen Hamster Pro 20 (1162:2200), a 500 DPI press-type optical scanner built around the SIDO020A sensor. The protocol was reverse-engineered from USB packet captures. The sensor is configured over I2C-tunneled vendor control transfers and streams 956x688 raw frames over the bulk endpoint, read in 64KB chunks so the standard pcap-based test tooling can record full frames (the kernel usbmon interface truncates single URBs at ring_size/5). Frames are processed with band compensation, an edge-aware unsharp mask, a fixed-point bilinear downsample to 300x400, flat-field blending and directional sharpening, driven by per-device factory calibration data read from the device firmware. The fixed-point pipeline keeps the output bit-identical across compilers and architectures for the image comparison test. The sensor has no proximity hardware and its GET_STATUS request always returns zeros, so finger presence is detected by polling preview frames and comparing the mean brightness of the central region against a calibration background frame. Includes a umockdev capture/replay test with a reference image. Closes: https://gitlab.freedesktop.org/libfprint/libfprint/-/work_items/353
This commit is contained in:
parent
732dbe855e
commit
5b34908a21
8 changed files with 2452 additions and 0 deletions
|
|
@ -265,6 +265,11 @@ usb:v2541pFA03*
|
|||
ID_AUTOSUSPEND=1
|
||||
ID_PERSIST=0
|
||||
|
||||
# Supported by libfprint driver secugen
|
||||
usb:v1162p2200*
|
||||
ID_AUTOSUSPEND=1
|
||||
ID_PERSIST=0
|
||||
|
||||
# Supported by libfprint driver synaptics
|
||||
usb:v06CBp00BD*
|
||||
usb:v06CBp00C2*
|
||||
|
|
|
|||
2125
libfprint/drivers/secugen.c
Normal file
2125
libfprint/drivers/secugen.c
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -155,6 +155,8 @@ driver_sources = {
|
|||
[ 'drivers/realtek/realtek.c' ],
|
||||
'focaltech_moc' :
|
||||
[ 'drivers/focaltech_moc/focaltech_moc.c' ],
|
||||
'secugen' :
|
||||
[ 'drivers/secugen.c' ],
|
||||
}
|
||||
|
||||
helper_sources = {
|
||||
|
|
|
|||
|
|
@ -145,6 +145,7 @@ default_drivers = [
|
|||
'fpcmoc',
|
||||
'realtek',
|
||||
'focaltech_moc',
|
||||
'secugen',
|
||||
]
|
||||
|
||||
spi_drivers = [
|
||||
|
|
|
|||
|
|
@ -60,6 +60,7 @@ drivers_tests = [
|
|||
'realtek',
|
||||
'realtek-5816',
|
||||
'focaltech_moc',
|
||||
'secugen',
|
||||
]
|
||||
|
||||
if get_option('introspection')
|
||||
|
|
|
|||
BIN
tests/secugen/capture.pcapng
Normal file
BIN
tests/secugen/capture.pcapng
Normal file
Binary file not shown.
BIN
tests/secugen/capture.png
Normal file
BIN
tests/secugen/capture.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 112 KiB |
318
tests/secugen/device
Normal file
318
tests/secugen/device
Normal file
File diff suppressed because one or more lines are too long
Loading…
Add table
Reference in a new issue