Bug 528596

Summary: fingerprint reader with id 147e:2016 isn't detected correctly
Product: [openSUSE] openSUSE 11.3 Reporter: Roman Karlstetter <roman.karlstetter>
Component: YaST2Assignee: Timo Hoenig <thoenig>
Status: RESOLVED FIXED QA Contact: Jiri Srain <jsrain>
Severity: Normal    
Priority: P5 - None CC: jsuchome, onelife.onemission, ro, schmuker, snwint, suse
Version: Milestone 7   
Target Milestone: ---   
Hardware: x86-64   
OS: Other   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Roman Karlstetter 2009-08-05 21:14:19 UTC
User-Agent:       Mozilla/5.0 (X11; U; Linux x86_64; de; rv:1.9.1.1) Gecko/20090714 SUSE/3.5.1-1.1 Firefox/3.5.1

The fingerprint reader in my Thinkpad R61 isn't detected by yast, yast tells me, that there is no such device in my system.

lsusb: 
Bus 001 Device 005: ID 147e:2016

The device is supported by libfprint: 
http://www.reactivated.net/fprint/wiki/Upeksonly

I only tested it with the live CD.




Reproducible: Always

Steps to Reproduce:
1.
2.
3.
Comment 1 Roman Karlstetter 2009-08-23 21:25:50 UTC
the problem still appears in Milestone 6
Comment 2 Jesse James 2009-09-14 06:53:32 UTC
Hi there. Please provide the steps you used to cause the issue.
Did you enable to <use finger print reader> in YaST2?
Comment 3 Roman Karlstetter 2009-09-14 12:03:30 UTC
I didn't do anything special. I just started the KDE-live-CD (Milestone 4 and 6), then I opened YaST2 and clicked on fingerprint-reader. It starts to open, but then it fails with a message saying something like "there is no fingerprint reader available on your system."

> Did you enable to <use finger print reader> in YaST2?

where do I enable this?
Comment 4 Jesse James 2009-09-14 12:24:46 UTC
YaST2 --> Hardware --> click "use fingerprint reader" --> configure.
Comment 5 Roman Karlstetter 2009-09-14 12:50:29 UTC
OK i tried to do this.

There is no item "use fingerprint reader" here, so I clicked on "Fingerprint Reader".

And then it starts to open but fails with this error message: 
"Fingerprint reader device is not available on this system."

So I can not click on configure.

But when I call lsusb I get the following line:

Bus 001 Device 005: ID 147e:2016 Upek Biometrik Touchchip/Touchstrip Fingerprint Sensor

so it seems to be available, only yast doesn't detect it?
Comment 6 Roman Karlstetter 2009-10-03 13:44:13 UTC
this problem is still present in M8, I tested it with the x86_64 KDE4 live version on an usb-stick
Comment 7 Roman Karlstetter 2009-10-07 09:54:51 UTC
Now I installed Milestone 8.
The strange thing is, that when I download and compile the development-version from the fprint homepage, the fprint_demo programm works and I can enroll and see my fingerprint. But unfortunately it doesn't work in yast. 
What else can I try to make it work in yast?
Comment 8 Michael Schmuker 2010-06-08 07:17:29 UTC
Still present in 11.3 M7 on a Lenovo T410s. lsusb shows "ID 147e:2016 Upek Biometric Touchchip/Touchstrip Fingerprint Sensor", but the sensors can't be configured in yast.
Comment 9 Roman Karlstetter 2010-06-08 07:25:14 UTC
yes, it would be very cool if this finally could be configured via yast...
Comment 10 Michael Schmuker 2010-06-08 07:53:48 UTC
Roman, which development version did you use? I'd like to try it myself.
Comment 11 Roman Karlstetter 2010-06-08 17:58:01 UTC
i used the version that is in the git repository: 

http://reactivated.net/fprint/wiki/Libfprint_development

I don't know what this has to say, but there were no changes in there for a long time now (last commit 2009-06-20)
Comment 12 Steffen Winterfeldt 2010-06-10 10:01:27 UTC
Similar to bug 606707. libhd knows those readers that are supported. If you
have some new driver lib, add something like

 vendor.id usb 0x147e
&device.id usb 0x2016
+baseclass.id 0x116
+subclass.id 0x00

to /var/lib/hardware/hd.ids to make yast recognize it.

Timo, if you update libfprint, drop me a note so that I can adjust the
internal id list.
Comment 13 Roman Karlstetter 2010-06-10 13:11:18 UTC
If I add the 4 lines to /var/lib/hardware/hd.ids, yast still doesn't recognize my fingerprint reader.

When I run hwinfo, I get, amongst others, this entry:

54: USB 00.0: 0000 Unclassified device
  [Created at usb.122]
  UDI: /org/freedesktop/Hal/devices/usb_device_147e_2016_noserial_if0
  Unique ID: mZxt.kCK_SDPAt9A
  Parent ID: uIhY.MxUuepIFPaE
  SysFS ID: /devices/pci0000:00/0000:00:1a.0/usb3/3-2/3-2:1.0
  SysFS BusID: 3-2:1.0
  Hardware Class: unknown
  Model: "TouchStrip Fingerprint Sensor"
  Hotplug: USB
  Vendor: usb 0x147e "TouchStrip"
  Device: usb 0x2016 "Fingerprint Sensor"
  Revision: "0.01"
  Speed: 12 Mbps
  Module Alias: "usb:v147Ep2016d0001dc00dsc00dp00icFFisc00ip00"
  Config Status: cfg=no, avail=yes, need=no, active=unknown
  Attached to: #49 (Hub)
Comment 14 Steffen Winterfeldt 2010-06-10 13:26:41 UTC
Could be the existing file has a syntax error. Just replace it with one
that has only this new entry. You can check the correctness of the file
by running 'hwinfo --dump-db 0' which will show the values hwinfo read
from the file.
Comment 15 Roman Karlstetter 2010-07-03 21:02:21 UTC
ok, after I did this I was able to open the yast dialog, but when I tried to assign a fingerprint with my username, it didn't work, there was something like  yast couldn't find a symbol (probably because I compiled libfprint myself).

I tested it with the various milestones and RCs, but libfprint doesn't seem to be updated, at least it still doesn't work with opensuse 11.3 RC2. Also it is now a bit late to include into 11.3, but it would be cool if at least some additional repository could provide the current version of libfprint, so that it also works with yast.
Comment 16 Michael Schmuker 2010-07-04 11:27:20 UTC
(In reply to comment #15)
>it would be cool if at least some
> additional repository could provide the current version of libfprint, so that
> it also works with yast.

That would be cool indeed. Why don't you start an OBS project?
Comment 17 Timo Hoenig 2010-07-09 14:49:35 UTC
I've given it a spin with 11.3-GMC and a R61 (147e:2016) and fingerprint reader works fine.

At least console login and gnome-screensaver works.  GDM didn't work but that is something for a different report then.

Closing as WORKSFORME.
Comment 18 Michael Schmuker 2010-07-12 20:03:33 UTC
Sorry, but it doesn't work for me on GM. Here's my mileage:

After adding the four lines from comment 12 to /var/lib/hardware/hd.ids (which shouldn't be necessary for a closed bug), hwinfo recognized the device as fingerprint reader. Yast 2 lets me configure the reader, but it is impossible to register fingerprints for users. This is most likely due to the old libfprint in GM. 

I'm on a Thinkpad T410s, FP reader ID 147e:2016.

Isn't it that resolving this bug requires 
1) adding the info to /var/lib/hardware/hd.ids in the distro
2) updating the system libfprint to the development version (or at least providing it in some repo)?

I hope I don't cause too much annoyance by reopening this bug.
Comment 19 Timo Hoenig 2010-07-12 20:16:30 UTC
I assumed the R61 to have that very same fingerprint reader.  But I might be mistaken.

In case we really need an updated version of libfprint there is not much we can do for 11.3 as we're gold this week.

As next steps I recommend the OBS approach and then push it towards FACTORY.  That, of course, needs to be tied to an update for hwinfo (additional USB IDs).

Any volunteers?
Comment 20 Steffen Winterfeldt 2010-07-13 09:28:14 UTC
putting out a new hwinfo is no big deal. just send me the ids.
Comment 21 Michael Schmuker 2010-07-13 09:44:11 UTC
Great, here you are:

from lsusb:

ID 147e:2016 Upek Biometric Touchchip/Touchstrip Fingerprint Sensor

My additional entry in /var/lib/hardware/hd.ids:

 vendor.id              usb 0x147e
&device.id              usb 0x2016
+baseclass.id           0x116
+subclass.id            0x00

It might make sense to decorate the entry in hd.ids with a bit more vendor/product info.

Should I send an additional personal message?
Comment 22 Timo Hoenig 2010-07-13 09:51:50 UTC
That doesn't help alone, right?  The libfprint (0.1.0-preX) update is the piece of work which needs time.  That version of libfprint uses libusb 1.0 and needs testing/verification regarding compatibility with our PAM stack; especially whether pam_fp works.
Comment 23 Michael Schmuker 2010-07-13 11:06:08 UTC
OK, I've managed to create a .spec file for libfprint-0.1.0_pre2 that builds an rpm. In theory, this should be enough to create an OBS project, IIRC.

However, I still have some trouble getting the FP reader to work. With the new rpm installed, the yast fingerprint plugin for user management manages to access the FP reader (which is a progress over the old libfprint), but it fails immediately to read the fingerprint.

I am a bit lost here - anyone like to help me get that FP reader working?
Comment 24 Timo Hoenig 2010-07-13 11:15:04 UTC
I recommend building libfprint manually first.

