Hi there I have a problem with my fingerprint reader on thinkpad w520. pam_enroll scans 5 prints with comment "yep" and then gives error -22 I activated debugging during libfprint compile, debug output is attached.
I tried to read the code for the debug messages and wondered about the "sync:error [fp_enroll_finger_img] exceeding number of enroll stages for device claimed by driver upeke2 (5 stages)" Maybe the driver does not stop enrolling?" Who can help? #lsusb -s 1:3 -v Bus 001 Device 003: ID 147e:2016 Upek Biometric Touchchip/Touchstrip Fingerprint Sensor Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.01 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 8 idVendor 0x147e Upek idProduct 0x2016 Biometric Touchchip/Touchstrip Fingerprint Sensor bcdDevice 0.02 iManufacturer 1 UPEK iProduct 2 Biometric Coprocessor iSerial 0 bNumConfigurations 1 Configuration Descriptor: ---------------8<------ #equery list *fprint* * Searching for *fprint* ... [IP-] [ ] sys-auth/fprint_demo-0.4:0 [IP-] [ ] sys-auth/fprintd-0.2.0-r1:0 [IP-] [ ] sys-auth/libfprint-0.4.0:0 [IP-] [ ] sys-auth/pam_fprint-0.2-r1:0 -----------8<----------- #pam_fprint_enroll This program will enroll your finger, unconditionally overwriting any selected print that was enrolled previously. If you want to continue, press enter, otherwise hit Ctrl+C fp:debug [fp_init] fp:debug [register_driver] registered driver upekts fp:debug [register_driver] registered driver upeke2 fp:debug [register_driver] registered driver aes4000 fp:debug [register_driver] registered driver aes2501 fp:debug [register_driver] registered driver uru4000 fp:debug [register_driver] registered driver vcom5s fp:debug [register_driver] registered driver upeksonly fp:debug [register_driver] registered driver aes1610 fp:debug [register_driver] registered driver vfs101 fp:debug [find_supporting_driver] driver upeke2 supports USB device 147e:2016 fp:debug [find_supporting_driver] selected driver upeke2 supports USB device 147e:2016 Found device claimed by UPEK Eikon 2 driver sync:debug [fp_dev_open] async:debug [fp_async_dev_open] async:debug [fpi_drvcb_open_complete] status 0 sync:debug [sync_open_cb] status 0 Opened device. It's now time to enroll your finger. You will need to successfully scan your Right Index Finger 5 times to complete the process. Scan your finger now. sync:debug [fp_enroll_finger_img] async:debug [fp_async_enroll_start] starting enrollment drv:debug [__ssm_call_handler] 0xc3f6f0 entering state 0 drv:debug [__ssm_call_handler] 0xc3f730 entering state 0 sync:debug [fp_enroll_finger_img] upeke2 will handle enroll stage 0/4 drv:debug [__ssm_call_handler] 0xc3f730 entering state 1 upeke2:debug [__handle_incoming_msg] A=03 B=00 len=5 upeke2:debug [__handle_incoming_msg] cmd 3 from device to driver drv:debug [__ssm_call_handler] 0xc3f730 entering state 2 upeke2:debug [alloc_send_cmdresponse_transfer] seq=04 len=8 upeke2:debug [initsm_send_msg_cb] state 2 completed drv:debug [__ssm_call_handler] 0xc3f730 entering state 3 upeke2:debug [__handle_incoming_msg] A=05 B=00 len=1 upeke2:debug [__handle_incoming_msg] cmd 5 from device to driver drv:debug [__ssm_call_handler] 0xc3f730 entering state 4 upeke2:debug [alloc_send_cmd28_transfer] seq=00 subcmd=06 with 1 bytes of data upeke2:debug [initsm_send_msg_cb] state 4 completed drv:debug [__ssm_call_handler] 0xc3f730 entering state 5 upeke2:debug [__handle_incoming_msg] A=00 B=00 len=55 upeke2:debug [__handle_incoming_msg] device responds to subcmd 6 with 49 bytes upeke2:debug [initsm_read_msg_response_cb] state 5 completed drv:debug [__ssm_call_handler] 0xc3f730 entering state 6 upeke2:debug [alloc_send_cmd28_transfer] seq=10 subcmd=51 with 5 bytes of data upeke2:debug [initsm_send_msg_cb] state 6 completed drv:debug [__ssm_call_handler] 0xc3f730 entering state 7 upeke2:debug [__handle_incoming_msg] A=00 B=10 len=27 upeke2:debug [__handle_incoming_msg] device responds to subcmd 51 with 21 bytes upeke2:debug [initsm_read_msg_response_cb] state 7 completed drv:debug [__ssm_call_handler] 0xc3f730 entering state 8 upeke2:debug [alloc_send_cmd28_transfer] seq=20 subcmd=07 with 5 bytes of data upeke2:debug [initsm_send_msg_cb] state 8 completed drv:debug [__ssm_call_handler] 0xc3f730 entering state 9 upeke2:debug [__handle_incoming_msg] A=00 B=20 len=39 upeke2:debug [__handle_incoming_msg] device responds to subcmd 7 with 33 bytes upeke2:debug [initsm_read_msg_response_cb] state 9 completed drv:debug [__ssm_call_handler] 0xc3f730 entering state 10 upeke2:debug [alloc_send_cmd28_transfer] seq=30 subcmd=08 with 99 bytes of data upeke2:debug [initsm_send_msg_cb] state 10 completed drv:debug [__ssm_call_handler] 0xc3f730 entering state 11 upeke2:debug [__handle_incoming_msg] A=00 B=30 len=7 upeke2:debug [__handle_incoming_msg] non-zero bytes in cmd response upeke2:debug [__handle_incoming_msg] device responds to subcmd 8 with 1 bytes upeke2:debug [initsm_read_msg_response_cb] state 11 completed drv:debug [fpi_ssm_mark_completed] 0xc3f730 completed with status 0 drv:debug [__ssm_call_handler] 0xc3f6f0 entering state 1 upeke2:debug [alloc_send_cmd28_transfer] seq=40 subcmd=02 with 8 bytes of data drv:debug [__ssm_call_handler] 0xc3f6f0 entering state 2 upeke2:debug [__handle_incoming_msg] A=00 B=40 len=20 upeke2:debug [__handle_incoming_msg] device responds to subcmd 0 with 14 bytes drv:debug [fpi_ssm_mark_completed] 0xc3f6f0 completed with status 0 async:debug [fpi_drvcb_enroll_started] status 0 upeke2:debug [alloc_send_cmd28_transfer] seq=50 subcmd=00 with 2 bytes of data upeke2:debug [__handle_incoming_msg] A=00 B=50 len=20 upeke2:debug [__handle_incoming_msg] device responds to subcmd 0 with 14 bytes upeke2:debug [e_handle_resp00] poll result = 0c upeke2:debug [alloc_send_cmd28_transfer] seq=60 subcmd=00 with 2 bytes of data upeke2:debug [__handle_incoming_msg] A=00 B=60 len=20 upeke2:debug [__handle_incoming_msg] device responds to subcmd 0 with 14 bytes upeke2:debug [e_handle_resp00] poll result = 0c upeke2:debug [alloc_send_cmd28_transfer] seq=70 subcmd=00 with 2 bytes of data upeke2:debug [__handle_incoming_msg] A=00 B=70 len=20 upeke2:debug [__handle_incoming_msg] device responds to subcmd 0 with 14 bytes upeke2:debug [e_handle_resp00] poll result = 20 upeke2:debug [alloc_send_cmd28_transfer] seq=80 subcmd=00 with 2 bytes of data upeke2:debug [__handle_incoming_msg] A=00 B=80 len=20 upeke2:debug [__handle_incoming_msg] device responds to subcmd 0 with 14 bytes upeke2:debug [e_handle_resp00] poll result = 2e async:debug [fpi_drvcb_enroll_stage_completed] result 3 sync:debug [sync_enroll_cb] result 3 upeke2:debug [alloc_send_cmd28_transfer] seq=90 subcmd=00 with 2 bytes of data sync:debug [fp_enroll_finger_img] enroll stage passed Enroll stage passed. Yay! Scan your finger now. sync:debug [fp_enroll_finger_img] sync:debug [fp_enroll_finger_img] upeke2 will handle enroll stage 1/4 upeke2:debug [__handle_incoming_msg] A=00 B=90 len=20 upeke2:debug [__handle_incoming_msg] device responds to subcmd 0 with 14 bytes upeke2:debug [e_handle_resp00] poll result = 0c upeke2:debug [alloc_send_cmd28_transfer] seq=a0 subcmd=00 with 2 bytes of data upeke2:debug [__handle_incoming_msg] A=00 B=a0 len=20 upeke2:debug [__handle_incoming_msg] device responds to subcmd 0 with 14 bytes upeke2:debug [e_handle_resp00] poll result = 0c upeke2:debug [alloc_send_cmd28_transfer] seq=b0 subcmd=00 with 2 bytes of data upeke2:debug [__handle_incoming_msg] A=00 B=b0 len=20 upeke2:debug [__handle_incoming_msg] device responds to subcmd 0 with 14 bytes upeke2:debug [e_handle_resp00] poll result = 0c upeke2:debug [alloc_send_cmd28_transfer] seq=c0 subcmd=00 with 2 bytes of data upeke2:debug [__handle_incoming_msg] A=00 B=c0 len=20 upeke2:debug [__handle_incoming_msg] device responds to subcmd 0 with 14 bytes upeke2:debug [e_handle_resp00] poll result = 0c upeke2:debug [alloc_send_cmd28_transfer] seq=d0 subcmd=00 with 2 bytes of data upeke2:debug [__handle_incoming_msg] A=00 B=d0 len=20 upeke2:debug [__handle_incoming_msg] device responds to subcmd 0 with 14 bytes upeke2:debug [e_handle_resp00] poll result = 0c upeke2:debug [alloc_send_cmd28_transfer] seq=e0 subcmd=00 with 2 bytes of data upeke2:debug [__handle_incoming_msg] A=00 B=e0 len=20 upeke2:debug [__handle_incoming_msg] device responds to subcmd 0 with 14 bytes upeke2:debug [e_handle_resp00] poll result = 0c upeke2:debug [alloc_send_cmd28_transfer] seq=f0 subcmd=00 with 2 bytes of data upeke2:debug [__handle_incoming_msg] A=00 B=f0 len=20 upeke2:debug [__handle_incoming_msg] device responds to subcmd 0 with 14 bytes upeke2:debug [e_handle_resp00] poll result = 0c upeke2:debug [alloc_send_cmd28_transfer] seq=00 subcmd=00 with 2 bytes of data upeke2:debug [__handle_incoming_msg] A=00 B=00 len=20 upeke2:debug [__handle_incoming_msg] device responds to subcmd 0 with 14 bytes upeke2:debug [e_handle_resp00] poll result = 0c upeke2:debug [alloc_send_cmd28_transfer] seq=10 subcmd=00 with 2 bytes of data upeke2:debug [__handle_incoming_msg] A=00 B=10 len=20 upeke2:debug [__handle_incoming_msg] device responds to subcmd 0 with 14 bytes upeke2:debug [e_handle_resp00] poll result = 0c upeke2:debug [alloc_send_cmd28_transfer] seq=20 subcmd=00 with 2 bytes of data upeke2:debug [__handle_incoming_msg] A=00 B=20 len=20 upeke2:debug [__handle_incoming_msg] device responds to subcmd 0 with 14 bytes upeke2:debug [e_handle_resp00] poll result = 0c upeke2:debug [alloc_send_cmd28_transfer] seq=30 subcmd=00 with 2 bytes of data upeke2:debug [__handle_incoming_msg] A=00 B=30 len=20 upeke2:debug [__handle_incoming_msg] device responds to subcmd 0 with 14 bytes upeke2:debug [e_handle_resp00] poll result = 0c upeke2:debug [alloc_send_cmd28_transfer] seq=40 subcmd=00 with 2 bytes of data upeke2:debug [__handle_incoming_msg] A=00 B=40 len=20 upeke2:debug [__handle_incoming_msg] device responds to subcmd 0 with 14 bytes upeke2:debug [e_handle_resp00] poll result = 20 upeke2:debug [alloc_send_cmd28_transfer] seq=50 subcmd=00 with 2 bytes of data upeke2:debug [__handle_incoming_msg] A=00 B=50 len=20 upeke2:debug [__handle_incoming_msg] device responds to subcmd 0 with 14 bytes upeke2:debug [e_handle_resp00] poll result = 2e async:debug [fpi_drvcb_enroll_stage_completed] result 3 sync:debug [sync_enroll_cb] result 3 upeke2:debug [alloc_send_cmd28_transfer] seq=60 subcmd=00 with 2 bytes of data sync:debug [fp_enroll_finger_img] enroll stage passed Enroll stage passed. Yay! Scan your finger now. sync:debug [fp_enroll_finger_img] sync:debug [fp_enroll_finger_img] upeke2 will handle enroll stage 2/4 upeke2:debug [__handle_incoming_msg] A=00 B=60 len=20 upeke2:debug [__handle_incoming_msg] device responds to subcmd 0 with 14 bytes upeke2:debug [e_handle_resp00] poll result = 0c upeke2:debug [alloc_send_cmd28_transfer] seq=70 subcmd=00 with 2 bytes of data upeke2:debug [__handle_incoming_msg] A=00 B=70 len=20 upeke2:debug [__handle_incoming_msg] device responds to subcmd 0 with 14 bytes upeke2:debug [e_handle_resp00] poll result = 0c upeke2:debug [alloc_send_cmd28_transfer] seq=80 subcmd=00 with 2 bytes of data upeke2:debug [__handle_incoming_msg] A=00 B=80 len=20 upeke2:debug [__handle_incoming_msg] device responds to subcmd 0 with 14 bytes upeke2:debug [e_handle_resp00] poll result = 0c upeke2:debug [alloc_send_cmd28_transfer] seq=90 subcmd=00 with 2 bytes of data upeke2:debug [__handle_incoming_msg] A=00 B=90 len=20 upeke2:debug [__handle_incoming_msg] device responds to subcmd 0 with 14 bytes upeke2:debug [e_handle_resp00] poll result = 0c upeke2:debug [alloc_send_cmd28_transfer] seq=a0 subcmd=00 with 2 bytes of data upeke2:debug [__handle_incoming_msg] A=08 B=00 len=0 upeke2:debug [__handle_incoming_msg] cmd 8 from device to driver upeke2:debug [__handle_incoming_msg] device busy, send busy-ack upeke2:debug [alloc_send_cmdresponse_transfer] seq=09 len=0 upeke2:debug [__handle_incoming_msg] A=00 B=a0 len=20 upeke2:debug [__handle_incoming_msg] device responds to subcmd 0 with 14 bytes upeke2:debug [e_handle_resp00] poll result = 20 upeke2:debug [alloc_send_cmd28_transfer] seq=b0 subcmd=00 with 2 bytes of data upeke2:debug [__handle_incoming_msg] A=00 B=b0 len=20 upeke2:debug [__handle_incoming_msg] device responds to subcmd 0 with 14 bytes upeke2:debug [e_handle_resp00] poll result = 2e async:debug [fpi_drvcb_enroll_stage_completed] result 3 sync:debug [sync_enroll_cb] result 3 upeke2:debug [alloc_send_cmd28_transfer] seq=c0 subcmd=00 with 2 bytes of data sync:debug [fp_enroll_finger_img] enroll stage passed Enroll stage passed. Yay! Scan your finger now. sync:debug [fp_enroll_finger_img] sync:debug [fp_enroll_finger_img] upeke2 will handle enroll stage 3/4 upeke2:debug [__handle_incoming_msg] A=00 B=c0 len=20 upeke2:debug [__handle_incoming_msg] device responds to subcmd 0 with 14 bytes upeke2:debug [e_handle_resp00] poll result = 0c upeke2:debug [alloc_send_cmd28_transfer] seq=d0 subcmd=00 with 2 bytes of data upeke2:debug [__handle_incoming_msg] A=00 B=d0 len=20 upeke2:debug [__handle_incoming_msg] device responds to subcmd 0 with 14 bytes upeke2:debug [e_handle_resp00] poll result = 0c upeke2:debug [alloc_send_cmd28_transfer] seq=e0 subcmd=00 with 2 bytes of data upeke2:debug [__handle_incoming_msg] A=00 B=e0 len=20 upeke2:debug [__handle_incoming_msg] device responds to subcmd 0 with 14 bytes upeke2:debug [e_handle_resp00] poll result = 0c upeke2:debug [alloc_send_cmd28_transfer] seq=f0 subcmd=00 with 2 bytes of data upeke2:debug [__handle_incoming_msg] A=00 B=f0 len=20 upeke2:debug [__handle_incoming_msg] device responds to subcmd 0 with 14 bytes upeke2:debug [e_handle_resp00] poll result = 0c upeke2:debug [alloc_send_cmd28_transfer] seq=00 subcmd=00 with 2 bytes of data upeke2:debug [__handle_incoming_msg] A=08 B=00 len=0 upeke2:debug [__handle_incoming_msg] cmd 8 from device to driver upeke2:debug [__handle_incoming_msg] device busy, send busy-ack upeke2:debug [alloc_send_cmdresponse_transfer] seq=09 len=0 upeke2:debug [__handle_incoming_msg] A=00 B=00 len=20 upeke2:debug [__handle_incoming_msg] device responds to subcmd 0 with 14 bytes upeke2:debug [e_handle_resp00] poll result = 20 upeke2:debug [alloc_send_cmd28_transfer] seq=10 subcmd=00 with 2 bytes of data upeke2:debug [__handle_incoming_msg] A=00 B=10 len=20 upeke2:debug [__handle_incoming_msg] device responds to subcmd 0 with 14 bytes upeke2:debug [e_handle_resp00] poll result = 2e async:debug [fpi_drvcb_enroll_stage_completed] result 3 sync:debug [sync_enroll_cb] result 3 upeke2:debug [alloc_send_cmd28_transfer] seq=20 subcmd=00 with 2 bytes of data sync:debug [fp_enroll_finger_img] enroll stage passed Enroll stage passed. Yay! Scan your finger now. sync:debug [fp_enroll_finger_img] sync:debug [fp_enroll_finger_img] upeke2 will handle enroll stage 4/4 upeke2:debug [__handle_incoming_msg] A=00 B=20 len=20 upeke2:debug [__handle_incoming_msg] device responds to subcmd 0 with 14 bytes upeke2:debug [e_handle_resp00] poll result = 0c upeke2:debug [alloc_send_cmd28_transfer] seq=30 subcmd=00 with 2 bytes of data upeke2:debug [__handle_incoming_msg] A=00 B=30 len=20 upeke2:debug [__handle_incoming_msg] device responds to subcmd 0 with 14 bytes upeke2:debug [e_handle_resp00] poll result = 0c upeke2:debug [alloc_send_cmd28_transfer] seq=40 subcmd=00 with 2 bytes of data upeke2:debug [__handle_incoming_msg] A=00 B=40 len=20 upeke2:debug [__handle_incoming_msg] device responds to subcmd 0 with 14 bytes upeke2:debug [e_handle_resp00] poll result = 0c upeke2:debug [alloc_send_cmd28_transfer] seq=50 subcmd=00 with 2 bytes of data upeke2:debug [__handle_incoming_msg] A=00 B=50 len=20 upeke2:debug [__handle_incoming_msg] device responds to subcmd 0 with 14 bytes upeke2:debug [e_handle_resp00] poll result = 0c upeke2:debug [alloc_send_cmd28_transfer] seq=60 subcmd=00 with 2 bytes of data upeke2:debug [__handle_incoming_msg] A=00 B=60 len=20 upeke2:debug [__handle_incoming_msg] device responds to subcmd 0 with 14 bytes upeke2:debug [e_handle_resp00] poll result = 0c upeke2:debug [alloc_send_cmd28_transfer] seq=70 subcmd=00 with 2 bytes of data upeke2:debug [__handle_incoming_msg] A=00 B=70 len=20 upeke2:debug [__handle_incoming_msg] device responds to subcmd 0 with 14 bytes upeke2:debug [e_handle_resp00] poll result = 0c upeke2:debug [alloc_send_cmd28_transfer] seq=80 subcmd=00 with 2 bytes of data upeke2:debug [__handle_incoming_msg] A=00 B=80 len=20 upeke2:debug [__handle_incoming_msg] device responds to subcmd 0 with 14 bytes upeke2:debug [e_handle_resp00] poll result = 0c upeke2:debug [alloc_send_cmd28_transfer] seq=90 subcmd=00 with 2 bytes of data upeke2:debug [__handle_incoming_msg] A=00 B=90 len=20 upeke2:debug [__handle_incoming_msg] device responds to subcmd 0 with 14 bytes upeke2:debug [e_handle_resp00] poll result = 0c upeke2:debug [alloc_send_cmd28_transfer] seq=a0 subcmd=00 with 2 bytes of data upeke2:debug [__handle_incoming_msg] A=08 B=00 len=0 upeke2:debug [__handle_incoming_msg] cmd 8 from device to driver upeke2:debug [__handle_incoming_msg] device busy, send busy-ack upeke2:debug [alloc_send_cmdresponse_transfer] seq=09 len=0 upeke2:debug [__handle_incoming_msg] A=00 B=a0 len=20 upeke2:debug [__handle_incoming_msg] device responds to subcmd 0 with 14 bytes upeke2:debug [e_handle_resp00] poll result = 20 upeke2:debug [alloc_send_cmd28_transfer] seq=b0 subcmd=00 with 2 bytes of data upeke2:debug [__handle_incoming_msg] A=00 B=b0 len=20 upeke2:debug [__handle_incoming_msg] device responds to subcmd 0 with 14 bytes upeke2:debug [e_handle_resp00] poll result = 2e async:debug [fpi_drvcb_enroll_stage_completed] result 3 sync:debug [sync_enroll_cb] result 3 upeke2:debug [alloc_send_cmd28_transfer] seq=c0 subcmd=00 with 2 bytes of data sync:debug [fp_enroll_finger_img] enroll stage passed Enroll stage passed. Yay! Scan your finger now. sync:debug [fp_enroll_finger_img] sync:error [fp_enroll_finger_img] exceeding number of enroll stages for device claimed by driver upeke2 (5 stages) sync:debug [fp_enroll_finger_img] ending enrollment async:debug [fp_async_enroll_stop] drv:debug [__ssm_call_handler] 0xc3f6f0 entering state 0 upeke2:debug [alloc_send_cmdresponse_transfer] seq=07 len=1 upeke2:debug [__handle_incoming_msg] A=00 B=c0 len=20 upeke2:debug [__handle_incoming_msg] device responds to subcmd 0 with 14 bytes upeke2:debug [e_handle_resp00] poll result = 24 async:error [fpi_drvcb_enroll_stage_completed] BUG at async.c:161 async:debug [fpi_drvcb_enroll_stage_completed] result 102 async:debug [fpi_drvcb_enroll_stage_completed] ignoring enroll result as no callback is subscribed upeke2:debug [alloc_send_cmd28_transfer] seq=d0 subcmd=00 with 2 bytes of data drv:debug [__ssm_call_handler] 0xc3f6f0 entering state 1 upeke2:error [read_msg_cb] async msg read failed, code 2 drv:debug [fpi_ssm_mark_aborted] error -1 from state 1 drv:debug [fpi_ssm_mark_completed] 0xc3f6f0 completed with status -1 async:debug [fpi_drvcb_enroll_stopped] sync:debug [enroll_stop_cb] Enroll failed with error -22 sync:debug [fp_dev_close] async:debug [fpi_drvcb_close_complete] sync:debug [sync_close_cb] fp:debug [fp_exit] -- --------------------------------------- Ulf Dambacher [email protected] --------------------------------------- _______________________________________________ fprint mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/fprint
