[fprint] uru4000, number of enroll stages

Bastien Nocera hadess at hadess.net
Tue Feb 3 08:31:50 PST 2015


On Wed, 2014-06-25 at 09:06 +0300, Timo Teras wrote:
> On Tue, 24 Jun 2014 22:01:24 +0200
> Martin Hejnfelt <martin at duffman.dk> wrote:
> 
> > Here's the output, this is just the examples/enroll.c which does the
> > same as my own app (which is using async calls).
> > I've inserted the "* * * <state>" output via fp_dbg just to make it a
> > bit easier (for myself) to see whats going on...
> > 
> > Found device claimed by Digital Persona U.are.U 4000/4000B/4500 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 finger 5 times to complete the
> > process.
> > [...]
> > Hope it helps, and thanks :)
> 
> It did. Thanks. Forget the earlier patch, it's irrelevant and the
> original code is right. Seems the bug is in the generic code and
> affects all drivers that are capable of 'finger present' detection.
> 
> It seems to be a bug since 2008 but mostly unnoticed due to doing only
> that one enrollment.
> 
> The following should fix it:
> 
> diff --git a/libfprint/imgdev.c b/libfprint/imgdev.c
> index f960ee3..3b5d3f3 100644
> --- a/libfprint/imgdev.c
> +++ b/libfprint/imgdev.c
> @@ -159,7 +159,7 @@ void fpi_imgdev_report_finger_status(struct fp_img_dev *imgdev,
>                     r > 0 && r != FP_ENROLL_COMPLETE && r != FP_ENROLL_FAIL) {
>                         imgdev->action_result = 0;
>                         imgdev->action_state = IMG_ACQUIRE_STATE_AWAIT_FINGER_ON;
> -                       dev_change_state(imgdev, IMG_ACQUIRE_STATE_AWAIT_FINGER_ON);
> +                       dev_change_state(imgdev, IMGDEV_STATE_AWAIT_FINGER_ON);
>                 }
>                 break;
>         case IMG_ACTION_VERIFY:

Any chance you could get this in git-formatted format with an
explanation of what it fixes in the state machine?

FWIW, it's not enough on my system to get anything out of the URU4000
driver, which always fails to verify enrolled prints.



More information about the fprint mailing list