Fingerprint GUI

A place to discuss issues of the Fingerprint GUI.

You can subscribe to this discussion group using an RSS feed reader.

fingerprint GUI on OpenSuse 11.2

I have a new laptop and I am trying to make fingerrint-GUI running under OpenSuse - at least enroll and verify fingerprints, using it to login will be the next step...
but I cannot make it working even if I followed carefully the instructions.
This is my setup:

sony vaio laptop vpcz11c5e

OpenSuse 11.2 x86_64

kernel 2.6.31.12-0.2-desktop #1 SMP PREEMPT 2010-03-16 21:25:39 +0100 x86_64 x86_64 x86_64 GNU/Linux

Bus 001 Device 003: ID 147e:1001 Upek
Device Descriptor:
  bLength                18
  bDescriptorType        1
  bcdUSB              1.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass        0
  bDeviceProtocol        0
  bMaxPacketSize0        8
  idVendor          0x147e Upek
  idProduct          0x1001
  bcdDevice            0.43
  iManufacturer          1 TouchStrip
  iProduct                2 Fingerprint Sensor
  iSerial                0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                9
    bDescriptorType        2
    wTotalLength          39
    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          3
      bInterfaceClass      255 Vendor Specific Class
      bInterfaceSubClass      0
      bInterfaceProtocol      0
      iInterface              0
      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              0
      Endpoint Descriptor:
        bLength                7
        bDescriptorType        5
        bEndpointAddress    0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type              None
          Usage Type              Data
        wMaxPacketSize    0x0040  1x 64 bytes
        bInterval              0
      Endpoint Descriptor:
        bLength                7
        bDescriptorType        5
        bEndpointAddress    0x83  EP 3 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type              None
          Usage Type              Data

  Endpoint Descriptor:
        bLength                7
        bDescriptorType        5
        bEndpointAddress    0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type              None
          Usage Type              Data
        wMaxPacketSize    0x0040  1x 64 bytes
        bInterval              0
      Endpoint Descriptor:
        bLength                7
        bDescriptorType        5
        bEndpointAddress    0x83  EP 3 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type              None
          Usage Type              Data

        wMaxPacketSize    0x0004  1x 4bytes
        bInterval              10
Device Status:    0x0000
  (Bus Powered)


so the kernel can see the fingerprint...
Notice also that  I have both Windows 7 and OpenSuse installed separately on the disk.
The fingerprint biometric device works fine on Windows while I cannot making working under linux hence it is not an hardware issue.
I tried to use fingerprint software
fingerprint-gui-0.13
also by patching src/res/usb.ids in order to recognize the fingerprint device that is 147e:1001 and not the listed
147e:1000 (and indeed it can find it this way) but every time I try to access the interface I get this error:

May  7 15:55:39 linux-emiliano fingerprint-gui[15390]: Started.
May  7 15:55:39 linux-emiliano fingerprint-gui[15390]: Proprietary lib "libbsapi.so" loaded.
May  7 15:55:39 linux-emiliano fingerprint-gui[15390]: Libfprint initialized.
May  7 15:55:39 linux-emiliano fingerprint-gui[15390]: Libbsapi initialized.
May  7 15:55:39 linux-emiliano fingerprint-gui[15390]: Found USB device: Linux Foundation/2.0 root hub.
May  7 15:55:39 linux-emiliano fingerprint-gui[15390]: Found USB device: Intel Corp./Integrated Rate Matching Hub.
May  7 15:55:39 linux-emiliano fingerprint-gui[15390]: Found USB device: Upek/Bioemimetric Touchchip/Touchstrip
Fingerprint S
ensor#011.
May  7 15:55:39 linux-emiliano fingerprint-gui[15390]: Found USB device: Ricoh Co., Ltd/unknown device.
May  7 15:55:39 linux-emiliano fingerprint-gui[15390]: Found USB device: Linux Foundation/2.0 root hub.
May  7 15:55:39 linux-emiliano fingerprint-gui[15390]: Found USB device: Intel Corp./Integrated Rate Matching Hub.
May  7 15:55:39 linux-emiliano fingerprint-gui[15390]: Found USB device: Darfon Electronics Corp./Benq Mouse.
May  7 15:55:39 linux-emiliano fingerprint-gui[15390]: Have libbsapi-device
mid01,usb,device=#01VID_147e_PID_1001_BCD_0043_BU
S_001.
May  7 15:55:39 linux-emiliano fingerprint-gui[15390]: initializing libbsapi device (vend/prod) 0x147e/0x1001
May  7 15:55:39 linux-emiliano fingerprint-gui[15390]: Added libbsapi.
May  7 15:55:39 linux-emiliano fingerprint-gui[15390]: Current device set to 0 -- libbsapi.
May  7 15:55:41 linux-emiliano fingerprint-gui[15390]: Please Swipe Your Right Index.
May  7 15:55:41 linux-emiliano fingerprint-gui[15390]: Swipe finger at libbsapi.
May  7 15:55:41 linux-emiliano fingerprint-gui[15390]: Thread started.
May  7 15:55:41 linux-emiliano fingerprint-gui[15390]: Starting acquire.
May  7 15:55:41 linux-emiliano fingerprint-gui[15390]: ABSOpen() failed -1001 (An internal error occurred (pt: tfmerr
-1001).
).
May  7 15:55:41 linux-emiliano fingerprint-gui[15390]: No device open.
May  7 15:55:41 linux-emiliano fingerprint-gui[15390]: Thread ended normally.
May  7 15:55:43 linux-emiliano fingerprint-gui[15390]: qApp exit.


I have set the nvm virtualization and that I have this other software installed:
libfakekey0-0.1-5.2.x86_64.rpm
libqca2-2.0.2-3.5.x86_64
libfprint-0.0.6-12.3.x86_64
libqt4-4.5.3-2.4.2.x86_64

Steps to reproduce in my case are:
1) start fingerprint-gui
2) clicking on Scan/Verify get error window with "Cannot open fingerprint device - Permission problems?"

but as I wrote:

cat /etc/upek.cfg
nvmprefix="/var/upek_data/.NVM"

ls -lh /etc/upek.cfg
-rw-r--r-- 1 root root 32 May  7 15:46 /etc/upek.cfg

ls -lh /var/ |grep upek
drwxrwxrwx  2 root root 4.0K May  7 15:51 upek_data/
drwxrwxrwx  2 root root 4.0K May  7 10:37 upek/

lsmod | grep ui
uinput                12360  0

What kind of error is:
ABSOpen() failed -1001 (An internal error occurred (pt: tfmerr -1001) ?

Does anybody have a clue on what I could try to make the fingerprint working?
Thanks, Emiliano Mocchiutti
Permalink Emiliano Mocchiutti 
May 7th, 2010 5:56pm
Error -1001 is not documented UPEKs API documentation, so I don't know what it means.

Do you have a rules file in /etc/udev/rules.d/ (or wherever OpenSuse has its rules files? You need at least some udev rule like this:

ATTRS{idVendor}=="147e", ATTRS{idProduct}=="1001", SYMLINK+="input/touchchip-%k", MODE="0664", GROUP="plugdev"

and you must be a member of the "plugdev" group.

Did you try to start fingerprint-gui with root privileges to proof it's not a permission problem?

Does the device create .NVM* files in "/var/upek_data/"?

W.U.
Permalink Wolfgang Ullrich 
May 7th, 2010 8:53pm
>Do you have a rules file in /etc/udev/rules.d/ (or >wherever OpenSuse has its rules files? You need at least >some udev rule like this:
>ATTRS{idVendor}=="147e", ATTRS{idProduct}=="1001", >SYMLINK+="input/touchchip-%k", MODE="0664",GROUP="plugdev"
>and you must be a member of the "plugdev" group.

this was missing but even adding the group, changing fstab accordingly and adding the rule it doesn't help, always the same error.

>Did you try to start fingerprint-gui with root privileges >to proof it's not a permission problem?

yes, up to now I am working as root... I tried as user, error is the same plus some other printout saying that I have no rights to write usb device nodes:

|Emi@linux-emiliano ~>fingerprint-gui
libusb couldn't open USB device /dev/bus/usb/001/001: Permission denied.
libusb requires write access to USB device nodes.
libusb couldn't open USB device /dev/bus/usb/001/002: Permission denied.
libusb requires write access to USB device nodes.
libusb couldn't open USB device /dev/bus/usb/001/004: Permission denied.
libusb requires write access to USB device nodes.


>Does the device create .NVM* files in "/var/upek_data/"?

no, the directory is empty (ls -la = . .. )


BUT I have just notice in this moment that
cat /proc/bus/usb/devices |grep -i driver

gives for fingerprint:
I:* If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00
Driver=(none)

_none_ !! shouldn't be fprint or something like that?

E.M.
Permalink Emiliano Mocchiutti 
May 7th, 2010 11:49pm
sorry, that really doesn't matter infact the gui find the library and that library respondo with an error...
Moreover, I noticed that the fprint lib
http://reactivated.net/fprint/wiki/Supported_devices
supports the fingerprint device 147e/2016 , I recompiled it changing 2016 into 1001 to see if it works; doing this way now when I run fingerprint-gui I can choose between the proprietary library and fprint library. However even if I get no errors in the log nor from the gui the finger scan stuck and does not work...
E.M.
Permalink Emiliano Mocchiutti 
May 8th, 2010 9:09am
Thanks to the UPEK support I was able to solve the issue and to use my fingerprint device. The problem is that the latest libusb installed with SuSe is not compatible with the UPEK build of libsapi.so :


There is a know problem linked to libusb ver. 0.1.13 which actually acts as a wrapper for libusb ver. 1.0. We will fix the issue in next release of BSAPI for Linux, but we cannot expect this sooner than in Q2.

In the meantime, following workaround should work:
1. Open "YaST" -> "Software Repositories"
2. Click "Add" -> "Next"
3. Fill some Repository Name: e.g. "suse 11.1"
4. Fill URL: suse/" target="_blank">http://download.opensuse.org/distribution/11.1/repo/oss/suse/
5. Click "Next" and finish process with "OK" (ignore warning if it appears)
6. Open "Software Management"
7. Search for "libusb"
8. Select "libusb-0_1-4" - you should see version 0.1.13-xxx *
9. Go to tab "Versions" and check 0.1.12-xxx-x86_64
10. Just to be sure mark libusb-1_0-0 (probably version 1.0.x) for removal
11. Click "Accept" and confirm dependency resolve if necessary.

* if installed "libusb-0_1-4-32bit" repeat steps 8 - 10

It worked flawlessly for us, but as it is compiled against different core, it may cause some troubles. In such cases, please upgrade to the 1.0 (0.1.13) via Yast again.

Once the correct libusb is installed, try to run the sample applications supplied with the SDK.
1) Place "libbsapi.so" to /usr/local/lib/libbsapi.so
2) Run following command: export LD_LIBRARY_PATH=/usr/local/lib
3) Go to /BSAPI/samples/FirstStep and compile the sample code using "make" command
4) Run the sample "./FirstStep"

You can also repeat steps 3 & 4 to compile and run the second sample application in /Biometry directory.


I must add that in order to compile fingerprint gui I had also to downgrade the libfprint packages.
Now I can scan and save my fingerprints, next step will be to make it working at least for login under SuSe...

E.M.
Permalink Emiliano Mocchiutti 
May 11th, 2010 12:05pm

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics