[04f3:0903] Elan Microelectronics Corp fingerprint reader not recognised

Bug #1641290 reported by Barry Price
774
This bug affects 154 people
Affects Status Importance Assigned to Milestone
libfprint
New
Undecided
Unassigned
libfprint (Debian)
New
Undecided
Unassigned
libfprint (Ubuntu)
Fix Released
Undecided
Nur Sandi

Bug Description

Running "fprint-demo" with this hardware installed reports "No devices found".

This is the integrated reader in new ASUS ZenBook UX390UA laptops.

lsusb -v output here: http://paste.ubuntu.com/23464942/

ProblemType: Bug
DistroRelease: Ubuntu 16.10
Package: libfprint0 1:0.6.0-2
ProcVersionSignature: Ubuntu 4.8.0-27.29-generic 4.8.1
Uname: Linux 4.8.0-27-generic x86_64
NonfreeKernelModules: zfs zunicode zcommon znvpair zavl
ApportVersion: 2.20.3-0ubuntu8
Architecture: amd64
CurrentDesktop: Unity
Date: Sat Nov 12 15:59:17 2016
InstallationDate: Installed on 2016-11-08 (3 days ago)
InstallationMedia: Ubuntu 16.10 "Yakkety Yak" - Release amd64 (20161012.2)
SourcePackage: libfprint
UpgradeStatus: No upgrade log present (probably fresh install)

Revision history for this message
Barry Price (barryprice) wrote :
Revision history for this message
Nuno (nmrcardoso) wrote :

Same here but with ASUS ux360uak and "Bus 001 Device 005: ID 04f3:0903 Elan Microelectronics Corp"
Not recognized either.

Revision history for this message
Nuno (nmrcardoso) wrote :

Here is my output for that device:
Bus 001 Device 005: ID 04f3:0903 Elan Microelectronics Corp.
Couldn't open device, some information will be missing
Device Descriptor:
  bLength 18
  bDescriptorType 1
  bcdUSB 2.00
  bDeviceClass 0 (Defined at Interface level)
  bDeviceSubClass 0
  bDeviceProtocol 0
  bMaxPacketSize0 8
  idVendor 0x04f3 Elan Microelectronics Corp.
  idProduct 0x0903
  bcdDevice 1.35
  iManufacturer 1
  iProduct 2
  iSerial 0
  bNumConfigurations 1
  Configuration Descriptor:
    bLength 9
    bDescriptorType 2
    wTotalLength 62
    bNumInterfaces 1
    bConfigurationValue 1
    iConfiguration 0
    bmAttributes 0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower 100mA
    Interface Descriptor:
      bLength 9
      bDescriptorType 4
      bInterfaceNumber 0
      bAlternateSetting 0
      bNumEndpoints 5
      bInterfaceClass 255 Vendor Specific Class
      bInterfaceSubClass 0
      bInterfaceProtocol 0
      iInterface 0
      ** UNRECOGNIZED: 09 21 10 01 00 01 22 15 00
      Endpoint Descriptor:
        bLength 7
        bDescriptorType 5
        bEndpointAddress 0x81 EP 1 IN
        bmAttributes 2
          Transfer Type Bulk
          Synch Type None
          Usage Type Data
        wMaxPacketSize 0x0040 1x 64 bytes
        bInterval 1
      Endpoint Descriptor:
        bLength 7
        bDescriptorType 5
        bEndpointAddress 0x01 EP 1 OUT
        bmAttributes 2
          Transfer Type Bulk
          Synch Type None
          Usage Type Data
        wMaxPacketSize 0x0040 1x 64 bytes
        bInterval 1
      Endpoint Descriptor:
        bLength 7
        bDescriptorType 5
        bEndpointAddress 0x82 EP 2 IN
        bmAttributes 2
          Transfer Type Bulk
          Synch Type None
          Usage Type Data
        wMaxPacketSize 0x0040 1x 64 bytes
        bInterval 1
      Endpoint Descriptor:
        bLength 7
        bDescriptorType 5
        bEndpointAddress 0x83 EP 3 IN
        bmAttributes 2
          Transfer Type Bulk
          Synch Type None
          Usage Type Data
        wMaxPacketSize 0x0040 1x 64 bytes
        bInterval 1
      Endpoint Descriptor:
        bLength 7
        bDescriptorType 5
        bEndpointAddress 0x03 EP 3 OUT
        bmAttributes 2
          Transfer Type Bulk
          Synch Type None
          Usage Type Data
        wMaxPacketSize 0x0040 1x 64 bytes
        bInterval 1

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in libfprint (Ubuntu):
status: New → Confirmed
Revision history for this message
Dmitry Korotovsky (rmpic30) wrote :

Same issue.

$ sudo fprintd-enroll
list_devices failed: No devices available

lshw:

              *-usb:2 UNCLAIMED
                   description: Generic USB device
                   product: ELAN:Fingerprint
                   vendor: ELAN
                   physical id: 9
                   bus info: usb@1:9
                   version: 1.35
                   capabilities: usb-2.00
                   configuration: maxpower=100mA speed=12Mbit/s

Revision history for this message
Dmitry Korotovsky (rmpic30) wrote :

ASUS ZenBook UX390UA

$ uname -a
Linux korotovskii 4.8.6-040806-generic #201610310831 SMP Mon Oct 31 12:33:48 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

$ lsb_release -a
Distributor ID: Ubuntu
Description: Ubuntu 16.04.1 LTS
Release: 16.04
Codename: xenial

Revision history for this message
Corentin Dancette (cdancette) wrote :

Same here with ubuntu 17.04, Asus ZenBook UX360UAK

$ uname -a
Linux zenbook 4.10.4-041004-generic #201703180831 SMP Sat Mar 18 12:34:07 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

Revision history for this message
Aless Jeant (aless-jeant) wrote :
Download full text (3.2 KiB)

Same here,

~ uname -a
Linux Zenbook3 4.10.0-19-generic #21-Ubuntu SMP Thu Apr 6 17:04:57 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

~lsusb -v
Bus 001 Device 004: ID 04f3:0903 Elan Microelectronics Corp.
Couldn't open device, some information will be missing
Device Descriptor:
  bLength 18
  bDescriptorType 1
  bcdUSB 2.00
  bDeviceClass 0 (Defined at Interface level)
  bDeviceSubClass 0
  bDeviceProtocol 0
  bMaxPacketSize0 8
  idVendor 0x04f3 Elan Microelectronics Corp.
  idProduct 0x0903
  bcdDevice 1.35
  iManufacturer 1
  iProduct 2
  iSerial 0
  bNumConfigurations 1
  Configuration Descriptor:
    bLength 9
    bDescriptorType 2
    wTotalLength 62
    bNumInterfaces 1
    bConfigurationValue 1
    iConfiguration 0
    bmAttributes 0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower 100mA
    Interface Descriptor:
      bLength 9
      bDescriptorType 4
      bInterfaceNumber 0
      bAlternateSetting 0
      bNumEndpoints 5
      bInterfaceClass 255 Vendor Specific Class
      bInterfaceSubClass 0
      bInterfaceProtocol 0
      iInterface 0
      ** UNRECOGNIZED: 09 21 10 01 00 01 22 15 00
      Endpoint Descriptor:
        bLength 7
        bDescriptorType 5
        bEndpointAddress 0x81 EP 1 IN
        bmAttributes 2
          Transfer Type Bulk
          Synch Type None
          Usage Type Data
        wMaxPacketSize 0x0040 1x 64 bytes
        bInterval 1
      Endpoint Descriptor:
        bLength 7
        bDescriptorType 5
        bEndpointAddress 0x01 EP 1 OUT
        bmAttributes 2
          Transfer Type Bulk
          Synch Type None
          Usage Type Data
        wMaxPacketSize 0x0040 1x 64 bytes
        bInterval 1
      Endpoint Descriptor:
        bLength 7
        bDescriptorType 5
        bEndpointAddress 0x82 EP 2 IN
        bmAttributes 2
          Transfer Type Bulk
          Synch Type None
          Usage Type Data
        wMaxPacketSize 0x0040 1x 64 bytes
        bInterval 1
      Endpoint Descriptor:
        bLength 7
        bDescriptorType 5
        bEndpointAddress 0x83 EP 3 IN
        bmAttributes 2
          Transfer Type Bulk
          Synch Type None
          Usage Type Data
        wMaxPacketSize 0x0040 1x 64 bytes
        bInterval 1
      Endpoint Descriptor:
        bLength 7
        bDescriptorType 5
        bEndpointAddress 0x03 EP 3 OUT
        bmAttributes 2
          Transfer Type Bulk
          Synch Type None
          Usage Typ...

Read more...

Revision history for this message
William Elliott (willdorf) wrote :

Same here with Asus ZenBook UX330UA

Revision history for this message
gerrit (gerrit-damen) wrote :

Can confirm this problem with ASUS Zenbook 3 UX390UA-GS042T

$ uname -a
Linux zenx 4.8.0-46-generic #49-Ubuntu SMP Fri Mar 31 13:57:14 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

$ sudo lsusb -v is attached

Revision history for this message
Patrick Hofmann (pahofmann) wrote :

Can confirm on UX330UA.

$lsusb

Bus 001 Device 004: ID 04f3:0903 Elan Microelectronics Corp.
Couldn't open device, some information will be missing
Device Descriptor:
  bLength 18
  bDescriptorType 1
  bcdUSB 2.00
  bDeviceClass 0
  bDeviceSubClass 0
  bDeviceProtocol 0
  bMaxPacketSize0 8
  idVendor 0x04f3 Elan Microelectronics Corp.
  idProduct 0x0903
  bcdDevice 1.35
  iManufacturer 1
  iProduct 2
  iSerial 0
  bNumConfigurations 1
  Configuration Descriptor:
    bLength 9
    bDescriptorType 2
    wTotalLength 62
    bNumInterfaces 1
    bConfigurationValue 1
    iConfiguration 0
    bmAttributes 0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower 100mA
    Interface Descriptor:
      bLength 9
      bDescriptorType 4
      bInterfaceNumber 0
      bAlternateSetting 0
      bNumEndpoints 5
      bInterfaceClass 255 Vendor Specific Class
      bInterfaceSubClass 0
      bInterfaceProtocol 0
      iInterface 0
      ** UNRECOGNIZED: 09 21 10 01 00 01 22 15 00
      Endpoint Descriptor:
        bLength 7
        bDescriptorType 5
        bEndpointAddress 0x81 EP 1 IN
        bmAttributes 2
          Transfer Type Bulk
          Synch Type None
          Usage Type Data
        wMaxPacketSize 0x0040 1x 64 bytes
        bInterval 1
      Endpoint Descriptor:
        bLength 7
        bDescriptorType 5
        bEndpointAddress 0x01 EP 1 OUT
        bmAttributes 2
          Transfer Type Bulk
          Synch Type None
          Usage Type Data
        wMaxPacketSize 0x0040 1x 64 bytes
        bInterval 1
      Endpoint Descriptor:
        bLength 7
        bDescriptorType 5
        bEndpointAddress 0x82 EP 2 IN
        bmAttributes 2
          Transfer Type Bulk
          Synch Type None
          Usage Type Data
        wMaxPacketSize 0x0040 1x 64 bytes
        bInterval 1
      Endpoint Descriptor:
        bLength 7
        bDescriptorType 5
        bEndpointAddress 0x83 EP 3 IN
        bmAttributes 2
          Transfer Type Bulk
          Synch Type None
          Usage Type Data
        wMaxPacketSize 0x0040 1x 64 bytes
        bInterval 1
      Endpoint Descriptor:
        bLength 7
        bDescriptorType 5
        bEndpointAddress 0x03 EP 3 OUT
        bmAttributes 2
          Transfer Type Bulk
          Synch Type None
          Usage Type Data
        wMaxPacketSize 0x0040 1x 64 bytes
        bInterval 1

Revision history for this message
Isaac Emesowum (iemesowum) wrote :

Confirmed on UX390U.

This bug should actually be a feature request. There is currently no support for elantech fingerprint scanners in libfprint. Someone needs to write a driver for it. It's proprietary, so that might be tricky.

Revision history for this message
Daniel Verstegen (verstegen-daan) wrote :

Yep, same here:

Asus Zenbook UX430U

Bus 001 Device 004: ID 04f3:0903 Elan Microelectronics Corp.
Couldn't open device, some information will be missing
Device Descriptor:
  bLength 18
  bDescriptorType 1
  bcdUSB 2.00
  bDeviceClass 0 (Defined at Interface level)
  bDeviceSubClass 0
  bDeviceProtocol 0
  bMaxPacketSize0 8
  idVendor 0x04f3 Elan Microelectronics Corp.
  idProduct 0x0903
  bcdDevice 1.35
  iManufacturer 1
  iProduct 2
  iSerial 0
  bNumConfigurations 1
  Configuration Descriptor:
    bLength 9
    bDescriptorType 2
    wTotalLength 62
    bNumInterfaces 1
    bConfigurationValue 1
    iConfiguration 0
    bmAttributes 0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower 100mA
    Interface Descriptor:
      bLength 9
      bDescriptorType 4
      bInterfaceNumber 0
      bAlternateSetting 0
      bNumEndpoints 5
      bInterfaceClass 255 Vendor Specific Class
      bInterfaceSubClass 0
      bInterfaceProtocol 0
      iInterface 0
      ** UNRECOGNIZED: 09 21 10 01 00 01 22 15 00
      Endpoint Descriptor:
        bLength 7
        bDescriptorType 5
        bEndpointAddress 0x81 EP 1 IN
        bmAttributes 2
          Transfer Type Bulk
          Synch Type None
          Usage Type Data
        wMaxPacketSize 0x0040 1x 64 bytes
        bInterval 1
      Endpoint Descriptor:
        bLength 7
        bDescriptorType 5
        bEndpointAddress 0x01 EP 1 OUT
        bmAttributes 2
          Transfer Type Bulk
          Synch Type None
          Usage Type Data
        wMaxPacketSize 0x0040 1x 64 bytes
        bInterval 1
      Endpoint Descriptor:
        bLength 7
        bDescriptorType 5
        bEndpointAddress 0x82 EP 2 IN
        bmAttributes 2
          Transfer Type Bulk
          Synch Type None
          Usage Type Data
        wMaxPacketSize 0x0040 1x 64 bytes
        bInterval 1
      Endpoint Descriptor:
        bLength 7
        bDescriptorType 5
        bEndpointAddress 0x83 EP 3 IN
        bmAttributes 2
          Transfer Type Bulk
          Synch Type None
          Usage Type Data
        wMaxPacketSize 0x0040 1x 64 bytes
        bInterval 1
      Endpoint Descriptor:
        bLength 7
        bDescriptorType 5
        bEndpointAddress 0x03 EP 3 OUT
        bmAttributes 2
          Transfer Type Bulk
          Synch Type None
          Usage Type Data
        wMaxPacketSize 0x0040 1x 64 bytes
        bInterval 1

Revision history for this message
Tony Tascioglu (tonytash) wrote :
Download full text (3.2 KiB)

Fingerprint scanner on Asus UX330UA running Ubuntu 17.04 and Linux Mint 18.2 not working either.

Bus 001 Device 004: ID 04f3:0903 Elan Microelectronics Corp.
Couldn't open device, some information will be missing
Device Descriptor:
  bLength 18
  bDescriptorType 1
  bcdUSB 2.00
  bDeviceClass 0 (Defined at Interface level)
  bDeviceSubClass 0
  bDeviceProtocol 0
  bMaxPacketSize0 8
  idVendor 0x04f3 Elan Microelectronics Corp.
  idProduct 0x0903
  bcdDevice 1.35
  iManufacturer 1
  iProduct 2
  iSerial 0
  bNumConfigurations 1
  Configuration Descriptor:
    bLength 9
    bDescriptorType 2
    wTotalLength 62
    bNumInterfaces 1
    bConfigurationValue 1
    iConfiguration 0
    bmAttributes 0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower 100mA
    Interface Descriptor:
      bLength 9
      bDescriptorType 4
      bInterfaceNumber 0
      bAlternateSetting 0
      bNumEndpoints 5
      bInterfaceClass 255 Vendor Specific Class
      bInterfaceSubClass 0
      bInterfaceProtocol 0
      iInterface 0
      ** UNRECOGNIZED: 09 21 10 01 00 01 22 15 00
      Endpoint Descriptor:
        bLength 7
        bDescriptorType 5
        bEndpointAddress 0x81 EP 1 IN
        bmAttributes 2
          Transfer Type Bulk
          Synch Type None
          Usage Type Data
        wMaxPacketSize 0x0040 1x 64 bytes
        bInterval 1
      Endpoint Descriptor:
        bLength 7
        bDescriptorType 5
        bEndpointAddress 0x01 EP 1 OUT
        bmAttributes 2
          Transfer Type Bulk
          Synch Type None
          Usage Type Data
        wMaxPacketSize 0x0040 1x 64 bytes
        bInterval 1
      Endpoint Descriptor:
        bLength 7
        bDescriptorType 5
        bEndpointAddress 0x82 EP 2 IN
        bmAttributes 2
          Transfer Type Bulk
          Synch Type None
          Usage Type Data
        wMaxPacketSize 0x0040 1x 64 bytes
        bInterval 1
      Endpoint Descriptor:
        bLength 7
        bDescriptorType 5
        bEndpointAddress 0x83 EP 3 IN
        bmAttributes 2
          Transfer Type Bulk
          Synch Type None
          Usage Type Data
        wMaxPacketSize 0x0040 1x 64 bytes
        bInterval 1
      Endpoint Descriptor:
        bLength 7
        bDescriptorType 5
        bEndpointAddress 0x03 EP 3 OUT
        bmAttributes 2
          Transfer Type Bulk
          Synch Type None
          Usage Type Data
        wMaxPacketSize ...

Read more...

Revision history for this message
Tony Tascioglu (tonytash) wrote :

If it helps, I have attached the driver provided by ASUS for Windows 10 from their website.

http://dlcdnet.asus.com/pub/ASUS/nb/DriversForWin10/Fingerprint/Fingerprint_ELAN_Win10_64_VER15012.zip

Revision history for this message
rhY (rhy) wrote :

Yep. Same issue. UX330U :( WAUGH!!!

Revision history for this message
Arash (ara4sh) wrote :

Same issue Asus UX490

Revision history for this message
Casey Salvador (csalvador) wrote :

I'm having the same issue with Asus UX430UA as well.

Revision history for this message
Dylan Borg (borgdylan) wrote :

The same device i on the Zenbook Pro UX550 as well.

Revision history for this message
Dmitry Korotovsky (rmpic30) wrote :

Looks like I would change my laptop a way faster than Ubuntu team would fix this bug =/

Revision history for this message
Manuel Matas (manuelmatas) wrote :

Same issue with Asus UX550VE. No devices found on Fingerprint GUI 1.09.

Revision history for this message
Toky RALALA (ralala-toky) wrote :

I'm confirming the same issue on ASUS UX530UX too

Revision history for this message
skilo (ramskilo) wrote :

Same here with Zenbook UX430UN.
There's a kernel module named elan_i2c that makes me wonder:
modinfo elan_i2c
filename: /lib/modules/4.10.0-xxxx/kernel/drivers/input/mouse/elan_i2c.ko
version: 1.6.2
license: GPL
description: Elan I2C/SMBus Touchpad driver
author: Duson Lin <email address hidden>
srcversion: 775624509AF59206724C275
alias: i2c:elan_i2c
alias: acpi*:ELAN1000:*
alias: acpi*:ELAN0608:*
alias: acpi*:ELAN0605:*
alias: acpi*:ELAN0600:*
alias: acpi*:ELAN0100:*
alias: acpi*:ELAN0000:*
depends:
intree: Y
vermagic: 4.10.0-38-generic SMP mod_unload

Since the fingerprint sensor is part of the touchpad, it could be managed by this module (?). But in my configuration this is not loaded by default, and it is loaded instead hid_multitouch.ko.
Unfortunately neither load this manually and remove hid_multitouch resolves.

Hope this helps

Revision history for this message
Dani (dtalens) wrote :

I'm confirming the same issue on Xiaomi Air 13 2017

lsusb -v output here: http://paste.ubuntu.com/25923923/

Linux 4.13.0-16-generic #19-Ubuntu SMP Wed Oct 11 18:35:14 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

Distributor ID: Ubuntu
Description: Ubuntu 17.10
Release: 17.10
Codename: artful

Revision history for this message
yanqian (yanqian) wrote :

same issue on ASUS UX310UAK.

Bus 001 Device 005: ID 04f3:0903 Elan Microelectronics Corp.

Revision history for this message
Jerome B (revv-k) wrote :

Same here, with ASUS UX430UA

Revision history for this message
Alberto Martino (malbertom) wrote :

Same here, with ASUS UX430UA

Revision history for this message
Alberto Martino (malbertom) wrote :

Seems that someone is working on that:
https://<email address hidden>/msg00873.html

last message 08-11-2017

Revision history for this message
Alberto Martino (malbertom) wrote :
Revision history for this message
Andrea Nisticò (andrean.pk) wrote :

Did someone try this libfprint's branch with 04f3:0903 (ELAN on Asus UX530UX)?

Revision history for this message
Isaac Emesowum (iemesowum) wrote : Re: [Bug 1641290] Re: [04f3:0903] Elan Microelectronics Corp fingerprint reader not recognised

I gave it a try with 04f3:0903:

"This program will enroll your right index finger, unconditionally
overwriting any right-index print that was enrolled previously. If you want
to continue, press enter, otherwise hit Ctrl+C

Found device claimed by ElanTech Fingerprint Sensor driver
Opened device. It's now time to enroll your finger.

You will need to successfully scan your finger 5 times to complete the
process.

Scan your finger now.
async:error [fpi_drvcb_enroll_stage_completed] BUG at async.c:161
sync:error [fp_enroll_finger_img] unrecognised return code -71"

I used the 'enroll' example binary after building the code at that
location. It's not a device file permission issue. Has this worked for
anyone else?

Isaac

On Nov 28, 2017 13:31, "Andrea Nisticò" <email address hidden> wrote:

Did someone try this libfprint's branch with 04f3:0903 (ELAN on Asus
UX530UX)?

--
You received this bug notification because you are subscribed to the bug
report.
https://bugs.launchpad.net/bugs/1641290

Title:
  [04f3:0903] Elan Microelectronics Corp fingerprint reader not
  recognised

Status in libfprint package in Ubuntu:
  Confirmed

Bug description:
  Running "fprint-demo" with this hardware installed reports "No devices
  found".

  This is the integrated reader in new ASUS ZenBook UX390UA laptops.

  lsusb -v output here: http://paste.ubuntu.com/23464942/

  ProblemType: Bug
  DistroRelease: Ubuntu 16.10
  Package: libfprint0 1:0.6.0-2
  ProcVersionSignature: Ubuntu 4.8.0-27.29-generic 4.8.1
  Uname: Linux 4.8.0-27-generic x86_64
  NonfreeKernelModules: zfs zunicode zcommon znvpair zavl
  ApportVersion: 2.20.3-0ubuntu8
  Architecture: amd64
  CurrentDesktop: Unity
  Date: Sat Nov 12 15:59:17 2016
  InstallationDate: Installed on 2016-11-08 (3 days ago)
  InstallationMedia: Ubuntu 16.10 "Yakkety Yak" - Release amd64 (20161012.2)
  SourcePackage: libfprint
  UpgradeStatus: No upgrade log present (probably fresh install)

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/libfprint/+bug/164
1290/+subscriptions

Revision history for this message
JM (josemesnaola) wrote :

I also gave it a try with 04f3:0903 in ASUS UX490UA.

Unfortunately I obtain the same results as Isaac Emesowum (iemesowum).

Once compiled and installed I'm able to execute fprint_demo (as superuser) and when I try to enroll I get the following errors (I enabled debugging):

elan:debug [elan_cmd_cb] unexpected transfer length
drv:debug [fpi_ssm_mark_aborted] error -71 from state 0
drv:debug [fpi_ssm_mark_completed] 0x55fae265b840 completed with status -71
elan:debug [init_complete]
fp:debug [fpi_imgdev_session_error] error -71
async:error [fpi_drvcb_enroll_stage_completed] BUG at async.c:161
async:debug [fpi_drvcb_enroll_stage_completed] result -71
async:debug [fp_async_enroll_stop]
elan:debug [dev_deactivate]

I also executed enroll (in examples folder) with the same result.
I don't know anything about lsusb so I didn't manage to understand what was going on.

Revision history for this message
Alberto Martino (malbertom) wrote :

The branch sbechet/libfprint is only a "first try"
the developer hasn't figured out yet how to make elan work.

At the moment the device is only added to be a "supported device" but the code on the file

https://github.com/sbechet/libfprint/blob/elan/libfprint/drivers/elan.c

throws an error (-71) on this method:

static void elan_cmd_cb(struct libusb_transfer *transfer)

on line 197 -> else if (transfer->length != transfer->actual_length) //throws the error -71

I'm reporting here the message from Igor Filatov to Sébastien Béchet

> With these devices the scanned area is so small that not many minutiae can
> be found there. I got like 5 o so with my finger and that's what I can
> visually confirm looking at the scanned images. It's not about image
> quality. I think original drivers could be using a different algorithm.
>
> Looks like your device doesn't react normally to 402a (not unexpected). It's
> the third init command in elan.h. Try removing it. Actually, you can try
> removing all commands not found in you traces. Just don't remove the arrays
> with commands for now, leave empty if needed.
>
> It doesn't seem to complicated to adapt the driver based on your traces but
> don't think I'll have any time for it soon…

Revision history for this message
Guilherme de Lázari da Costa e Silva (glazari) wrote :

January 2018 still not working for 04f3:0c1a on Xiaomi notebook Pro

Revision history for this message
Lord_JABA (lordjaba) wrote :

Same on 2017 xiomi notebook air 13.
lsusb:
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 8087:0a2b Intel Corp.
Bus 001 Device 003: ID 04f3:0c1a Elan Microelectronics Corp.
Bus 001 Device 002: ID 04f2:b5a3 Chicony Electronics Co., Ltd
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

uname -a:
Linux slider 4.13.0-32-generic #35~16.04.1-Ubuntu SMP Thu Jan 25 10:13:43 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

Revision history for this message
Timur Celik (clktmr) wrote :

Current official master branch works for me (UX430UA [04f3:0903]).

The only change I made was adding my device to the driver:

@@ -608,6 +608,7 @@ static void dev_deactivate(struct fp_img_dev *dev)

 static const struct usb_id id_table[] = {
  {.vendor = 0x04f3,.product = 0x0907},
+ {.vendor = 0x04f3,.product = 0x0903},
  {0, 0, 0,},
 };

Revision history for this message
Timur Celik (clktmr) wrote :

I added that line to drivers/elan.c. However, after some testing it's not working reliably for me. My fingerprint is recognized in about 1 out of 10 cases only. libfprint doesn't seem to like the images provided by the sensor. Possibly some improvement in the image processing is necessary. I will look into this if I find the time.

Revision history for this message
SN (sigma343) wrote :

where did you find the source code? all the downloads I have seen dont have a elan.c file in the drivers folder.

Revision history for this message
Timur Celik (clktmr) wrote :
Revision history for this message
Igor Filatov (iafilatov) wrote :

I'm the author of the driver for elan. The algorithm which libfprint uses to match fingerprints doesn't like small images like the ones these drivers produce. There's just not enough minutiae (recognizable print-specific points) on them for a reliable match. This means that unless another matching algo is found/implemented, these readers will not work as good with libfprint as they do with vendor drivers.

To get bigger images the driver expects you to swipe the finger over the reader. This works quite well for me with a rectangular 144x64 sensor. Worse than with a real swipe sensor but good enough for day-to-day use. It needs a steady and relatively slow swipe. There are also square 96x96 sensors and I don't know whether they are in fact usable or not because I don't have one. I imagine they'd be less reliable because the resulting image is even smaller. If they can't be made usable with libfprint, I might end up dropping them because it's better than saying they work when they don't.

The latest code is at https://github.com/iafilatov/libfprint. It recongizes 0903, 0907, 0c03, 0c16, 0c1A and 0c26. If you think you have a similar device which isn't listed, please consider adding it to id_table and letting me know if it works. Comments and feedback are also welcome. Just keep in mind that due to reasons above, performance on par with vendor drivers should not be expected.

Revision history for this message
SN (sigma343) wrote :

Thanks very much Igor. This now works on the xiaomi mi 13.3 laptop. I was able to capture a fingerprint and also verify / store it. Any idea how to use it with sddm / kde though? I have tried so many pam.d settings but can't get the fingerprint login prompt to show up.

Revision history for this message
Igor Filatov (iafilatov) wrote :

@SN It should work after you install libpam-fprintd and enroll with fprintd-enroll.

Revision history for this message
Timur Celik (clktmr) wrote :

@Igor Thank you for your work on this! I tried the elan branch of your repo, but it creates lots of false positives for me. After enrolling I can verify with almost every finger. Looking at the scans, this seems to be caused by the movement estimation often being wrong and hence minutiae detection at the edges of the scans (I have a 96x96 sensor).

Revision history for this message
Igor Filatov (iafilatov) wrote :

@Timur Hm, stitching artifacts do produce false minutiae but it shouldn't be that many and they shouldn't be similar. Do you mind sending me some example images?

Revision history for this message
SN (sigma343) wrote :

@Timur Hm

I have a rectangular reader and it seems to make all the difference. It would appear that the driver is not all that accurate so needs a bigger image to validate the swipe. The proprietory drivers are probably just alot better at doing it with smaller images since they are designed around specific devices and not generically like libfprint.

Revision history for this message
SN (sigma343) wrote :

@Igor

finally got it working. turns out the manjaro config in pam.d is slightly different. as a bonus it also works with sudo I had to use this thread though because it seems to be the only discussion actually active and going somewhere with the elan drivers. you should merge your source into the main branch so that distributions can package it

Revision history for this message
Igor Filatov (iafilatov) wrote :

@SN Fprint mailing list has been quite active recently https://lists.freedesktop.org/archives/fprint/2018-January/thread.html

The main branch has an earlier version of the driver that only supports 0907. I don't think it would be wise to merge the rest just yet because it's still not so good with some readers (in particular, the square ones).

Revision history for this message
SN (sigma343) wrote :

@Igor I spoke to soon. the sddm support on arch with pam is super buggy. The login screen does not work at all (actually locks you out because it fails to fallback to your normal password) and the lock screen despite working does the same as the login screen if you mis scan the fingerprint on the initial try.

Revision history for this message
SN (sigma343) wrote :

I wish kde / sddm had the same sleek integration as gdm but that seems a long way off. just seems like a strange feature to ignore given all the devices with fingerprint scanners

Revision history for this message
Igor Filatov (iafilatov) wrote :

@SN The integration with PAM and and other flows that require auth is indeed lacking in some places. For. ex. with gdm/mdm login does fall back to password but even if you log in with fp, you need to enter the password later to unlock your keyring, so... And if your home is encrypted, you can't log in with fp at all so you need to make it fail 3 times before giving you a pw prompt. Then, gksu doesn't display any message that you need to use the fp reader and you have no indication that you need to do it besides a blinking led. If you don't have a led, well...

Revision history for this message
SN (sigma343) wrote :

yeah I never got the prompt on the main sddm login as well, causes alot of confusion!

Revision history for this message
Pauline (plnlnc) wrote :

Bug confirmed on Dell Inspiron 7000 with fingerprint reader: 04f3:0c01

$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 04f3:0c01 Elan Microelectronics Corp.
Bus 001 Device 003: ID 8087:0a2a Intel Corp.
Bus 001 Device 002: ID 0c45:6715 Microdia

$ uname -a
Linux dell 4.13.0-32-generic #35-Ubuntu SMP Thu Jan 25 09:13:46 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

Revision history for this message
Igor Filatov (iafilatov) wrote :

The driver now supports 0x0903, 0x0907 and 0x0c01 through 0x0c33. Looking for volunteers to try it out :)

git clone https://github.com/iafilatov/libfprint
cd libfprint
./autogen.sh
make
examples/img_capture # capture an image as finger.pgm
examples/enroll # enroll your print
examples/verify # verify against the enrolled print

Please also read my post #41 above.

If it doesn't work or seems to work but is very unreliable, please post or send me the output of the command you're running (it's quite long) and describe the problem.

Revision history for this message
Pauline (plnlnc) wrote :

Hi Igor,

First, thank you for your efforts in resolving this bug :-)

My fingerprint reader is 0x0c01. Here is the result of my testing:
- enrolling the finger works as expected, and an image is generated
- verifying the finger is more difficult. The verification doesn't work most of the time (it occasionally does, though).

I will be sending you the output I got.

Cheers!

Revision history for this message
Enrique Hernández Bello (ehbello) wrote :

#55 the same for me.

Revision history for this message
mirek koc (mirek190) wrote :

I have ELAN fingerprint sensor integrated into touch pad BUT KERNEL can not even register it to the system.

I'm getting error from the kernel log

