The fingerprint reader system does not work correctly for non-root users in openSUSE Leap 42.1. Fingerprints will successfully scan, yet the fingerprint data is not stored. This happens despite the fingerprint reader working correctly for the root user.
Logged in as root:
TuxBox:/ # fprintd-enroll --finger right-index-finger john*<Enter>*
Using device /net/reactivated/Fprint/Device/0
Enrolling right-index-finger finger.
Enroll result: enroll-stage-passed
Enroll result: enroll-stage-passed
Enroll result: enroll-stage-passed
Enroll result: enroll-stage-passed
Enroll result: enroll-completed
TuxBox:/ # fprintd-list john*<Enter>*
found 1 devices
Device at /net/reactivated/Fprint/Device/0
Using device /net/reactivated/Fprint/Device/0
User john has no fingers enrolled for Upek TouchChip Fingerprint Coprocessor.
Max314
An observation which may have bearing on your problem:
I was following you How-To
for install on my Leap Laptop.
I installed the fprintd files using YAST GUI rather than zypper, YAST auto installed (dependency) dbus-1-glib-32bit
in addition to libfprint0.
Once installed, I ran fprintd-enroll --finger right-ring-finger root in a root konsole.
My Validity hardware woke up (flashing LED) but the enrollment terminated after just one finger swipe, not the expected 5.
Something did save
HPDV7-Linux:~ # fprintd-list root
found 1 devices
Device at /net/reactivated/Fprint/Device/0
Using device /net/reactivated/Fprint/Device/0
Fingerprints for user root on Validity VFS5011 (swipe):
- #0: right-ring-finger
And subsequent attempted kdesu login does prompt for fingerprint, but fails to match.
I sort of get the feeling the fingerprint file is not valid, not sure where to go from here.
As an add-on, I tried to enroll my user finger as well - it behaved similarly to my root attempt - only 1 swipe,
but DID create a file
HPDV7-Linux:~ # fprintd-enroll --finger right-ring-finger carl
Using device /net/reactivated/Fprint/Device/0
Enrolling right-ring-finger finger.
Enroll result: enroll-completed
HPDV7-Linux:~ # fprintd-list carl
found 1 devices
Device at /net/reactivated/Fprint/Device/0
Using device /net/reactivated/Fprint/Device/0
Fingerprints for user carl on Validity VFS5011 (swipe):
- #0: right-ring-finger
Do you know where the fingerprint files are stored?
Thanks for your well done How-To, I had sort of given up on Fprint.
When I did the install of fprintd and related files from the command line as described in my tutorial, “dbus-1-glib-32bit” was automatically installed on my system too.
I searched my system for where the fingerprint data files are stored, and found them at “/var/lib/fprint/”. BTW - the fingerprint data files were formerly stored in “~/.fprint”. Curiously, when I located where the fingerprint data files are now stored, I discovered a data file for my regular (non-root) users, which puzzles me even more. “I used to be confused, but now I just don’t know.” - Tears for Fears.
I did some more digging in the openSUSE forums, and I discovered a possible solution of altering the dbus rules. I don’t like this possible solution for two reasons:
It was not necessary on openSUSE 13.2, where I had the fingerprint reader working correctly using only the information from my fingerprint reader tutorial
I’m concerned this method of solving the problem may break something in the future
I’m don’t know where to go with this, and I encourage you to keep testing ideas until the problem relents and concedes victory to you.
Having discovered that a fingerprint data file is indeed saved to disk at “/var/lib/fprint/” after successful enrollment of a non-root user, I did some tests that revealed some interesting information.
First I checked to see if fprint knew of any fingerprints. Again, I got:
TuxBox:~ # fprintd-list john
found 1 devices
Device at /net/reactivated/Fprint/Device/0
Using device /net/reactivated/Fprint/Device/0
User john has no fingers enrolled for Upek TouchChip Fingerprint Coprocessor.
despite a fingerprint data file already existing at “/var/lib/fprint/”.
The file for the fingerprint data file already existing at “/var/lib/fprint/” was modified to the current date and time, so I know with complete certainty the enrolling process is indeed saving a fingerprint data file immediately after a successful enrollment.
I’m starting to wonder if this is a permissions problem with the non-root user’s fingerprint data file.
First, the installed “libfrrint0” installs udev rules for popular sensors in /usr/lib/udev/rules.d.
Check there first to see if your sensor is already setup.
I also loaded package libfprint0-32bit. That may have helped me.
In addition , package libfprint-examples has some interactive programs that tell you a bit more than the similarly named fprintd executables.
For example, fprint_enroll vs fprintd-enroll
Enrollment still only needs one swipe. I have no idea why your system requires 5, but averaging would seem to make sense.
I was able to enroll a user finger and use fprint_verify to check it, but with only about a 10% success rate.
fprintd is run by a systemd service - systemctl statu fprintd displays status.
It is normally inactive, wakes up when an executable enables the scanner (LED comes on).
What display manager did you successfully use?
I am using the Leap 42.1 default sddm, which was rather ungracious about fprint scan failures, I was unable to get to a bpoint where it would accept a
text password.
5 swipes during enrollment is the normal and correct behavior. It is also the behavior I experienced when using openSUSE 13.1 and openSUSE 13.2. If you are only getting one swipe during enrollment, something is very wrong.
SDDM on openSUSE Leap 42.1, like you.
I agree with your comment about SDDM not being user-friendly about fingerprint scanning failures.
When I reread my comment, I realized it sounded like one swipe was all that was needed - not my intent.
So it is curious that on my system, I am only getting one swipe before the reader LED goes out, and the enroll process completes without error message.
Are we running the same versions?
Here are mine
# zypper -i info fprintd*
Loading repository data...
Reading installed packages...
Information for package fprintd-devel:
--------------------------------------
Repository: Main Repository (OSS)
Name: fprintd-devel
Version: 0.6.0-2.2
Arch: noarch
Vendor: openSUSE
Installed: No
Status: not installed
Installed Size: 97.1 KiB
Summary: Development files for fprintd
Description:
Development documentation for fprintd, the D-Bus service for
fingerprint readers access.
Information for package fprintd-lang:
-------------------------------------
Repository: hardware
Name: fprintd-lang
Version: 0.6.0-15.1
Arch: noarch
Vendor: obs://build.opensuse.org/hardware
Installed: Yes
Status: up-to-date
Installed Size: 168.9 KiB
Summary: Languages for package fprintd
Description:
Provides translations to the package fprintd
Information for package fprintd:
--------------------------------
Repository: hardware
Name: fprintd
Version: 0.6.0-15.1
Arch: x86_64
Vendor: obs://build.opensuse.org/hardware
Installed: Yes
Status: up-to-date
Installed Size: 159.7 KiB
Summary: D-Bus service for Fingerprint reader access
Description:
D-Bus service to access fingerprint readers.
Information for package fprintd-pam:
------------------------------------
Repository: hardware
Name: fprintd-pam
Version: 0.6.0-15.1
Arch: x86_64
Vendor: obs://build.opensuse.org/hardware
Installed: Yes
Status: up-to-date
Installed Size: 28.8 KiB
Summary: PAM module for fingerprint authentication
Description:
PAM module that uses the fprintd D-Bus service for fingerprint
authentication.
Information for package fprintd-pam-32bit:
------------------------------------------
Repository: hardware
Name: fprintd-pam-32bit
Version: 0.6.0-15.1
Arch: x86_64
Vendor: obs://build.opensuse.org/hardware
Installed: Yes
Status: up-to-date
Installed Size: 21.6 KiB
Summary: PAM module for fingerprint authentication
Description:
PAM module that uses the fprintd D-Bus service for fingerprint
authentication.
I am running Plasma5.6, but none of this appears to be Plasma related.
No, we are not running the same versions. Here are mine:
TuxBox:~ # zypper -i info fprintd*
Information for package fprintd:
--------------------------------
Repository: openSUSE Leap 42.1 - Hardware Tools (fingerprint reader)
Name: fprintd
Version: 0.6.0-15.1
Arch: x86_64
Vendor: obs://build.opensuse.org/hardware
Installed: Yes
Status: up-to-date
Installed Size: 159.7 KiB
Summary: D-Bus service for Fingerprint reader access
Description:
D-Bus service to access fingerprint readers.
Information for package fprintd-devel:
--------------------------------------
Repository: openSUSE Leap 42.1 - Hardware Tools (fingerprint reader)
Name: fprintd-devel
Version: 0.6.0-15.1
Arch: noarch
Vendor: obs://build.opensuse.org/hardware
Installed: No
Status: not installed
Installed Size: 97.1 KiB
Summary: Development files for fprintd
Description:
Development documentation for fprintd, the D-Bus service for
fingerprint readers access.
Information for package fprintd-lang:
-------------------------------------
Repository: openSUSE Leap 42.1 - Hardware Tools (fingerprint reader)
Name: fprintd-lang
Version: 0.6.0-15.1
Arch: noarch
Vendor: obs://build.opensuse.org/hardware
Installed: Yes
Status: up-to-date
Installed Size: 168.9 KiB
Summary: Languages for package fprintd
Description:
Provides translations to the package fprintd
Information for package fprintd-pam:
------------------------------------
Repository: openSUSE Leap 42.1 - Hardware Tools (fingerprint reader)
Name: fprintd-pam
Version: 0.6.0-15.1
Arch: x86_64
Vendor: obs://build.opensuse.org/hardware
Installed: Yes
Status: up-to-date
Installed Size: 28.8 KiB
Summary: PAM module for fingerprint authentication
Description:
PAM module that uses the fprintd D-Bus service for fingerprint
authentication.
Information for package fprintd-pam-32bit:
------------------------------------------
Repository: openSUSE Leap 42.1 - Hardware Tools (fingerprint reader)
Name: fprintd-pam-32bit
Version: 0.6.0-15.1
Arch: x86_64
Vendor: obs://build.opensuse.org/hardware
Installed: Yes
Status: up-to-date
Installed Size: 21.6 KiB
Summary: PAM module for fingerprint authentication
Description:
PAM module that uses the fprintd D-Bus service for fingerprint
authentication.
Information for package fprintd-debuginfo:
------------------------------------------
Repository: openSUSE Leap 42.1 - OSS Debug
Name: fprintd-debuginfo
Version: 0.6.0-2.2
Arch: x86_64
Vendor: openSUSE
Installed: No
Status: not installed
Installed Size: 209.1 KiB
Summary: Debug information for package fprintd
Description:
This package provides debug information for package fprintd.
Debug information is useful when developing applications that use this
package or when debugging this package.
Information for package fprintd-debugsource:
--------------------------------------------
Repository: openSUSE Leap 42.1 - OSS Debug
Name: fprintd-debugsource
Version: 0.6.0-2.2
Arch: x86_64
Vendor: openSUSE
Installed: No
Status: not installed
Installed Size: 138.6 KiB
Summary: Debug sources for package fprintd
Description:
This package provides debug sources for package fprintd.
Debug sources are useful when developing applications that use this
package or when debugging this package.
Information for package fprintd-pam-debuginfo:
----------------------------------------------
Repository: openSUSE Leap 42.1 - OSS Debug
Name: fprintd-pam-debuginfo
Version: 0.6.0-2.2
Arch: x86_64
Vendor: openSUSE
Installed: No
Status: not installed
Installed Size: 39.3 KiB
Summary: Debug information for package fprintd-pam
Description:
This package provides debug information for package fprintd-pam.
Debug information is useful when developing applications that use this
package or when debugging this package.
Information for package fprintd-pam-debuginfo-32bit:
----------------------------------------------------
Repository: openSUSE Leap 42.1 - OSS Debug
Name: fprintd-pam-debuginfo-32bit
Version: 0.6.0-2.2
Arch: x86_64
Vendor: openSUSE
Installed: No
Status: not installed
Installed Size: 31.0 KiB
Summary: Debug information for package fprintd-pam
Description:
This package provides debug information for package fprintd-pam.
Debug information is useful when developing applications that use this
package or when debugging this package.
I am running Plasma 5.5
It is disappointing no one else chimed in so far to give additional help or input on this problem.
I am thinking you named the repo “Hardware Tools (fingerprint reader)”
Our installed versions seem to be the same.
I am not real surprised we have not attracted much other comment.
I sort of gave up on fprint a while ago, until you came along and reported some success.
I was re-interested because fprint works well on my Android phone.
I’ll guess, for the moment, that my issue with fprint enrollment early abort (one scan vs five) might be related to dbus difference between Qt 5.5 and 5.6?
Still digging for solutions, on occasion.