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 _______________________________________________ fprint mailing list fprint@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/fprint