[fprint] EgisTec ES603 Error -22

Martin Hejnfelt martin at duffman.dk
Thu Mar 20 13:52:50 PDT 2014


Hi,

I'm working with a EgisTec ES603 (1c7a:0603). I am using the current
HEAD from anarsoul git repository.

When I try to enroll or identify (with async methods), sometimes it
works, but most of the time I get a result of -22 (EINVAL) in the
callback. I tried debugging it, and it seems the error comes in the
sanitize_img function (imgdev.c line 93) from a check of the image
height (line 106-111, error comes in 110). By enabling logging, I can
see that during an enroll sequence, my callback function is called twice
from one call. The first call is good, where I get an FP_ENROLL_PASS
swipe and the function exits as it should. It then immediately gets
called again, however this is the one that fails with error -22.

I then enabled logging in the library, and it seems that it detects the
finger twice or something, and then removes some empty lines that end up
with a blank image. Here's some debug output to gaze upon:

drv:debug [__ssm_call_handler] 0x7fbae0000910 entering state 13
drv:debug [__ssm_call_handler] 0x7fbae0000910 entering state 12
drv:debug [__ssm_call_handler] 0x7fbae0000910 entering state 13
fp:debug [fpi_imgdev_report_finger_status] finger on sensor
drv:debug [fpi_ssm_mark_completed] 0x7fbae0000910 completed with status
0
drv:debug [__ssm_call_handler] 0x7fbae0000a10 entering state 0
etes603:debug [m_capture_state] Capturing a fingerprint...
drv:debug [__ssm_call_handler] 0x7fbae0000a10 entering state 1
drv:debug [__ssm_call_handler] 0x7fbae0000a10 entering state 2
drv:debug [__ssm_call_handler] 0x7fbae0000a10 entering state 3
etes603:debug [m_capture_state] Capturing a 1st frame...
drv:debug [__ssm_call_handler] 0x7fbae0000a10 entering state 4
drv:debug [__ssm_call_handler] 0x7fbae0000a10 entering state 5
etes603:debug [m_capture_state] Capturing a 2nd frame...
drv:debug [__ssm_call_handler] 0x7fbae0000a10 entering state 4
drv:debug [__ssm_call_handler] 0x7fbae0000a10 entering state 5
etes603:debug [process_remove_fp_end] Removing 354 empty lines from
image
etes603:debug [process_remove_fp_end] Removing 0 empty lines from image
fp:debug [fpi_img_new] length=163840
etes603:debug [m_capture_state] Sending the raw fingerprint image
(0x640)
fp:debug [fpi_imgdev_image_captured] 
fp:debug [fpi_img_detect_minutiae] minutiae scan completed in 0.057886
secs
fp:debug [fpi_img_detect_minutiae] detected 97 minutiae
fp:debug [print_data_new] driver=12 devtype=0000
fp:debug [print_data_new] driver=12 devtype=0000
fp:debug [fpi_imgdev_report_finger_status] finger removed
fp:debug [fpi_imgdev_report_finger_status] reporting enroll result
async:debug [fpi_drvcb_enroll_stage_completed] result 3
Enroll stage callback
Enrolling 41EB2014-617A-4953-8283-0B9DD01653FB
System output: Accepted, scan finger again... (1/5)
drv:debug [fpi_ssm_mark_completed] 0x7fbae0000a10 completed with status
0
etes603:debug [m_capture_complete] Device is still active, restarting
finger detection
drv:debug [__ssm_call_handler] 0x7fbae0000a10 entering state 0
drv:debug [__ssm_call_handler] 0x7fbae0000a10 entering state 1
drv:debug [__ssm_call_handler] 0x7fbae0000a10 entering state 2
drv:debug [__ssm_call_handler] 0x7fbae0000a10 entering state 3
drv:debug [__ssm_call_handler] 0x7fbae0000a10 entering state 4
drv:debug [__ssm_call_handler] 0x7fbae0000a10 entering state 5
drv:debug [__ssm_call_handler] 0x7fbae0000a10 entering state 6
drv:debug [__ssm_call_handler] 0x7fbae0000a10 entering state 7
drv:debug [__ssm_call_handler] 0x7fbae0000a10 entering state 8
drv:debug [__ssm_call_handler] 0x7fbae0000a10 entering state 9
drv:debug [__ssm_call_handler] 0x7fbae0000a10 entering state 10
drv:debug [__ssm_call_handler] 0x7fbae0000a10 entering state 11
drv:debug [__ssm_call_handler] 0x7fbae0000a10 entering state 12
drv:debug [__ssm_call_handler] 0x7fbae0000a10 entering state 13
fp:debug [fpi_imgdev_report_finger_status] finger on sensor
drv:debug [fpi_ssm_mark_completed] 0x7fbae0000a10 completed with status
0
drv:debug [__ssm_call_handler] 0x7fbae000afc0 entering state 0
etes603:debug [m_capture_state] Capturing a fingerprint...
drv:debug [__ssm_call_handler] 0x7fbae000afc0 entering state 1
drv:debug [__ssm_call_handler] 0x7fbae000afc0 entering state 2
drv:debug [__ssm_call_handler] 0x7fbae000afc0 entering state 3
etes603:debug [m_capture_state] Capturing a 1st frame...
drv:debug [__ssm_call_handler] 0x7fbae000afc0 entering state 4
drv:debug [__ssm_call_handler] 0x7fbae000afc0 entering state 5
etes603:debug [m_capture_state] Capturing a 2nd frame...
drv:debug [__ssm_call_handler] 0x7fbae000afc0 entering state 4
drv:debug [__ssm_call_handler] 0x7fbae000afc0 entering state 5
etes603:debug [process_remove_fp_end] Removing 498 empty lines from
image
etes603:debug [process_remove_fp_end] Removing 496 empty lines from
image
fp:debug [fpi_img_new] length=0
etes603:debug [m_capture_state] Sending the raw fingerprint image (0x0)
fp:debug [fpi_imgdev_image_captured] 
fp:error [sanitize_image] no image height assigned
fp:debug [fpi_imgdev_report_finger_status] finger removed
fp:debug [fpi_imgdev_report_finger_status] reporting enroll result
async:debug [fpi_drvcb_enroll_stage_completed] result -22
Enroll stage callback
Enrolling 41EB2014-617A-4953-8283-0B9DD01653FB
Enroll failed with error -22
System output: Enroll error!
async:debug [fp_async_enroll_stop] 
etes603:debug [dev_deactivate] deactivating
etes603:debug [m_exit_start] Switching device to idle mode
drv:debug [__ssm_call_handler] 0x7fbae0000a10 entering state 0
drv:debug [fpi_ssm_mark_completed] 0x7fbae000afc0 completed with status
0
etes603:debug [m_capture_complete] And it's over.
drv:debug [__ssm_call_handler] 0x7fbae0000a10 entering state 1
drv:debug [fpi_ssm_mark_completed] 0x7fbae0000a10 completed with status
0
etes603:debug [m_exit_complete] The device is now in idle state
fp:debug [fpi_imgdev_deactivate_complete] 
async:debug [fpi_drvcb_enroll_stopped] 

This comes from a single swipe...

Enroll stage callback
Enrolling 41EB2014-617A-4953-8283-0B9DD01653FB
System output: Accepted, scan finger again... (1/5)

is the output from my callback function, and as you can see it gets
called twice from a single scan:

Enroll stage callback
Enrolling 41EB2014-617A-4953-8283-0B9DD01653FB
Enroll failed with error -22
System output: Enroll error!

Now the code works fine with the integrated UPEK (147e:2016) in my
laptop, so any clues here?

Thanks in advance!

Kind regards,
Martin Hejnfelt



More information about the fprint mailing list