- i2c i2c-7 Failed to register i2c client ELAN2210:00 at 0x10 (-16)
- i2c i2c-7 failed to add I2C device ELAN2210:00 from ACPI

So .. my ELAN fingerprint is not visible at all in USB, HARDWARE or PCI ...

Do you have any idea to to fix it IN KERNEL ?

Thanks for any clue ...

Revision history for this message
Igor Filatov (iafilatov) wrote :

@mirek libfprint only handles usb devices, not i2c. If there's nothing in lsusb (could you post the output btw?), libfprint won't work.

Revision history for this message
mirek koc (mirek190) wrote :

Sorry I answer so late but i was busy ;-)

MY log about ELAN fingerprint - i2c error

Revision history for this message
mirek koc (mirek190) wrote :

also my lsusb

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 0580:3861 Denron, Inc.
Bus 001 Device 003: ID 8087:0a2a Intel Corp.
Bus 001 Device 002: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Like you see kernel not initiate fingerprint device

Revision history for this message
Mustafa (malammar) wrote :
Download full text (3.6 KiB)

@Igor I compiled and ran the tests for your latest driver and found that it would not correctly enroll my fingerprint on the Asus UX490UA which uses the ELAN 04f3:0903 device.

This is the output:

====================================================

This program will enroll your right index finger, unconditionally overwriting any right-index 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 aes3500
fp:debug [register_driver] registered driver aes4000
fp:debug [register_driver] registered driver aes2501
fp:debug [register_driver] registered driver aes2550
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 aes1660
fp:debug [register_driver] registered driver aes2660
fp:debug [register_driver] registered driver vfs101
fp:debug [register_driver] registered driver vfs301
fp:debug [register_driver] registered driver vfs5011
fp:debug [register_driver] registered driver upektc
fp:debug [register_driver] registered driver upektc_img
fp:debug [register_driver] registered driver etes603
fp:debug [register_driver] registered driver vfs0050
fp:debug [register_driver] registered driver elan
fp:debug [find_supporting_driver] driver elan supports USB device 04f3:0903
fp:debug [find_supporting_driver] selected driver elan supports USB device 04f3:0903
Found device claimed by ElanTech Fingerprint Sensor driver
sync:debug [fp_dev_open]
async:debug [fp_async_dev_open]
elan:debug [dev_init]
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.

Scan your finger now.
sync:debug [fp_enroll_finger_img]
async:debug [fp_async_enroll_start] starting enrollment
fp:debug [generic_acquire_start] action 1
elan:debug [dev_activate]
elan:debug [elan_activate]
elan:debug [elan_dev_reset]
drv:debug [__ssm_call_handler] 0x10bac00 entering state 0
elan:debug [elan_run_cmd] 4019
sync:debug [fp_enroll_finger_img] elan will handle enroll stage 0/4
elan:debug [elan_cmd_cb]
elan:debug [elan_cmd_cb] transfer timed out
drv:debug [fpi_ssm_mark_aborted] error -110 from state 0
drv:debug [fpi_ssm_mark_completed] 0x10bac00 completed with status -110
elan:debug [activate_complete]
fp:debug [fpi_imgdev_activate_complete] status -110
async:debug [fpi_drvcb_enroll_started] status -110
sync:debug [sync_enroll_cb] result -110
sync:error [fp_enroll_finger_img] unrecognised return code -110
sync:debug [fp_enroll_finger_img] ending enrollment
async:debug [fp_async_enroll_stop]
elan:debug [dev_deactivate]
elan:debug [elan_deactivate]
elan:debug [elan_dev_reset]
drv:debug [__ssm_call_handler] 0x10bac00 entering state 0
elan:debug [deactivate_run_state]
elan:debug [elan_run_cmd] 000b
elan:debug [elan_cmd_cb]
elan:debug [elan_cmd_cb] transfer timed out
drv:debug [f...

Read more...

Revision history for this message
Igor Filatov (iafilatov) wrote :

@mirek If the device is not recognized, there's nothing libfprint can do. You can maybe try a more recent kernel. See https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1700657 for a similar bug

@Mustafa You have 0x0903 reader which should work (more or less) but the problem is it doesn't respond to commands at all. Not sure why, maybe try another usb port, if possible.

Revision history for this message
Pauline (plnlnc) wrote :

Hi,

I've been retrying, scanning my finger as per Igor's instructions (see below).

For the reminder, my fingerprint scanner is a 04f3:0c01, and my laptop is a Dell Inspiron 7000.

Observations on using the fingerprint scanner:
- scanning a finger with libfprint on a 04f3:0c01 is different than the fingerprint scanners I'm used to (e.g. the typical smartphone scanner, where you just place your finger on the scanner and expect it to read your fingerprint correctly).
- In order for libfprint to successfully read your fingerprint, you need to swipe your finger on the scanner, like that: http://docs.esupport.sony.com/pc/SVS1311_13A1_1511_series/EN/contents/03/17/07/01/01/01/01/02/02.png
- Using this method to scan my finger, the image produced by the scanner seems to be of an acceptable quality.

Success rates:
- After I've enrolled my finger, I ran the verification 10 times, and it successfully matched it to my enrolled finger 6 times.

The scanner seems to be extremely sensitive to the movement you're doing to enroll your finger - if there is any variation (e.g. swipe slightly less, or slighly more of your finger, or apply a slightly different pressure), then the verification fails. I think that's why the verification fails about 40% of the time - as the movement done isn't strictly the same, and differs slightly from the one made at enrollment time, the verification fails.

Revision history for this message
Igor Filatov (iafilatov) wrote :

@Pauline Essentially, you need to produce a scan that's similar to one of the enrolled scans. In my experience, one of the best things you can do to improve recognition is to move your finger in a straight line. Don't bend your finger until the last moment when you need to scan the finger tip. Try pulling it along the sensor moving the entire palm of your hand. If you observe the images, the ones that are the least curved are the best.

BTW another person found a bug in stitching code a few days ago. When it's fixed, the recognition rate should improve somewhat.

Revision history for this message
Aless Jeant (aless-jeant) wrote :

@Igor it's awesome what you've done to add support for elan fingerprinters! however I just tried your examples, and there's a few issues (Asus Zenbook 3, ux390, with usb fingerprint reader 04f3:0903, square on top of touchpad).
I was able to scan a few times with the image capture examples, but the scans never quite stitch together properly, and the enroll was stuck most times, then it enrolled once and it got stuck on verification so I ctrl+c'd it, and now it seems stuck and timeouts each time I try one of the two example programs. I attached the CLI outputs.
Thank you again for your amazing work!

Revision history for this message
Igor Filatov (iafilatov) wrote :

@Aless

Thank you! It's hard to tell just from the logs but it looks like you don't move your finger enough during swipe. Did you just hold in on the reader till it said "please try again"? Does enrolled.pgm look like a stripe from a fingerprint image? You need to swipe all the way to finger tip and then raise the finger.

Your reader got stuck because you aborted the sequence when it was waiting for finger. Is this state it doesn't respond to other commands until a finger press is detected. If you just touch the reader once it should recover. I can't induce this state just by ctrl+c'ing at the same place but I remember getting into it when sending commands manually, so... I think I have an idea how to help this, will try making some changes.

Revision history for this message
Igor Filatov (iafilatov) wrote :

I've added some fixes to frame assembling code (bugs found and fixed by Timur Celik (clktmr), hope he sumbits the patch upstream). They they can improve stitching for your Elan scanner a little or a lot, depending on the direction in which you swipe (which can differ even on identical readers depending on how the device is oriented).

Revision history for this message
Ben Selinger (blistovmhz) wrote :
Download full text (3.9 KiB)

Same issue here as Malammar. The first time I tried 'sudo ./enroll', it did read my print and I did get a pgm out of it. Subsequent tests however just time out, like so:

bens@quadrillion /usr/local/src/libfprint/examples $ sudo ./enroll
This program will enroll your right index finger, unconditionally overwriting any right-index 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 aes3500
fp:debug [register_driver] registered driver aes4000
fp:debug [register_driver] registered driver aes2501
fp:debug [register_driver] registered driver aes2550
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 aes1660
fp:debug [register_driver] registered driver aes2660
fp:debug [register_driver] registered driver vfs101
fp:debug [register_driver] registered driver vfs301
fp:debug [register_driver] registered driver vfs5011
fp:debug [register_driver] registered driver upektc
fp:debug [register_driver] registered driver upektc_img
fp:debug [register_driver] registered driver etes603
fp:debug [register_driver] registered driver vfs0050
fp:debug [register_driver] registered driver elan
fp:debug [find_supporting_driver] driver elan supports USB device 04f3:0903
fp:debug [find_supporting_driver] selected driver elan supports USB device 04f3:0903
Found device claimed by ElanTech Fingerprint Sensor driver
sync:debug [fp_dev_open]
async:debug [fp_async_dev_open]
elan:debug [dev_init]
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.

Scan your finger now.
sync:debug [fp_enroll_finger_img]
async:debug [fp_async_enroll_start] starting enrollment
fp:debug [generic_acquire_start] action 1
elan:debug [dev_activate]
elan:debug [elan_activate]
elan:debug [elan_dev_reset]
drv:debug [__ssm_call_handler] 0x1f9cce0 entering state 0
elan:debug [elan_run_cmd] 4019
sync:debug [fp_enroll_finger_img] elan will handle enroll stage 0/4
elan:debug [elan_cmd_cb]
elan:debug [elan_cmd_cb] transfer timed out
drv:debug [fpi_ssm_mark_aborted] error -110 from state 0
drv:debug [fpi_ssm_mark_completed] 0x1f9cce0 completed with status -110
elan:debug [activate_complete]
fp:debug [fpi_imgdev_activate_complete] status -110
async:debug [fpi_drvcb_enroll_started] status -110
sync:debug [sync_enroll_cb] result -110
sync:error [fp_enroll_finger_img] unrecognised return code -110
sync:debug [fp_enroll_finger_img] ending enrollment
async:debug [fp_async_enroll_stop]
elan:debug [dev_deactivate]
elan:debug [dev_change_state] 0
poll:debug [fpi_timeout_add] in 10ms
poll:debug [get_next_timeout_expiry] next timeout in 0.009986s
poll:debug [get_next_timeout_expiry] first timeout already expired
poll:debug [handle_timeout]
elan:debug [elan_change_state] 0
elan:debug [elan...

Read more...

Revision history for this message
Igor Filatov (iafilatov) wrote :

Unfortunately I have no idea right now what could could cause the reader to get stuck like that... Does it recover eventually or after a reboot? If it does, could you please record the entire log including a successful enrollment and a timeout afterwards?

As for fprint_demo, for me it needs to run as root to see the device.

Revision history for this message
Mustafa (malammar) wrote :
Download full text (47.3 KiB)

Hi @Igor,

I restarted and the reader does recover, but I run into the same issue as before when I try to re-enroll:

Here's the log:

=====================================
╰─$ sudo examples/enroll
This program will enroll your right index finger, unconditionally overwriting any right-index 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 aes3500
fp:debug [register_driver] registered driver aes4000
fp:debug [register_driver] registered driver aes2501
fp:debug [register_driver] registered driver aes2550
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 aes1660
fp:debug [register_driver] registered driver aes2660
fp:debug [register_driver] registered driver vfs101
fp:debug [register_driver] registered driver vfs301
fp:debug [register_driver] registered driver vfs5011
fp:debug [register_driver] registered driver upektc
fp:debug [register_driver] registered driver upektc_img
fp:debug [register_driver] registered driver etes603
fp:debug [register_driver] registered driver vfs0050
fp:debug [register_driver] registered driver elan
fp:debug [find_supporting_driver] driver elan supports USB device 04f3:0903
fp:debug [find_supporting_driver] selected driver elan supports USB device 04f3:0903
Found device claimed by ElanTech Fingerprint Sensor driver
sync:debug [fp_dev_open]
async:debug [fp_async_dev_open]
elan:debug [dev_init]
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.

Scan your finger now.
sync:debug [fp_enroll_finger_img]
async:debug [fp_async_enroll_start] starting enrollment
fp:debug [generic_acquire_start] action 1
elan:debug [dev_activate]
elan:debug [elan_activate]
elan:debug [elan_dev_reset]
drv:debug [__ssm_call_handler] 0x72ab00 entering state 0
elan:debug [elan_run_cmd] 4019
sync:debug [fp_enroll_finger_img] elan will handle enroll stage 0/4
elan:debug [elan_cmd_cb]
elan:debug [elan_cmd_read]
elan:debug [elan_cmd_cb]
elan:debug [elan_cmd_done]
drv:debug [__ssm_call_handler] 0x72ab00 entering state 1
elan:debug [activate_run_state] FW ver 0x0135
drv:debug [__ssm_call_handler] 0x72ab00 entering state 2
elan:debug [elan_run_cmd] 000c
elan:debug [elan_cmd_cb]
elan:debug [elan_cmd_read]
elan:debug [elan_cmd_cb]
elan:debug [elan_cmd_done]
drv:debug [__ssm_call_handler] 0x72ab00 entering state 3
elan:debug [activate_run_state] sensor dimensions, WxH: 96x96
drv:debug [__ssm_call_handler] 0x72ab00 entering state 4
elan:debug [elan_run_cmd] 402a
elan:debug [elan_run_cmd] skipping for this device
elan:debug [elan_cmd_done]
drv:debug [fpi_ssm_mark_completed] 0x72ab00 completed with status 0
elan:debug [activate_complete]
elan:debug [elan_calibrate]
elan:debug [elan_dev_reset]
drv:debug [__ssm_ca...

Revision history for this message
Igor Filatov (iafilatov) wrote :

@Mustafa this is probably unrelated but I think you're pressing, not swiping. Img height too low, plus too little minutiae:

assembling:debug [fpi_assemble_frames] height is -131
fp:debug [fpi_img_new] length=26064
fp:debug [fpi_imgdev_image_captured]
fp:debug [fpi_img_detect_minutiae] minutiae scan completed in 0.009151 secs
fp:debug [fpi_img_detect_minutiae] detected 0 minutiae
fp:debug [print_data_new] driver=15 devtype=0000
fp:debug [fpi_imgdev_image_captured] not enough minutiae, 0/10

Try opening enroll.pgm with an image viewer. If capture goes fine, it should have a mostly correct partial fingerprint image. Also, it seems like you're using an older version. See if you can update. If anything, the latest has some image stitching issues fixed.

Revision history for this message
Mihai Banu (m-banu94) wrote :

lsusb:
Bus 002 Device 002: ID 0bda:0411 Realtek Semiconductor Corp.
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 04f3:0c03 Elan Microelectronics Corp.
Bus 001 Device 004: ID 04f2:b580 Chicony Electronics Co., Ltd
Bus 001 Device 003: ID 04ca:3016 Lite-On Technology Corp.
Bus 001 Device 002: ID 0bda:5411 Realtek Semiconductor Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

uname -a:
Linux mihai-Aspire-S5-371 4.13.0-36-generic #40-Ubuntu SMP Fri Feb 16 20:07:48 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

no luck getting it to work. Could someone help please? Thank you!

Revision history for this message
Igor Filatov (iafilatov) wrote :
Revision history for this message
Svyatoslav (chgcool) wrote :

I have 0903.

Successfully installed driver.
First time I ran $:examples/img_capture it was fine;
then $:examples/enroll was also going fine and even managed to enroll the fingerprint for several times, but then stopped for some reason.
After that I never managed even to launch first command, got such report:
fp:debug [fp_init]
fp:debug [register_driver] registered driver upekts
fp:debug [register_driver] registered driver aes3500
fp:debug [register_driver] registered driver aes4000
fp:debug [register_driver] registered driver aes2501
fp:debug [register_driver] registered driver aes2550
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 aes1660
fp:debug [register_driver] registered driver aes2660
fp:debug [register_driver] registered driver vfs101
fp:debug [register_driver] registered driver vfs301
fp:debug [register_driver] registered driver vfs5011
fp:debug [register_driver] registered driver upektc
fp:debug [register_driver] registered driver upektc_img
fp:debug [register_driver] registered driver etes603
fp:debug [register_driver] registered driver vfs0050
fp:debug [register_driver] registered driver elan
fp:debug [find_supporting_driver] driver elan supports USB device 04f3:0903
fp:debug [find_supporting_driver] selected driver elan supports USB device 04f3:0903
Found device claimed by ElanTech Fingerprint Sensor driver
sync:debug [fp_dev_open]
async:debug [fp_async_dev_open]
elan:debug [dev_init]
async:debug [fpi_drvcb_open_complete] status 0
sync:debug [sync_open_cb] status 0
Opened device. It's now time to scan your finger.

sync:debug [fp_dev_img_capture] to be handled by elan
async:debug [fp_async_capture_start]
fp:debug [generic_acquire_start] action 4
elan:debug [dev_activate]
elan:debug [elan_activate]
elan:debug [elan_dev_reset]
drv:debug [__ssm_call_handler] 0x1bd9100 entering state 0
elan:debug [elan_run_cmd] 4019
elan:debug [elan_cmd_cb]
elan:debug [elan_cmd_cb] transfer timed out
drv:debug [fpi_ssm_mark_aborted] error -110 from state 0
drv:debug [fpi_ssm_mark_completed] 0x1bd9100 completed with status -110
elan:debug [activate_complete]
fp:debug [fpi_imgdev_activate_complete] status -110
async:debug [fpi_drvcb_capture_started]
sync:error [fp_dev_img_capture] unrecognised return code -110
sync:debug [fp_dev_img_capture] ending capture
async:debug [fp_async_capture_stop]
elan:debug [dev_deactivate]
elan:debug [dev_change_state] 0
poll:debug [fpi_timeout_add] in 10ms
poll:debug [get_next_timeout_expiry] next timeout in 0.009990s
poll:debug [get_next_timeout_expiry] first timeout already expired
poll:debug [handle_timeout]
elan:debug [elan_change_state] already in 0

won't stop without force quit.

Revision history for this message
Svyatoslav (chgcool) wrote :

Make clean and make distclean didn't help

Revision history for this message
Aless Jeant (aless-jeant) wrote :

Hey, I just tried again after I pulled the new upstream, this time I was able to get to enroll a fingerprint, and when I tried to verify it it never succeeded, no matter how much I tried to repeat the exact same movement. After that the device seemed to become busy as it did the last time, so this time it timed out a bunch of times. As you are saying this is more of an issue relating to the hardware, it would be nice to instruct it to shutdown after use as well! anyway, I'll be glad to hear about the development on this, keep up the great work! (and if anything, it's cool to see my actual fingerprint scan! Would there be a way to store all the frames separately, in order to work on improving the stitching? I'm not sure how it all works, but I believe with improved stitching one could allow similar usage to the windows version, where the entire fingerprint is scanned from all angles and stitched in a nice way, so that the fingerprint can then be verified over a smaller area by just touching the sensor :)

Revision history for this message
Igor Filatov (iafilatov) wrote :

@Aless

Thanks for testing!

> Hey, I just tried again after I pulled the new upstream

The log doesn't look like it's from from the latest. Sorry, stupid question: did you rebuild after pulling? Not that it would fix the busy problem (I'd be surprised if it did). Unfortunately...

> it never succeeded, no matter how much I tried to repeat the exact same movement

Can't say for sure, but just seeing from the logs most of the time the scanned image appears to be not so good. The assembled height is quite low. Not enough movement?

> this is more of an issue relating to the hardware, it would be nice to instruct it to shutdown after use as well

I really don't know what it's related to. I think your 0903 used to work ok for people earlier. Although I don't have any reports where it did and then didn't, so could be a combination of factors.
The driver is unconditionally sending a shutdown command (what seems to be the closest thing) but the problem is, I don't think the reader responds to it. Because it's stuck.
Can I ask you to do an experiment (more like a shot in the dark)? It looks like the problem only occurs on enroll. Can you please try running img_capture like 20 times in a row and see if it fails at some point?

> Would there be a way to store all the frames separately

Not without a small hack. I can send you a patch if you want.

> entire fingerprint is scanned from all angles and stitched in a nice way, so that the fingerprint can then be verified over a smaller area by just touching the sensor

Unfortunately, it's not that "simple". Long story short, even with perfect stitching, you'd need to scan and assemble the entire print on each verification. I believe win (and smartphones etc) use an entirely different *comparison* algo.

Revision history for this message
Foaly (foalyy) wrote :

Hi Igor,

I was looking to make the fp sensor on my new UX430UN notebook on ArchLinux and I found this subject. Here is my config and the results of my tests with the latest version cloned from https://github.com/iafilatov/libfprint.

lsusb -v : https://pastebin.com/ZSjAk2Ws

img_capture works... sometimes. When it doesn't I get a "image capture failed, code -22" error. I have the feeling that it happens when I don't "insist" enough while putting my finger on the sensor. For example, pressing it without moving for a second works, but swiping it more quickly doesn't ("-22"). Unfortunately, as you explained earlier, libfprint expects a swipe and the result images are pretty bad if I don't swipe. I can get relatively decent results when I swipe slowly [for libfprint] then keep pressing the tip of the finger (without moving) for half a second [to not get "error -22"].

I strugle to obtain a good-looking image like the one that is shown on github though (with the "center of the fingerprint"). I tried different movements, and it seems it works a bit better with the middle finger that with the index according to the image results, but I can't get "verify" to get a match ("enroll" mostly work even though I get get a lot of "swipe too short, try again").

If you want to try to improve this sensor's support in the library, I'd be more than happy to provide you as many test images and logs as you'd need. Please tell me how you'd like to exchange email addresses.

Thanks a lot for your time!

Revision history for this message
Mihai Banu (m-banu94) wrote :

Is it possible to use this to login to ubuntu instead of password? If so, how? my last attempt at this libfprint ended with a terminal that continuously scanned my fingers than checked if the scans are any good.

Thanks in advance!

Revision history for this message
Jose Baeza (baeza-jos-t) wrote :

Hi Igor,

I got this error when executing autogen.sh:
./configure: line 16282: syntax error near unexpected token `LIBUSB,'
./configure: line 16282: `PKG_CHECK_MODULES(LIBUSB, libusb-1.0 >= 0.9.1)'

Can you help me?

Revision history for this message
Igor Filatov (iafilatov) wrote :

@Mihai
To use login with fingerprint you need to install libpam-frpintd package. But first make sure you can enroll and verify reasonably well using fprint_demo (package called fprint-demo).

@Jose
You need pkg-config. I.e. apt install pkg-config or whatever works for your distro.

Revision history for this message
Jose Baeza (baeza-jos-t) wrote :

Now I get this message:

"checking for LIBUSB... no
configure: error: Package requirements (libusb-1.0 >= 0.9.1) were not met:

No package 'libusb-1.0' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables LIBUSB_CFLAGS
and LIBUSB_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details."

BUT, libusb-1.0.0 it IS installed! Sorry. I haven't used the console in the past 6 years!

Revision history for this message
Igor Filatov (iafilatov) wrote :

@Jose
Normally when configure says it can't find package foo, you need foo-dev (headers). Try installing libusb-dev.

Revision history for this message
Luca Bognolo (m01l17c21r18) wrote :
Download full text (28.3 KiB)

Hi,
img_capture worked, but enroll didn't. Subsequent attempts with img_capture failed with similar problem as enroll. Maybe device not released properly? Will try to reboot the laptop and if things change will post again.
Thanks for your efforts!

lsusb output:
...
Bus 001 Device 007: ID 04f3:0903 Elan Microelectronics Corp.
...

uname -a
Linux Asus-UX430U 4.13.0-39-generic #44-Ubuntu SMP Thu Apr 5 14:25:01 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

examples/img_capture
fp:debug [fp_init]
fp:debug [register_driver] registered driver upekts
fp:debug [register_driver] registered driver aes3500
fp:debug [register_driver] registered driver aes4000
fp:debug [register_driver] registered driver aes2501
fp:debug [register_driver] registered driver aes2550
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 aes1660
fp:debug [register_driver] registered driver aes2660
fp:debug [register_driver] registered driver vfs101
fp:debug [register_driver] registered driver vfs301
fp:debug [register_driver] registered driver vfs5011
fp:debug [register_driver] registered driver upektc
fp:debug [register_driver] registered driver upektc_img
fp:debug [register_driver] registered driver etes603
fp:debug [register_driver] registered driver vfs0050
fp:debug [register_driver] registered driver elan
fp:debug [find_supporting_driver] driver elan supports USB device 04f3:0903
fp:debug [find_supporting_driver] selected driver elan supports USB device 04f3:0903
Found device claimed by ElanTech Fingerprint Sensor driver
sync:debug [fp_dev_open]
async:debug [fp_async_dev_open]
elan:debug [dev_init]
async:debug [fpi_drvcb_open_complete] status 0
sync:debug [sync_open_cb] status 0
Opened device. It's now time to scan your finger.

sync:debug [fp_dev_img_capture] to be handled by elan
async:debug [fp_async_capture_start]
fp:debug [generic_acquire_start] action 4
elan:debug [dev_activate]
elan:debug [elan_activate]
elan:debug [elan_dev_reset]
drv:debug [__ssm_call_handler] 0x5583508ce660 entering state 0
elan:debug [elan_run_cmd] 4019
elan:debug [elan_cmd_cb]
elan:debug [elan_cmd_read]
elan:debug [elan_cmd_cb] 0135
elan:debug [elan_cmd_done]
drv:debug [__ssm_call_handler] 0x5583508ce660 entering state 1
elan:debug [activate_run_state] FW ver 0x0135
drv:debug [__ssm_call_handler] 0x5583508ce660 entering state 2
elan:debug [elan_run_cmd] 000c
elan:debug [elan_cmd_cb]
elan:debug [elan_cmd_read]
elan:debug [elan_cmd_cb] 6000... (4 bytes)
elan:debug [elan_cmd_done]
drv:debug [__ssm_call_handler] 0x5583508ce660 entering state 3
elan:debug [activate_run_state] sensor dimensions, WxH: 96x96
drv:debug [__ssm_call_handler] 0x5583508ce660 entering state 4
elan:debug [elan_run_cmd] 402a
elan:debug [elan_run_cmd] skipping for this device
elan:debug [elan_cmd_done]
drv:debug [fpi_ssm_mark_completed] 0x5583508ce660 completed with status 0
elan:debug [activate_complete]
elan:debug [elan_calibrate]
elan:debug [elan_dev_reset]
drv:debug [__ssm_call_handler] 0x5583508cad10 enteri...

Revision history for this message
Igor Filatov (iafilatov) wrote :

@Luca
There's a problem with 0903 that for many people it locks up during enroll. It seems to happen pretty some people but I don't know why and can't diagnose because I don't own this model. All I see in logs is that it stops responding while waiting for an image... and doesn't recover until you power-cycle it.

Revision history for this message
Jose Baeza (baeza-jos-t) wrote :

@Igor

Now I get:
No package 'nss' found

I have not been able to found it.

Moreover, which packets do I need to execute autogen.sh???

Thanks

Revision history for this message
Igor Filatov (iafilatov) wrote :

@Jose
Try libnss3-dev. I don't have the exact package names for libfprint and there isn't one provided because they could change from one distro to another, some people prefer to compile deps from source etc. The usual way to go is run ./configure (or autogen.sh) fixing each error one-by-one till it works. Here's a list which might help, but it's not "complete" or universal. Don't install stuff until you get an error saying it's needed.
libglib2.0-dev
libnss3-dev
libpixman-1-dev
libudev-dev
libusb-1.0.0-dev
libxv-dev

Revision history for this message
Matt Heck (hpg-mheck) wrote :

Hello! First, please let me congratulate all of you on your persistent troubleshooting efforts. I recently picked up an Acer Spin 5, which has a newer ELAN unit in it, so I thought I'd see if I could help. I use this system primarily for software development under Fedora 28, so I should be in a good position to help test the hardware, if not the Ubuntu-specific login process.

The unit in this laptop enumerates as:
Bus 001 Device 003: ID 04f3:25a1 Elan Microelectronics Corp.

I have installed code from GitHub, current as of today. Without even adding the model to the driver, the test program properly read and verified a print, at least some of the time. There are issues but the point is it worked at least once, using the test utilities.

I added the 25a1 model code to the driver list, and installed, but as yet, fprintd-enroll still fails:

[mheck@localhost ~]$ fprintd-enroll
list_devices failed: No devices available
[mheck@localhost ~]$ sudo fprintd-enroll
[sudo] password for mheck:
list_devices failed: No devices available

I'm not sure what's going on with that, but in any case, the model number "25a1" seems supportable, since it works with the standalone test programs, and should probably be added to the model list.

Anything else I can do to help add support for that particular model? Seems to be recent, but deliberately backward compatible.

Revision history for this message
Igor Filatov (iafilatov) wrote :

@Matt
Thanks for your input!
25a1 is not is the list of supported models so I'm pretty sure the driver wouldn't pick it up without modification. It only recognizes 0903, 0907 and 0c01-0c33. Are you sure it's not something else, maybe touchpad? What does lsusb | grep 04f3 show? Could you please compile with debug support (https://github.com/iafilatov/libfprint#trying-it-out) and paste the first ~30 lines of examples/img_capture?

For fprintd(-enroll) to work you need fprintd to link against the compiled and installed libfprint lib. If you installed fprintd as a package, it likely pulled original libfprint as dependency and keeps using it. See ldd `which fprintd` | grep libfprint. If it's not in /usr/local/... , it's the original one. You may need to [configure and] run ldconfig.

Revision history for this message
Jeroen Lodewijks (ubuntu-wondercool) wrote :

Hi, I have an Dell Latitude 7370 with an Elan fingerprint reader and can't get it to work

jeroen@nice:~/libfprint$ lsusb | grep -i elan
Bus 001 Device 003: ID 04f3:2335 Elan Microelectronics Corp.

I tried your fork of libprintf, Igor, and noticed you don't support ID 04f3:2335.
I added it to elan.h but unfortunately no joy:

jeroen@nice:~/libfprint/builddir_dbg/examples$ sudo ./enroll
This program will enroll your right index finger, unconditionally overwriting any right-index 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 aes3500
fp:debug [register_driver] registered driver aes4000
fp:debug [register_driver] registered driver aes2501
fp:debug [register_driver] registered driver aes2550
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 aes1660
fp:debug [register_driver] registered driver aes2660
fp:debug [register_driver] registered driver vfs101
fp:debug [register_driver] registered driver vfs301
fp:debug [register_driver] registered driver vfs5011
fp:debug [register_driver] registered driver upektc
fp:debug [register_driver] registered driver upektc_img
fp:debug [register_driver] registered driver etes603
fp:debug [register_driver] registered driver vfs0050
fp:debug [register_driver] registered driver elan
fp:debug [find_supporting_driver] driver elan supports USB device 04f3:2335
fp:debug [find_supporting_driver] selected driver elan supports USB device 04f3:2335
Found device claimed by ElanTech Fingerprint Sensor driver
sync:debug [fp_dev_open]
async:debug [fp_async_dev_open]
elan:debug [dev_init]
elan:error [dev_init] could not claim interface 0: LIBUSB_ERROR_BUSY
async:error [fp_async_dev_open] device initialisation failed, driver=elan
Could not open device.
fp:debug [fp_exit]

Revision history for this message
Igor Filatov (iafilatov) wrote :

@Jeroen

04f3:2335 is the touchscreen. I found full lsusb output at https://wiki.archlinux.org/index.php/Dell_Latitude_7370#lsusb and I don't know which of those is fingerprint reader, if any.

Revision history for this message
Jeroen Lodewijks (ubuntu-wondercool) wrote :

Ouch what a mistake to make!
Not sure what the fingerprint reader is:

jeroen@nice:~$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 0bda:5768 Realtek Semiconductor Corp.
Bus 001 Device 004: ID 0a5c:5834 Broadcom Corp.
Bus 001 Device 003: ID 04f3:2335 Elan Microelectronics Corp.
Bus 001 Device 002: ID 8087:0a2b Intel Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
jeroen@nice:~$ lspci
00:00.0 Host bridge: Intel Corporation Skylake Host Bridge/DRAM Registers (rev 08)
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 515 (rev 07)
00:04.0 Signal processing controller: Intel Corporation Skylake Processor Thermal Subsystem (rev 08)
00:14.0 USB controller: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller (rev 21)
00:14.2 Signal processing controller: Intel Corporation Sunrise Point-LP Thermal subsystem (rev 21)
00:16.0 Communication controller: Intel Corporation Sunrise Point-LP CSME HECI #1 (rev 21)
00:17.0 SATA controller: Intel Corporation Sunrise Point-LP SATA Controller [AHCI mode] (rev 21)
00:1c.0 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port (rev f1)
00:1c.7 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #8 (rev f1)
00:1d.0 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #9 (rev f1)
00:1f.0 ISA bridge: Intel Corporation Device 9d46 (rev 21)
00:1f.2 Memory controller: Intel Corporation Sunrise Point-LP PMC (rev 21)
00:1f.3 Audio device: Intel Corporation Sunrise Point-LP HD Audio (rev 21)
00:1f.4 SMBus: Intel Corporation Sunrise Point-LP SMBus (rev 21)
6c:00.0 Network controller: Intel Corporation Wireless 8260 (rev 3a)
6d:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS525A PCI Express Card Reader (rev 01)

Revision history for this message
Louis Penin (lpenin) wrote :

Hi all,

Thank you Igor, I followed the instructions and everything worked!

However when I try to enroll my prints, here's what happens:

louis@louis-UX330UAK:~$ fprintd-enroll
Using device /net/reactivated/Fprint/Device/0
Enrolling right-index-finger finger.
Enroll result: enroll-unknown-error
VerifyStop failed: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.

Knowing that:

louis@louis-UX330UAK:~$ ldd `which fprintd` | grep libfprint
 libfprint.so.0 => /usr/local/lib/libfprint.so.0 (0x00007f34648e8000)

And that:

louis@louis-UX330UAK:~$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 04f3:0903 Elan Microelectronics Corp.
Bus 001 Device 003: ID 8087:0a2b Intel Corp.
Bus 001 Device 002: ID 0bda:58d1 Realtek Semiconductor Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Do you know to what it is due and what I can do for it?

Revision history for this message
Igor Filatov (iafilatov) wrote :

@Louis

Does fprint_demo work right after fprintd-enroll fails? If not, it's the 0903 bug.

Revision history for this message
Louis Penin (lpenin) wrote :

Hi

Well it opens but it says Error loading enrolled prints..

I tried again to examples/enroll but here's what I get (even though it worked yesterday!) :

(venv) louis@louis-UX330UAK:~/libfprint/builddir_dbg$ examples/enroll
This program will enroll your right index finger, unconditionally overwriting any right-index 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 aes3500
fp:debug [register_driver] registered driver aes4000
fp:debug [register_driver] registered driver aes2501
fp:debug [register_driver] registered driver aes2550
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 aes1660
fp:debug [register_driver] registered driver aes2660
fp:debug [register_driver] registered driver vfs101
fp:debug [register_driver] registered driver vfs301
fp:debug [register_driver] registered driver vfs5011
fp:debug [register_driver] registered driver upektc
fp:debug [register_driver] registered driver upektc_img
fp:debug [register_driver] registered driver etes603
fp:debug [register_driver] registered driver vfs0050
fp:debug [register_driver] registered driver elan
fp:debug [find_supporting_driver] driver elan supports USB device 04f3:0903
fp:debug [find_supporting_driver] selected driver elan supports USB device 04f3:0903
Found device claimed by ElanTech Fingerprint Sensor driver
sync:debug [fp_dev_open]
async:debug [fp_async_dev_open]
elan:debug [dev_init]
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.

Scan your finger now.
sync:debug [fp_enroll_finger_img]
async:debug [fp_async_enroll_start] starting enrollment
fp:debug [generic_acquire_start] action 1
elan:debug [dev_activate]
elan:debug [elan_activate]
elan:debug [elan_dev_reset]
drv:debug [__ssm_call_handler] 0x117aa00 entering state 0
elan:debug [elan_run_cmd] 4019
sync:debug [fp_enroll_finger_img] elan will handle enroll stage 0/4
elan:debug [elan_cmd_cb] transfer timed out
drv:debug [fpi_ssm_mark_aborted] error -110 from state 0
drv:debug [fpi_ssm_mark_completed] 0x117aa00 completed with status -110
elan:debug [activate_complete]
fp:debug [fpi_imgdev_activate_complete] status -110
async:debug [fpi_drvcb_enroll_started] status -110
sync:debug [sync_enroll_cb] result -110
sync:error [fp_enroll_finger_img] unrecognised return code -110
sync:debug [fp_enroll_finger_img] ending enrollment
async:debug [fp_async_enroll_stop]
elan:debug [dev_deactivate]
elan:debug [dev_change_state] 0
poll:debug [fpi_timeout_add] in 10ms
poll:debug [get_next_timeout_expiry] next timeout in 0.009989s
poll:debug [get_next_timeout_expiry] first timeout already expired
poll:debug [handle_timeout]
elan:debug [elan_change_state] already in 0

Is that the 0903 bug?

Revision history for this message
Igor Filatov (iafilatov) wrote :

fprint_demo could require root if you ran it or examples/enroll as root before. The log seems to indicate the 0903 bug. Try reboot or cold boot.

Revision history for this message
Louis Penin (lpenin) wrote :

Hi Igor, You are right, it seems to be the 0903 bug, if there's anything I can do to help you resolve this bug: let me know!

Thanks for your help

Revision history for this message
Cascanuez (cascanuez) wrote :

Hi everybody and thank you very much for this work Igor :)

Unfortunately, I didn't manage to install the driver so I would want to know, before trying harder to understand the README.md, if an integration in the official repositories is planned.

Thank you again :)

Revision history for this message
Igor Filatov (iafilatov) wrote :

It is planned. In fact, it is under way. But I need to find time to prepare for merging and I keep failing at this...

Revision history for this message
Cascanuez (cascanuez) wrote :

Yeah I understand perfectly. I'll wait so :)

Thanks again for this job !

Revision history for this message
John Doe (jdoeqqqw) wrote :

Fedora user here (Asus Zenbook UX330UA), I wanted to say thank you for your efforts on making those sensors work. Hopefuly you'll find them to have your fix merged into the official lib.

Revision history for this message
Igor Filatov (iafilatov) wrote :

I've changed the order of commands a bit and it may fix the 0903 lock-up issue. It's still a shot in the dark though. If anyone is willing to test (run enroll a few times in a row to see) I'd appreciate it. Thanks!
https://github.com/iafilatov/libfprint/tree/elan-try-fix-0903

Revision history for this message
james (whitehat-hazard) wrote :

I tried this - Asus Q505UA 2-in-1. I managed to get this built and working to capture images/verify. Enrollment succeeds, but verification does not.

Bus 001 Device 004: ID 04f3:0903 Elan Microelectronics Corp.

Revision history for this message
james (whitehat-hazard) wrote :

^meaning i built from your tree Igor. Let me know if I can try anything else to aid in getting this figured out

Revision history for this message
Guntis (gunchs) wrote :

Tried this on Xiaomi Air 13.
I was able to example/img_capture nad example/enroll.
Images where captured.

Revision history for this message
John Doe (jdoeqqqw) wrote :

Hello Igor,

I have a 0903 and tried your branch that tries to fix its issues, here are some logs :

1) https://pastebin.com/xugAj0db : First try, with the build etc. Unfortunately when I tried to enroll my finger touched the touchpad and put the terminal in background, and I thought that was what made the enroll freeze.

2) https://pastebin.com/UpVh0wXT : I thought first try was a mistake but the script seems to freeze everytime. It freeze automatically, even if I launch the enroll and don't touch the reader, it'll return that 110 error code after 5 seconds. Is this what you call "lock up" ?

For your information, before collecting those logs, I tried the img_capture and it "worked" (an image was generated etc), then I tried enroll and got the same error than in the logs (it seems it locked itself between img_capture and enroll).

Let me know if there is any way I can help you on this

Revision history for this message
John Doe (jdoeqqqw) wrote :

Being the idiot that I am I proved you logs for the master branch... Since the scanner seemed locked up I rebooted, and retried using the right branch, unfortunately it didn't seem to work :

https://pastebin.com/GtbsWzTT

Is there any way to unlock the fingerprint sensor manually ?

Revision history for this message
John Doe (jdoeqqqw) wrote :

Alright, for the sake of science I shut the computer off, turned it on and the sensor was unlocked. So I did a final test : https://pastebin.com/4H1WRDKh

When I look at the images from img_capture, I can understand why libfprint doesn't manage to make them match. Maybe I wasn't swiping my finger the right way... It's a shame Elan didn't provide open source drivers. At least I hope these logs will help you somehow...

Revision history for this message
John Doe (jdoeqqqw) wrote :

Doesn't seem like there is an edit button, you asked for some enrolments : https://pastebin.com/M6wqBp0A

Revision history for this message
Igor Filatov (iafilatov) wrote :

@John

Thank you very much for your investigation! A shame that you can't get a match on your reader. The good news is that the fix for 0903 seems to work and I can merge it into main branch. As for why it doesn't match, according to logs, you aren't getting enough minutiae and the image is too small. I can't say more without the actual image but you should have the idea what to do when you look at it. If you don't mind, you can send me a couple of images and I'll take a look.

Revision history for this message
ocarios (ocarios) wrote :

@Igor,

Hi,

Is it possible to get libfprint (with correct version support elan fingerprint) from a repo without have to build etc ?

Revision history for this message
Igor Filatov (iafilatov) wrote :

linfprint 0.8.3 will have Elan driver. Once it's out, check your repos.

Revision history for this message
Ares (aresaguilarsotos) wrote :

@Igor,

Hi,
Do you know if it is possible to install libfprint 0.8.3 on Ubuntu 18.10? I would love to try the driver on my ZenBook.

Revision history for this message
Igor Filatov (iafilatov) wrote :

@Ares

0.8.3 is not in the Ubuntu package repos yet so the only way is to install from source https://gitlab.freedesktop.org/libfprint/libfprint

Revision history for this message
Angel (4ng3ll) wrote :
Download full text (6.0 KiB)

Hello, I followed all the instructions and apparently I could install fprint correctly. However when I run sudo ./img_capture I got an error message. Also is not possible to enroll and fprint_demo cannot fing any device.
I tried to look for the error 903 but the github page is no longer available
I'm running it in ubuntu 18.10 if that helps.
I hope anyone can help me out
The error message is:

(process:3360): libfprint-DEBUG: 20:49:10.427: 161437947: ../libfprint/fpi-core.c:743
(process:3360): libfprint-DEBUG: 20:49:10.432: registered driver upekts
(process:3360): libfprint-DEBUG: 20:49:10.432: registered driver upektc
(process:3360): libfprint-DEBUG: 20:49:10.432: registered driver upeksonly
(process:3360): libfprint-DEBUG: 20:49:10.432: registered driver vcom5s
(process:3360): libfprint-DEBUG: 20:49:10.432: registered driver uru4000
(process:3360): libfprint-DEBUG: 20:49:10.432: registered driver aes1610
(process:3360): libfprint-DEBUG: 20:49:10.433: registered driver aes1660
(process:3360): libfprint-DEBUG: 20:49:10.433: registered driver aes2501
(process:3360): libfprint-DEBUG: 20:49:10.433: registered driver aes2550
(process:3360): libfprint-DEBUG: 20:49:10.433: registered driver aes2660
(process:3360): libfprint-DEBUG: 20:49:10.433: registered driver aes3500
(process:3360): libfprint-DEBUG: 20:49:10.433: registered driver aes4000
(process:3360): libfprint-DEBUG: 20:49:10.433: registered driver vfs101
(process:3360): libfprint-DEBUG: 20:49:10.433: registered driver vfs301
(process:3360): libfprint-DEBUG: 20:49:10.433: registered driver vfs5011
(process:3360): libfprint-DEBUG: 20:49:10.433: registered driver upektc_img
(process:3360): libfprint-DEBUG: 20:49:10.433: registered driver etes603
(process:3360): libfprint-DEBUG: 20:49:10.433: registered driver vfs0050
(process:3360): libfprint-DEBUG: 20:49:10.433: registered driver elan
(process:3360): libfprint-DEBUG: 20:49:10.433: driver elan supports USB device 04f3:0c10
(process:3360): libfprint-DEBUG: 20:49:10.433: selected driver elan supports USB device 04f3:0c10
Found device claimed by ElanTech Fingerprint Sensor driver
(process:3360): libfprint-sync-DEBUG: 20:49:10.433: 161443813: ../libfprint/fpi-sync.c:57
(process:3360): libfprint-async-DEBUG: 20:49:10.433: 161443841: ../libfprint/fpi-async.c:77
(process:3360): libfprint-elan-DEBUG: 20:49:10.546: 161556427: ../libfprint/drivers/elan.c:801
(process:3360): libfprint-async-DEBUG: 20:49:10.546: status 0
(process:3360): libfprint-sync-DEBUG: 20:49:10.546: status 0
Opened device. It's now time to scan your finger.

(process:3360): libfprint-sync-DEBUG: 20:49:10.546: to be handled by elan
(process:3360): libfprint-async-DEBUG: 20:49:10.546: 161556723: ../libfprint/fpi-async.c:577
(process:3360): libfprint-DEBUG: 20:49:10.546: action 4
(process:3360): libfprint-elan-DEBUG: 20:49:10.546: 161556774: ../libfprint/drivers/elan.c:849
(process:3360): libfprint-elan-DEBUG: 20:49:10.546: 161556801: ../libfprint/drivers/elan.c:788
(process:3360): libfprint-elan-DEBUG: 20:49:10.546: 161556825: ../libfprint/drivers/elan.c:101
(process:3360): libfprint-drv-DEBUG: 20:49:10.546: 0x55677d4c12f0 entering state 0
(process:3360): libfprint-elan-DEBUG: 20:49:1...

Read more...

Revision history for this message
Igor Filatov (iafilatov) wrote :

@Angel

> (process:3360): libfprint-poll-CRITICAL **: 20:49:10.548: fpi_timeout_add: assertion 'fpi_poll_is_setup()' failed

It appears that you have libfprint with a bug that's been fixed some time ago. It looks like an unstable version could've appeared in repos due to misunderstanding of some sort (see https://gitlab.freedesktop.org/libfprint/libfprint/issues/143 for more info). You can try a newer git master, downgrade or wait till your pakage source (ppa? because ubuntu repos still have an older version) gets an update.

Revision history for this message
Behrad Khodayar (behradkhodayar) wrote :

My Device is AsusPro B9440UA, with the same driver:

Bus 001 Device 003: ID 04f3:0903 Elan Microelectronics Corp.

Unfortunately not supported yet

Revision history for this message
Rafik Farhad (rafikfarhad) wrote :

Same for Ausu Vivobook S15 S530UN

uname -a:
Linux epicalypto 4.18.0-16-generic #17~18.04.1-Ubuntu SMP Tue Feb 12 13:35:51 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

lsusb:
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 8087:0a2b Intel Corp.
Bus 001 Device 003: ID 13d3:56c1 IMC Networks
Bus 001 Device 002: ID 25a7:fa61
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Changed in libfprint (Ubuntu):
status: Confirmed → Invalid
status: Invalid → Incomplete
Revision history for this message
Miguel Ferrer (ingferrermiguel) wrote :

I'm having the same issue with Asus UX430UA as well.

Changed in libfprint (Ubuntu):
status: Incomplete → Confirmed
status: Confirmed → Incomplete
Revision history for this message
Diogo Falcomer (diogo-falcomer) wrote :

Here i have the same issue, and plus the right touchpad button doesn`t work too.

I`m using ubuntu 19.04 in a Notebook xiaomi air 13 (2017).

Bus 001 Device 004: ID 04f3:0c1a Elan Microelectronics Corp

:~$ fprintd-enroll
list_devices failed: No devices available

Revision history for this message
Maarten Fonville (maarten-fonville) wrote :

I experience the same issue. Problem is that even the most recent libfprint does not support i2c devices yet (only USB)

Revision history for this message
KozArt (kozart) wrote :

The same here...

Asus Vivobook S15 S510UN

Fingerprint not found

Revision history for this message
Nikhil (nikhil2110) wrote :

Same not working Goodix Fingerprint Sensor in Ubuntu 18.04 LTS.

Revision history for this message
rustyx (rustyx2) wrote :

FWIW, the 04f3:0903 ELAN device stops working in Windows 10 too, if I touch it too much and/or at the wrong moment. But in Windows I don't have to swipe it at all, it somehow works by touch. Also during enrollment.

Revision history for this message
Hayden (duckduckgo) wrote :

ASUS Vivobook S13 ASUS S330UA

Running "fprint-demo" reports "No devices found".

Revision history for this message
Edyta (edytka) wrote :

ASUS VIvobook S14 S410UA the same problem

Revision history for this message
Gonçalo (gmatosferreira) wrote :

VivoBook_ASUSLaptop X530FN_S530FN the same problem

Revision history for this message
Ethan Walker (ethanmwalker) wrote :

I'm having the same issue on an ASUS ZenBook S UX391UA in ubuntu 19.10, kernel version 5.4.2-050402-generic

Revision history for this message
hurelhuyag (hurelhuyag) wrote :

I have Vivobook F510UA laptop. Yes this affecting me too.

Revision history for this message
Gabriel Cabana (cabg2101) wrote :

Asus Zenbook Flip 14 (UX461UA). Affected by the problem as well. Ubuntu 18.04, kernel 5.0.0-37-generic.

Revision history for this message
Coder Dmitry (webocoders) wrote :

I'm having the same issue on an Asus Zenbook UX391U
Linux mint 19.3
kernel version 5.3.0-24

lsusb

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 27c6:5201
Bus 001 Device 003: ID 8087:0a2b Intel Corp.
Bus 001 Device 002: ID 13d3:56b9 IMC Networks
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

lspci

00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers (rev 08)
00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 620 (rev 07)
00:04.0 Signal processing controller: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem (rev 08)
00:14.0 USB controller: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller (rev 21)
00:14.2 Signal processing controller: Intel Corporation Sunrise Point-LP Thermal subsystem (rev 21)
00:15.0 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #0 (rev 21)
00:15.1 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #1 (rev 21)
00:16.0 Communication controller: Intel Corporation Sunrise Point-LP CSME HECI #1 (rev 21)
00:1c.0 PCI bridge: Intel Corporation Device 9d13 (rev f1)
00:1c.4 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #5 (rev f1)
00:1d.0 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #9 (rev f1)
00:1f.0 ISA bridge: Intel Corporation Intel(R) 100 Series Chipset Family LPC Controller/eSPI Controller - 9D4E (rev 21)
00:1f.2 Memory controller: Intel Corporation Sunrise Point-LP PMC (rev 21)
00:1f.3 Audio device: Intel Corporation Sunrise Point-LP HD Audio (rev 21)
00:1f.4 SMBus: Intel Corporation Sunrise Point-LP SMBus (rev 21)
01:00.0 Network controller: Intel Corporation Wireless 8265 / 8275 (rev 78)
6d:00.0 Non-Volatile memory controller: Toshiba America Info Systems NVMe Controller (rev 01)

Revision history for this message
dpcat237 (denys) wrote :

I have Asus UX331UN laptop and this affects me too.

Revision history for this message
Psenik1 (psenik1) wrote :

Affects me too.
I have ASUS UX 331UA

Revision history for this message
Charls P John (charlspjohn) wrote :

Issue on asus vivobook 14 x412ua

Revision history for this message
Saket Singh (sakets542) wrote :

I have asus vivobook s14 s430 and i have the same issue.

Revision history for this message
Maneesh Singh (maneesh.ubuntu) wrote :

I am facing the same issue. Tried on 18.04lts and 20.04lts. I have asus vivobook x507uf.

Revision history for this message
Sebastien Bacher (seb128) wrote :

Could anyone still having an issue on the newest focal LTS open a new report using
$ ubuntu-bug libfprint
the fingerprint stack has quite some work this cycle and having decide specifics is needed

Revision history for this message
Maarten Fonville (maarten-fonville) wrote :

@Sebastien Bacher, I filed a new bug at https://bugs.launchpad.net/ubuntu/+source/libfprint/+bug/1876502 using ubuntu-bug libfprint-2-2

Revision history for this message
Trayan (trayan) wrote :

Same Here, Asus VivoBook N580v. Please fix

Revision history for this message
David Olthaar (imdavid) wrote :

Also for me for Asus Vivobook 15:

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 13d3:56dd IMC Networks
Bus 001 Device 003: ID 13d3:3491 IMC Networks
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Narazamsa (narazamsa)
Changed in libfprint (Ubuntu):
status: Incomplete → Confirmed
Revision history for this message
Luis Oliveira (mehrlicht) wrote :

It affects me too:

ASUS VivoBook S15 S530FN
Ubuntu 20.04 Focal Fossa

Revision history for this message
Saket Singh (sakets542) wrote :

It affects me too:

ASUS vivobook s430FA s series
Ubuntu 20.04 Focal Fossa

Nur Sandi (nursandi)
Changed in libfprint (Ubuntu):
assignee: nobody → Nur Sandi (nursandi)
Revision history for this message
Marco Trevisan (Treviño) (3v1n0) wrote :

Drivers requests are upstream issues and as such should be redirected to the official wiki:

 - https://gitlab.freedesktop.org/libfprint/wiki/-/wikis/Unsupported-Devices

As per this, I'm closing all the requests, I please you to update that wiki page if needed.

Changed in libfprint (Ubuntu):
status: Confirmed → Invalid
status: Invalid → Fix Released
Revision history for this message
ganeshpokale (ganeshpokale) wrote :

I have asus vivobook s14 facing same same issue.

Revision history for this message
Azhar (azhar-munshi-99) wrote :

I have Asus vivobook v15 x512fl and elementary os but the fingerprint sensor could not be detected.

Revision history for this message
x12 (kobadmitrii) wrote :

I am seeing a problem not asus zenbook um431d.

Revision history for this message
Mayra Díaz Tramontana (mayra2001) wrote :

It affects me too, I have an Asus Zenbook flip UX461UN and it doesnt recognize the fingerprint reader

Revision history for this message
Darshil Shah (darshil97) wrote :

It affects me too. I am using Asus ViviBook F571.

Revision history for this message
Del Marshall (del-marshall) wrote :

Same issue, fingerprint reader not recognized. ASUS VivoBook K-513 Linux Mint 20.3

Revision history for this message
Tecix (tex460) wrote :

My laptop is Asus Vivobook A412F and fingerprint reader was not listed with lsusb, lspci, lshw commands.
However, I don't know why the fprintd-enroll command working and I can register fingerprints, but then cannot verify after that.

Revision history for this message
hurelhuyag (hurelhuyag) wrote :

I'm on Asus F510UA fresh 23.04 installed. It is now working. But hard to use it.

On Windows, I just press my finger on the sensor it works. But on Ubuntu, it requires me to swipe my finger and I did it. It never match my previously registered fingerprints.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.