[fprint] elan patch + poc 0x903 and 0x0C03

Igor Filatov ia.filatov at gmail.com
Sat Jan 27 07:47:57 UTC 2018


Hi Timo,

Please post the output of the command(s) that fail(s). For the driver
please run ./autogen.sh, then make, then examples/img_capture.

On Sat, 27 Jan 2018, 02:32 TeEmZe, <timo at teemze.de> wrote:

> Hi,
>
>
>
> I tried running elanfp.c to get the device specifications Igor wanted,
> however I got back a *Segmentation fault *signal. Is it me who’s doing
> something wrong there?
>
> I also tried compiling / installing the driver from GitHub. However, when
> I run *./configure* I get back the message *No such file or directory*.
> How should I compile this project?
>
> I’d love to test the current state of the driver, but I’ll need some
> advice here.
>
>
>
> Regards,
>
>
>
> Timo
>
>
>
> *From:* Igor Filatov [mailto:ia.filatov at gmail.com]
> *Sent:* Tuesday, 23 January 2018 22:59
> *To:* Hans de Goede <hdegoede at redhat.com>; konachan.700 at gmail.com;
> Sebastien Bechet <sebastien.bechet at osinix.com>; TeEmZe <timo at teemze.de>
> *Cc:* fprint at lists.freedesktop.org
>
>
> *Subject:* Re: [fprint] elan patch + poc 0x903 and 0x0C03
>
>
>
> I've updated the driver to support the devices known so far. Please see if
> it works for you. Please send me your logs if not. I've enabled all
> commands for all devices (except 0x4031 which I've enabled only on my
> 0x0907 -- no idea what it does, but the response is 0x01).
>
>
>
> There's a bit mask in each command which you can use to enable/disable
> commands for a particular device.
>
>
>
> As for calibration, the driver doesn't expect 0x03 because not all devices
> seem to return 0x03 or 0x01. Instead it will retry *only* if the response
> is 0x03 and until it's different.
>
>
>
> I've enabled reset & fuse load for my device. Although I haven't seen it
> done by the original driver, it doesn't seem to hurt. So please see if it
> cause problems for you. Let's disable it only for devices where it does.
>
>
>
> https://github.com/iafilatov/libfprint
>
>
>
> On Fri, Jan 19, 2018 at 3:33 PM TeEmZe <timo at teemze.de> wrote:
>
> Hi,
>
> Sadly I won't be able to get the data until next week, as I currently
> don't have access to the Laptop. I'll notify you as soon as I manage to get
> the data.
>
> Regards,
>
> Timo
>
> -----Original Message-----
> From: Hans de Goede [mailto:hdegoede at redhat.com]
> Sent: Thursday, 18 January 2018 16:14
> To: Sebastien Bechet <sebastien.bechet at osinix.com>; Igor Filatov <
> ia.filatov at gmail.com>
> Cc: TeEmZe <timo at teemze.de>; konachan.700 at gmail.com;
> fprint at lists.freedesktop.org
> Subject: Re: [fprint] elan patch + poc 0x903 and 0x0C03
>
> Hi,
>
> On 18-01-18 16:03, Sebastien Bechet wrote:
> > Thank you Igor. Hans, you can try again with last version.
>
> Not tested, but looking at the code, it will loop in the calibration, my 2
> devices both need a:
>
> if (result == 0x03) break;
>
> Directly after the:
>
> printf("Calibration Status: 0x%x\n", result);
>
> Line, currently the code only checks for result == 0x03 for the result of
> the get_cmd_status command, while it should check (for my devices) the
> result of the get_cmd_calibration command.
>
> Regards,
>
> Hans
>
>
>
> >
> > I also tried to remove reset+fuseload then calibration not working
> > anymore for 0x0903. It seems it is a part for calibration (same pdf
> > file for reset _and_ calibration or .... reset _then_ calibration?).
> >
> > https://github.com/sbechet/elanfp
> >
> > Konata and timo, can you give us width, height, firmware version and
> > calibration status using elanfp.c please?
>
>
> >
> >
> >
> > Le jeudi 18 janvier 2018 à 14:02 +0000, Igor Filatov a écrit :
> >>> square and seems to contain the image 3 times
> >> Could be because convert is hardcoded at 96x96.
> >>
> >> On Thu, 18 Jan 2018, 12:04 Hans de Goede, <hdegoede at redhat.com>
> >> wrote:
> >>> Hi,
> >>>
> >>> On 18-01-18 10:48, Sébastien Béchet wrote:
> >>>> On 17-01-18 19:21, Igor Filatov wrote:
> >>>>> We didn't have the spec before so I had no idea how different
> >>> devices worked. Especially given that some commands which worked
> >>> fine for me produced errors one other devices. Now that we have the
> >>> docs I'll work on adapting the driver. Naturally, any info you have
> >>> is welcome and so is any help with testing.
> >>>>
> >>>> I have done the [synthesis](https://github.com/sbechet/elanfp/blo
> >>> b/master/README.md) about all informations we have a prepare
> >>> questions for KT.
> >>>
> >>> My 0x0c16 id reader has firmware version 1.56, resolution 96x96
> >>>
> >>> I also have bought a stand-alone USB reader for when I would find
> >>> time to work on this, this has an usb-id of: 0x0c26.
> >>>
> >>> After aking these changes:
> >>>
> >>> --- elanfp.c~   2018-01-18 10:58:59.919912347 +0100
> >>> +++ elanfp.c    2018-01-18 11:01:50.346280668 +0100
> >>> @@ -71,7 +71,8 @@
> >>>                    (desc.idVendor == 0x04f3) && (desc.idProduct ==
> >>> 0x0903) ||
> >>>                    (desc.idVendor == 0x04f3) && (desc.idProduct ==
> >>> 0x0907) ||
> >>>                    (desc.idVendor == 0x04f3) && (desc.idProduct ==
> >>> 0x0c03) ||
> >>> -                (desc.idVendor == 0x04f3) && (desc.idProduct ==
> >>> 0x0c16) ) {
> >>> +                (desc.idVendor == 0x04f3) && (desc.idProduct ==
> >>> 0x0c16) ||
> >>> +                (desc.idVendor == 0x04f3) && (desc.idProduct ==
> >>> 0x0c26) ) {
> >>>                    r0 = 0;
> >>>                    printf("Device with vid %x pid %x found.\n",
> >>> desc.idVendor, desc.idProduct);
> >>>                    break;
> >>> @@ -156,7 +157,7 @@
> >>>            printf("CMD Get Image Size sent\n");
> >>>        }
> >>>        r0 = libusb_bulk_transfer(handle, BULK_EP3_IN, img_buf, 4,
> >>> &transferred, 0);
> >>> -    printf("Width x height = %dx%d\n", img_buf[0], img_buf[2]);
> >>> +    printf("Width x height = %dx%d\n", (unsigned char)img_buf[0],
> >>> (unsigned char)img_buf[2]);
> >>>
> >>>        /* calibration */
> >>>
> >>> @@ -180,6 +181,7 @@
> >>>            }
> >>>            r0 = libusb_bulk_transfer(handle, BULK_EP3_IN, &result,
> >>> 1, &transferred, 0);
> >>>            printf("Calibration Status: 0x%x\n", result);
> >>> +        if (result == 0x03) break;
> >>>
> >>>            r0 = libusb_bulk_transfer(handle, BULK_EP1_OUT,
> >>> get_cmd_status, 2, &transferred, 0);
> >>>            if((r0 == 0) && (transferred == 2)) {
> >>>
> >>> This one works with the POC too, although for some reason the
> >>> generated out.png is square and seems to contain the image 3 times?
> >>>
> >>> This one has firmware version 1.64, resolution 64x144 and as shown
> >>> in the necessary changes this one does report a calibration status
> >>> of 0x03 when it is done with the calibration, I think we should add
> >>> an extra column for this to the hardware report table.
> >>>
> >>> Regards,
> >>>
> >>> Hans
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/fprint/attachments/20180127/32145c4c/attachment-0001.html>


More information about the fprint mailing list