More on Fingerprint Reader

I had the fingerprint reader working on my Dell Latitude D830 laptop running Ubuntu 8.04. However, there was still one big problem: after resuming the laptop from suspend it only showed a black screen – I could do nothing. The same thing happened when I logged on, switched to another user and then switched to the first user again (or logged out the second user).

I noticed that everything worked when I had Compiz disabled. So obviously the password dialog wasn’t working.

Recently I discovered an error message in /var/log/auth.log and was able to track down the problem. The error message was: gnome-screensaver-dialog: pam_unix(gnome-screensaver:auth
): auth could not identify password for [<username>]

I found this page that helped me to solve the problem. The first mistake I had made was that in /etc/pam.d/common-auth I had the line

auth     required       pam_unix.so use_first_pass nullok_secure

use_first_pass means that the password is read from the PAM_ variables rather than asking the user. First thing I modified was that I replaced the line with

auth     required       pam_unix.so try_first_pass nullok_secure

try_first_pass says to read the password from the PAM_ variables if possible, otherwise ask the user.

The main problem with the password dialog however is that the dialog is shown from the screen saver. The screen saver runs as current user, not as root, and so it doesn’t have access to the fingerprint reader.

The following procedure will make the fingerprint reader accessible to members of the “fingerprint” group and add the current user to the “fingerprint” group (taken from http://www.thinkwiki.org/wiki/How_to_enable_the_fingerprint_reader_with_ThinkFinger).

Make the group:

sudo groupadd fingerprint

Add the current user to the group:

sudo gpasswd -a $USERNAME fingerprint

Create/edit the file /etc/udev/rules.d/60-thinkfinger.rules and paste the following into it:

#
# udev rules file for the thinkfinger fingerprint scanner
#
# gives access to the fingerprint reader to those in the "fingerprint" group
#
# Taken from:
#  http://www.thinkwiki.org/wiki/How_to_enable_the_fingerprint_reader_with_ThinkFinger
# which was taken and modified from:
#  http://article.gmane.org/gmane.linux.drivers.thinkfinger/329
#

# SGS Thomson Microelectronics Fingerprint Reader
SYSFS{idVendor}=="0483", SYSFS{idProduct}=="2016", SYMLINK+="input/thinkfinger-%k", MODE="0660", GROUP="fingerprint"

# the also-needed uinput device
KERNEL=="uinput", MODE="0660", GROUP="fingerprint"

Then restart udev by doing

sudo /sbin/udevtrigger

(you may need to reboot for this to take effect if udev trigger does not work). After doing this the password dialog showed up!

Edit 2008-11-18: On Ubuntu 8.10 Intrepid you have to use

sudo /sbin/udevadm trigger

instead

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


%d bloggers like this: