2.6.28-4 breaks thinkfinger

Bug #311732 reported by Noel J. Bergman on 2008-12-27
124
This bug affects 11 people
Affects Status Importance Assigned to Milestone
Linux
Fix Released
Medium
linux (Ubuntu)
Undecided
Unassigned
Jaunty
Undecided
Unassigned
thinkfinger (Ubuntu)
High
Unassigned
Jaunty
High
Unassigned

Bug Description

Host: Thinkpad T61p 6457-7WU

Upgrading from 2.6.28-3 to the new 2.6.28-4 kernel breaks the fingerprint reader using thinkfinger. Reverting to the older kernel restores functionality.

Attached are the logs. I also received this in the Xorrg log:

==> /var/log/Xorg.0.log <==
(EE) Virtual ThinkFinger Keyboard: Read error: No such device
(II) config/hal: removing device Virtual ThinkFinger Keyboard
(II) Virtual ThinkFinger Keyboard: Close
(II) UnloadModule: "evdev"

An example of the problem:

 $ tf-tool --verify

 ThinkFinger 0.3 (http://thinkfinger.sourceforge.net/)
 Copyright (C) 2006, 2007 Timo Hoenig <email address hidden>

 Initializing...Could not claim USB device.

When I do this under 2.6.28-3, I get:

 $ tf-tool --verify

 ThinkFinger 0.3 (http://thinkfinger.sourceforge.net/)
 Copyright (C) 2006, 2007 Timo Hoenig <email address hidden>

 Initializing... done.
 Please swipe your finger (successful swipes 1/1, failed swipes: 0)... done.
 Result: Fingerprint does match.

--------------------------------------------------------------------------------------------

ProblemType: Bug
Architecture: amd64
DistroRelease: Ubuntu 9.04
NonfreeKernelModules: nvidia
Package: linux-image-2.6.28-4-generic 2.6.28-4.5
ProcCmdLine: User Name=UUID=ac4ccc70-26e3-44dd-a6cf-715d1226eeb4 ro quiet
ProcEnviron:
 PATH: custom, no user
 LANG=en_US.UTF-8
 SHELL=/bin/bash
ProcVersionSignature: Ubuntu 2.6.28-4.5-generic
SourcePackage: linux

Related branches

Noel J. Bergman (noeljb) wrote :
Noel J. Bergman (noeljb) wrote :

Am attaching dmesg from the working 2.6.28-3 kernel. If there are any other files that you want from when running on 2.6.28-3, please advise.

description: updated
description: updated
description: updated

Does lsinput, lshal, or lsusb show the presence of the fingerprint reader?

Noel J. Bergman (noeljb) wrote :

Yes, actually. I am currently booted on 2.6.28-4 (to check this as requested), and lshal shows:

udi = '/org/freedesktop/Hal/devices/usb_device_483_2016_noserial'
  access_control.file = '/dev/bus/usb/001/003' (string)
  access_control.type = 'thinkfinger' (string)
  info.callouts.add = {'hal-acl-tool --add-device'} (string list)
  info.callouts.remove = {'hal-acl-tool --remove-device'} (string list)
  info.capabilities = {'access_control'} (string list)
  info.linux.driver = 'usb' (string)
  info.parent = '/org/freedesktop/Hal/devices/usb_device_1d6b_1_0000_00_1a_0' (string)
  info.product = 'Fingerprint Reader' (string)
  info.subsystem = 'usb_device' (string)
  info.udi = '/org/freedesktop/Hal/devices/usb_device_483_2016_noserial' (string)
  info.vendor = 'SGS Thomson Microelectronics' (string)
  linux.device_file = '/dev/bus/usb/001/003' (string)
  linux.hotplug_type = 2 (0x2) (int)
  linux.subsystem = 'usb' (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-2' (string)
  usb_device.bus_number = 1 (0x1) (int)
  usb_device.can_wake_up = true (bool)
  usb_device.configuration_value = 1 (0x1) (int)
  usb_device.device_class = 0 (0x0) (int)
  usb_device.device_protocol = 0 (0x0) (int)
  usb_device.device_revision_bcd = 1 (0x1) (int)
  usb_device.device_subclass = 0 (0x0) (int)
  usb_device.is_self_powered = false (bool)
  usb_device.linux.device_number = 3 (0x3) (int)
  usb_device.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-2' (string)
  usb_device.max_power = 100 (0x64) (int)
  usb_device.num_configurations = 1 (0x1) (int)
  usb_device.num_interfaces = 1 (0x1) (int)
  usb_device.num_ports = 0 (0x0) (int)
  usb_device.product = 'Fingerprint Reader' (string)
  usb_device.product_id = 8214 (0x2016) (int)
  usb_device.speed = 12.0 (12) (double)
  usb_device.vendor = 'SGS Thomson Microelectronics' (string)
  usb_device.vendor_id = 1155 (0x483) (int)
  usb_device.version = 1.0 (1) (double)

lsusb finds:

Bus 001 Device 003: ID 0483:2016 SGS Thomson Microelectronics Fingerprint Reader

I don't have input-utils installed, but can if it would help.

Could you attach the strace output while running the tf-tool command?

rupa (rupa) wrote :

confirming this behavior under 2.6.28-4, and everything working in 2.6.28-3

Noel J. Bergman (noeljb) wrote :

This glitch is not limited to just thinkfinger. It removes the ability for VMware to take over the Bluetooth device on the internal USB, and possibly other USB devices (I haven't had time to test extensively).

The difference appears to be this:

 2.6.28-3: $ lsmod | grep usb
 btusb 21912 0
 bluetooth 70052 21 rfcomm,bnep,sco,l2cap,btusb
 usbcore 178352 5 btusb,ehci_hcd,uhci_hcd

 2.6.28-4: $ lsmod | grep usb
 btusb 21912 3

Notice the difference? Someone changed the kernel configuration. We need to get that reversed.

Changed in linux:
status: New → Confirmed
Changed in linux:
status: Unknown → Confirmed
Noel J. Bergman (noeljb) wrote :

> It removes the ability for VMware to take over the Bluetooth device on the internal USB,
> and possibly other USB devices

OK, usb_storage can be transfered from the host to guest, but bluetooth can't. I'll see what happens in the kernel to fix this bug, and open another if the fix for this doesn't also effect the other.

Noel,

I think you're bluetooth module observations is an artifcact of the following commit:

UBUNTU: Build in BT l2cap,rfcomm,sco
http://kernel.ubuntu.com/git?p=ubuntu/ubuntu-jaunty.git;a=commit;h=0b3c77d51905b3b782208d06756fc4d62df116cd

The bluetooth support is being built into the kernel as opposed to a module so you won't see it in lsmod.

Looking at the git log, there really doesn't seem to be many changes between .3 and .4 that would affect the thinkfinger reader. usbcore (CONFIG_USB) and evdev (CONFIG_INPUT_EVDEV) were changed to be built-in rather than modules but that shouldn't affect anything.

Regards,
Jon Oberheide

This is just a shot in the dark, but you could try libusb 1.0 which was released early December (jaunty still uses the 0.1 package). libusb is used by thinkfinger to communicate with the fingerprint device. It certainly doesn't explain the differing functionality between kernel versions, but who knows.

Noel J. Bergman (noeljb) wrote :

Jon, just for kicks I did try libusb v1 (also building and installing the compat layer). No change. As for the bluetooth problems that were introduced, yes, that commit seems suspect.

Tom, yes, I saw the kernel bug that you added to the tracker. :-)

Noel J. Bergman (noeljb) wrote :

We have a change as of today with 2.6.28-4.11. Accord to https://launchpad.net/ubuntu/+source/linux, we have the following change from upstream:

  [ Upstream Kernel Changes ]

  * USB: re-enable interface after driver unbinds

I have tested each build of 2.6.28-4 as it came out, and this version -- perhaps due to the above change -- is the first that supports thinkfinger. HOWEVER, I am consistently having to swipe TWICE. The first one never works, and the second one works. Oddly, although login, sudo and gksudo all exhibit this behavior, tf-tool does not:

 $ tf-tool --verify

 ThinkFinger 0.3 (http://thinkfinger.sourceforge.net/)
 Copyright (C) 2006, 2007 Timo Hoenig <email address hidden>

 Initializing... [*** VERY LONG DELAY ***] done.
 Please swipe your finger (successful swipes 1/1, failed swipes: 0)... done.
 Result: Fingerprint does match.

Is anyone else experiencing this behavior?

Noel J. Bergman (noeljb) wrote :

> > This glitch is not limited to just thinkfinger. It removes the ability for VMware to take over
> > the Bluetooth device on the internal USB

> I think you're bluetooth module observations is an artifcact of the following commit:
> http://kernel.ubuntu.com/git?p=ubuntu/ubuntu-jaunty.git;a=commit; =0b3c77d51905b3b782208d06756fc4d62df116cd
> The bluetooth support is being built into the kernel as opposed to a module

Perhaps it was, but with today's new 2.6.28-4.11 kernel, I can once again attach the internal Bluetooth device to VMware guests.

Noel J. Bergman (noeljb) wrote :

And broken again in today's 2.6.28-5 kernel.

Interestingly, it works at the initial login screen, and only then. Afterwards, if I run

  $ sudo -i

I get:
 ==> Xorg.0.log <==
 (II) config/hal: Adding input device Virtual ThinkFinger Keyboard
 (**) Virtual ThinkFinger Keyboard: always reports core events
 (**) Virtual ThinkFinger Keyboard: Device: "/dev/input/event11"
 (II) Virtual ThinkFinger Keyboard: Found keys
 (II) Virtual ThinkFinger Keyboard: Configuring as keyboard
 (II) XINPUT: Adding extended input device "Virtual ThinkFinger Keyboard" (type: KEYBOARD)
 (**) Option "xkb_rules" "evdev"
 (**) Virtual ThinkFinger Keyboard: xkb_rules: "evdev"
 (**) Option "xkb_model" "pc105"
 (**) Virtual ThinkFinger Keyboard: xkb_model: "pc105"
 (**) Option "xkb_layout" "us"
 (**) Virtual ThinkFinger Keyboard: xkb_layout: "us"

but am only prompted for a password, and once again:

 $ tf-tool --verify

 ThinkFinger 0.3 (http://thinkfinger.sourceforge.net/)
 Copyright (C) 2006, 2007 Timo Hoenig <email address hidden>

 Initializing...Could not claim USB device.

Changed in linux:
status: Confirmed → Fix Released
Tom Jaeger (thjaeger) wrote :

I just realized that this bug is still present on jaunty. The patch attached to the kernel bug tracker fixes the issue, so I've updated the package to fix this and a few other issues. I'm attaching a .diff.gz instead of a .debdiff since -ubuntu3 contains lots of junk. The package is also available in my PPA:

https://launchpad.net/~thjaeger/+archive/ppa

--

  [Thomas Jaeger]
  * Fix breakage when running on 2.8.28 kernel (LP: #311732)
  * Fix typo in README.Debian (LP: #243339)

  [Jon Oberheide]
  * Use a workaround to convince HAL to treat virtual thinkfinger device as a
    keyboard (LP: #256429)
  * Revert r116 to avoid extra CR being sent.

Tom Jaeger (thjaeger) wrote :
Changed in linux:
status: Confirmed → Fix Released
Noel J. Bergman (noeljb) wrote :

Thanks, Tom. Just confirming that the fixed packages, which I downloaded from your PPA, do in fact, work. :-)

Were you waiting for confirmation before marking "thinkfinger (Ubuntu)" as fixed?

Noel J. Bergman wrote:
> Thanks, Tom. Just confirming that the fixed packages, which I
> downloaded from your PPA, do in fact, work. :-)
>
> Were you waiting for confirmation before marking "thinkfinger (Ubuntu)"
> as fixed?

No, we still need someone to sponsor the upload. The bug will
automatically be marked as fixed as soon as the package hits the archive.

Tom Jaeger (thjaeger) wrote :

The corresponding .debdiff. NB: This will leave zero-sized files behind when applied.

Tom Jaeger (thjaeger) wrote :

Just letting you know, this package is probably not going to make it into jaunty. I've discussed this on #ubuntu-motu and they want to jump me through all sorts of hoops before they'll accept the package. I have neither the time nor the patience to deal with this right now, sorry.

Noel J. Bergman (noeljb) wrote :

Tom,

What hoops? I'm currently going through the process for getting another package updated into Jaunty, and if it is just going through the Freeze Exception process, I can try to do that for thinkfinger, too. I am familiar with all of the three patches.

Tom Jaeger (thjaeger) wrote :

Noel J. Bergman wrote:
> Tom,
>
> What hoops? I'm currently going through the process for getting another
> package updated into Jaunty, and if it is just going through the Freeze
> Exception process, I can try to do that for thinkfinger, too. I am
> familiar with all of the three patches.
>

Two things:

(1) Jon deleted lots of .svn files that really don't belong into the
package. They want them to be added again.

(2) They want the package to use a patch system instead of the inline
patch that it is currently using.

Especially (2) is a total waste of time, considering that any serious
work on the package would start by re-merging with debian first, which
is not possible at this point of the release cycle.

Iain Lane (laney) wrote :

Unsubscribing u-u-s and subscribing u-m-s instead. I've also attached a new copy of the debdiff which I've run through filterdiff -x "*.svn*" to remove all of those deletions. Not converted to a patchsys though as there seem to be several intertwined fixes which I can't separate. Hopefully this won't be a blocker.

Tom Jaeger (thjaeger) wrote :

Thanks, I wasn't aware of filterdiff. I'm attaching a .debdiff that also won't touch the .deps files.

Mozg (andrei-arhont) wrote :

I can confirm that the thinkfinger_0.3+r118-0ubuntu4.diff.gz patch fixes the problem with delays in device initiation and having to swipe the finger twice to get authentication to work.

Chris Cheney (ccheney) on 2009-04-08
Changed in thinkfinger (Ubuntu):
importance: Undecided → High
milestone: none → ubuntu-9.04
status: New → Triaged
Steve Langasek (vorlon) on 2009-04-20
Changed in thinkfinger (Ubuntu Jaunty):
milestone: ubuntu-9.04 → jaunty-updates
trbs (trbs) wrote :

Confirmed, hope this makes it in soon, cause this should be fix out-of-the-box!

farchumbre (farchumbre) wrote :

I had the same problems but now thinkfinger is working great.
The only problem I still have is the multi keyboard.
I use several keyboards, english, french, etc.
ubuntu boots ok, but after resuming from the screensaver the multi keyboard stops working.

Does anyone have the same problem?
thanks

Darron Black (darron) wrote :

This fix worked for me. The #339360 bug appears to be a duplicate of this, and the patch on that bug only partially worked for me (the reader works, but only with large delays)

Tom Jaeger (thjaeger) wrote :

Please sponsor the attached package for karmic. This uses the same code
as the .debdiff I posted for jaunty earlier, but represents a major
cleanup of the build system (.orig.tar.gz went down from 452K to 48K
after a proper export from svn, .diff.gz from 156K to 7.2K).

Launchpad Janitor (janitor) wrote :

This bug was fixed in the package thinkfinger - 0.3+r118-0ubuntu4

---------------
thinkfinger (0.3+r118-0ubuntu4) karmic; urgency=low

  [ Thomas Jaeger ]
  * Fix breakage when running on 2.6.28 kernel (LP: #311732)
  * Fix typo in README.Debian (LP: #243339)

  [ Jon Oberheide ]
  * Use a workaround to convince HAL to treat virtual thinkfinger device as a
    keyboard (LP: #256429)
  * Revert r116 to avoid extra CR being sent.

 -- Thomas Jaeger <email address hidden> Mon, 23 Mar 2009 21:20:01 -0400

Changed in thinkfinger (Ubuntu):
status: Triaged → Fix Released
Iain Lane (laney) wrote :

Uploaded the minimal diff. I strongly suggest that you work with Debian to get your other fixes uploaded there rather than pursuing inclusion in Ubuntu directly. There is no reason they wouldn't be happy to accept your work there. Thanks for your contributions.

For the SRU, a really minimal diff (no typo fixes, for example) targetted to jaunty-updates is required.

Changed in thinkfinger (Ubuntu):
milestone: jaunty-updates → none
status: Fix Released → Fix Committed
status: Fix Committed → Fix Released
Tom Jaeger (thjaeger) wrote :

Filed bug #378416 for the cleanup.

Changed in linux:
importance: Unknown → Medium
Alex Valavanis (valavanisalex) wrote :

Jaunty has reached end-of-life, so I'll close this report. The bug is marked as being fixed in later versions of Ubuntu

Changed in thinkfinger (Ubuntu Jaunty):
milestone: jaunty-updates → none
status: Triaged → Won't Fix
To post a comment you must log in.