$ ./configure && make
$ cd examples
$ make

Then run ./enroll, ./verify and/or ./verify_live .

If this does _not_ show any issues, we have to investigate on the YaST side of things.

(I don't have a fingerprint reader device at the moment, otherwise I could do that myself.)
Comment 25 Steffen Winterfeldt 2010-07-13 11:47:46 UTC
In any case there's an updated hwinfo in home:snwint.
Comment 26 Michael Schmuker 2010-07-13 12:07:00 UTC
(In reply to comment #24)

I built it manually, as suggested.

 
> Then run ./enroll, ./verify and/or ./verify_live .
./enroll fails. For once, I needed to run it as root, because otherwise it couldn't open the USB device. 

If run as root, it crashes directly after printing "scan your finger now". Below is a copy of my console.

$> sudo ./enroll
root's password:
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 UPEK TouchStrip Sensor-Only driver
Opened device. It's now time to enroll your finger.

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

Scan your finger now.
sync:error [fp_enroll_finger_img] unrecognised return code -4
Enroll failed with error -22

Any ideas?
Comment 27 Timo Hoenig 2010-07-13 15:15:11 UTC
re comment 25:

Thanks, Steffen.  But I guess you should refrain form submitting this to FACTORY before the more difficult bits are fixed.  Otherwise we'll see users who are hoping for a supported fingerprint reader and fail miserably afterwards because a malfunctioning libfprint.

re comment 26:

Well, this is where debugging starts.  It is pretty obvious that the libfprint module responsible for your fingerprint reader device is at fault.  Unfortunately this is just a starting point for further investigation.

If I recall correctly there exist _different_ UPEK USB devices with the _same_ USB IDs.  Probably you have one of those which are unsupported.  So this issue might be related.  As this is just a wild guess from my side I recommend googling around to look for other users having the same combination of hard- and software (R61, libfprint-0.1.0-pre{1,2}.

Maybe this yields something and we can proceed.
Comment 28 Roman Karlstetter 2010-07-17 10:33:54 UTC
So, now I also tried it with my R61 (Vendor: usb 0x147e "TouchStrip"  Device: usb 0x2016 "Fingerprint Sensor") and it still doesn't work for me. 

The steps mentioned in comment #24 work for me (at least as root, as normal user there are some problems with permissions), but the version of libfprint shipped with 11.3 is too old I think. 

So a updated version of libfprint and hwinfo are needed to make it work (at least for the fingerprint reader model in my notebook) I think.
Comment 29 Michael Schmuker 2010-07-17 10:58:13 UTC
re comment 27: As I have a lenovo T410s (and not an R61) with the 147e:2016 FP reader, and since the new libfprint does not work for me (in contrast to Roman's experience), I guess I'm indeed bitten the the fact that there are different devices with the same ID. Regarding the fact that there does not seem to be any development on libfprint, chances are quite low that my FP reader will ever be supported :/
Comment 30 Ruediger Oertel 2010-08-25 15:18:30 UTC
I'm trying to push the changes for an updated libfprint into factory now
with all that's needed to support the FP-scanner on my T410 which has the same
usb id and I'd assume this would work for the T61 as well.

the packages are (among a lot of others all in home:oertel:branches:openSUSE:Factory in the openSUSE buildservice)

the packages modified for this are:
- hwinfo
- pam-config
- libfprint
- pam_fprint (replacing pam_fp)
- yast2-fingerprint-reader
Comment 31 Roman Karlstetter 2010-12-28 16:10:06 UTC
so, now I tested this stuff with opensuse 11.4 Milestone 5, and now I get the "fingerprint reader"-entry in yast. And I also can enroll my finger in the user-settings yast window, but also when I try to log in, I get the following:

Could not locate any suitable fingerprints matched with available hardware.

This appears as a dialog for example after logging in (or logging in again after I locked the screen), or just as commandline output if I try to su. So I am still not able to actually use the fingerprint reader
Comment 32 Roman Karlstetter 2010-12-31 15:17:19 UTC
ok, I tried it again today, and even if I think I didn't do anything in a different way, now it works.

thanks a lot
Comment 33 Jan Ritzerfeld 2011-04-10 18:10:11 UTC
The fingerprint reader works for me now using 11.4. I tested it as root with enroll and verify.
Comment 34 Jan Ritzerfeld 2011-12-31 17:58:42 UTC
Works for me using 12.1 and enroll/verify, too.
Comment 35 Jan Ritzerfeld 2012-05-27 10:20:32 UTC
I resolve this bug report as per Comment 32.
Comment 36 Bernhard Wiedemann 2017-04-07 10:01:58 UTC
This is an autogenerated message for OBS integration:
This bug (528596) was mentioned in
https://build.opensuse.org/request/show/486334 Factory / hwinfo