[fprint] 4000b image error
Timo Teras
timo.teras at iki.fi
Tue Nov 6 22:22:36 PST 2012
Hi,
On Tue, 06 Nov 2012 18:06:51 -0600 "Ing. Alfredo Alarcon"
<frekoalarcon at gmail.com> wrote:
> Hi, sorry for my bad english, my name is Freko from Mexico, have a
> 4000b reader and a Beaglebone ARM 7 with Ubuntu 12.04 and kernel 3.2.
>
> I successfully installed libfprint from sources and all dependencies
> from the repository, except libmagick9-dev Ubuntu suggested me
> another one, all compilations are fine, when run the examples detects
> my reader fine, but when takes the image send the next error:
>
> uru4000:error [imaging_run_state] bad captured image (289 lines) or
> size mismatch 111041 != 111040
The error implies you have fresh git checkout with my uru4500 patch
applied. So that change probably introduced this :/
Basically the device is sending one more byte than expected. The extra
byte could come because of problem in:
- Host USB hardware
- Bug in USB driver for your hardware in linux kernel
- Or error due to some architecture specific bug in the code
- Bug in my patch
> But if i run the same examples in my PC with Ubuntu 10.04 kernel 2.6,
> everything works fine, gets a image from the reader and save this in
> the same carpet in pgm format. I hope my problem have a solution.
If possible, could you get USB captures of what is happening?
See: http://wiki.wireshark.org/CaptureSetup/USB#Linux
Alternatively, if the junk byte is at the end of the transfer, just
modfying to length assertation should be ok:
--- a/libfprint/drivers/uru4000.c
+++ b/libfprint/drivers/uru4000.c
@@ -687,8 +687,8 @@ static void imaging_run_state(struct fpi_ssm *ssm)
fp_dbg("hw header lines %d", img->num_lines);
if (img->num_lines >= IMAGE_HEIGHT ||
- urudev->img_transfer->actual_length != img->num_lines * IMAGE_WIDTH + 64) {
- fp_err("bad captured image (%d lines) or size mismatch %d != %d",
+ urudev->img_transfer->actual_length < img->num_lines * IMAGE_WIDTH + 64) {
+ fp_err("bad captured image (%d lines) or size mismatch %d < %d",
img->num_lines,
urudev->img_transfer->actual_length,
img->num_lines * IMAGE_WIDTH + 64);
Maybe this helps.
Cheers,
Timo
More information about the fprint
mailing list