Escolar Documentos
Profissional Documentos
Cultura Documentos
U.are.U SDK
Version 2
DigitalPersona, Inc.
2012 DigitalPersona, Inc. All Rights Reserved.
All intellectual property rights in the DigitalPersona software, firmware, hardware and documentation included with or
described in this guide are owned by DigitalPersona or its suppliers and are protected by United States copyright laws,
other applicable copyright laws, and international treaty provisions. DigitalPersona and its suppliers retain all rights not
expressly granted.
U.are.U and DigitalPersona are trademarks of DigitalPersona, Inc. registered in the United States and other countries.
Java is a registered trademark of Oracle and/or its affiliates. All other trademarks are the property of their respective
owners.
This DigitalPersona U.are.U SDK Platform Guide for Linux and the software it describes are furnished under license as set
forth in the License Agreement. Except as permitted by such license, no part of this document may be reproduced,
stored, transmitted and translated, in any form and by any means, without the prior written consent of DigitalPersona. The
contents of this manual are furnished for informational use only and are subject to change without notice.
Any mention of third-party companies and products is for demonstration purposes only and constitutes neither an
endorsement nor a recommendation. DigitalPersona assumes no responsibility with regard to the performance or use of
these third-party products.
DigitalPersona makes every effort to ensure the accuracy of its documentation and assumes no responsibility or liability
for any errors or inaccuracies that may appear in it.
Technical Support
To access DigitalPersona technical support resources, go to http://www.digitalpersona.com/support.
Phone support is available at (877) 378-2740 (US) or +1 650-474-4000 (outside the US).
Feedback
Although the information in this guide has been thoroughly reviewed and tested, we welcome your feedback on any
errors, omissions, or suggestions for future improvements. Please contact us at
TechPubs@digitalpersona.com
or
DigitalPersona, Inc.
720 Bay Road, Suite 100
Redwood City, California 94063
USA
(650) 474-4000
(650) 298-8313 Fax
Table of Contents
1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Getting Updated Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Installing on the Development System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Installing on the Target (4500 and 4000B Readers) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Installing on Target Hardware (5100 Reader) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Uninstalling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
12
12
12
12
12
13
13
14
20
25
25
25
25
25
26
27
29
30
31
32
33
33
33
33
33
iii
Table of Contents
Installation Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Installing on the Target Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Enabling and Disabling the USB Hotplug Device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Registering the DigitalPersona U.are.U Device Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Upgrading from Previous Versions of the JavaPOS API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
The JavaPOS Sample Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
34
34
34
35
36
6 Redistribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Merge Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Fingerprint Reader Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Hardware Warnings and Regulatory Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Fingerprint Reader Use and Maintenance Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
45
45
46
iv
Introduction
This manual describes how to use the U.are.U SDK to develop applications that will run on Linux. The U.are.U
SDK is available for multiple platforms and this document describes issues specific to developing applications
that will run on Linux-based platforms:
Chapter 1, Introduction (this chapter) describes how to get the latest version of this documentation.
Chapter 2, Installation provides instructions for installing on your development system and on the target
(Linux) reader.
Chapter 3, Developing Applications with C/C++ lists system requirements for developing and running
applications in C/C++ and describes the sample application.
Chapter 4, Developing Applications with Java lists system requirements for developing and running applications
using Java, provides additional installation instructions and describes the Java sample application.
Chapter 5, Developing Applications with JavaPOS provides information on using the JavaPOS-compliant API
built on the U.are.U framework.
Chapter 6, Redistribution describes the merge modules that are provided to help you redistribute applications
built using the U.are.U SDK.
For a detailed description of the SDK, consult the U.are.U SDK Developer Guide.
Installation
Except as noted in the platform/language-specific chapters, the installation process is the same for all Linux
development.
There are two steps to the installation:
1. Installing on the development system
2. Installing on the device (the target hardware)
These steps are described below.
Chapter 2: Installation
The installer copies all necessary files to the selected folder (by default, the product folder is /opt/
). The files installed on the developers machine are located in the following folders
within the main product folder:
DigitalPersona/UareUSDK
Folder
Contents
Include
Linux/docs
Linux/drivers
Linux/lib
Linux/Samples/bin
Bin
Chapter 2: Installation
1. Copying Files
Depending on the functionality you need, you must copy and unpack the tarballs as shown in the table below.
The files will typically be copied to /usr/lib or /usr/local/lib. To run applications,
LD_LIBRARY_PATH should point to the correct location or the dynamic linker cache should be remade to
include the location with the library files.
Platform
Functionality
Required file
ARM
Capture
DigitalPersona-fpdriver4k-2.1.0.7-1.arm.tar.gz
DigitalPersona-fpcapture-2.1.0-1.arm.tar.gz
Feature extraction
(FingerJet Engine)
DigitalPersona-fpengine-2.1.0-1.arm.tar.gz
Capture
DigitalPersona-fpdriver4k-2.1.0.7-1.x64.tar.gz
DigitalPersona-fpcapture-2.1.0-1.x64.tar.gz
Feature extraction
(FingerJet Engine)
DigitalPersona-fpengine-2.1.0-1.x64.tar.gz
Capture
DigitalPersona-fpdriver4k-2.1.0.7-1.x86.tar.gz
DigitalPersona-fpcapture-2.1.0-1.x86.tar.gz
Feature extraction
(FingerJet Engine)
DigitalPersona-fpengine-2.1.0-1.x86.tar.gz
x64
x86
The folder
/opt/DigitalPersona/UareUSDK/redist
contains the redistributable files for all supported target architectures, including
DigitalPersona-fpkrndrv4k-source-2.1.0.7-1.noarch.tar.gz
which contains the source code for the kernel object for the 4000B and 4500 readers.
Chapter 2: Installation
You would normally build the kernel on your development machine during installation. However if you did not
build the kernel during installation OR your target platform is different than your development platform, you
can build the kernel manually by following the instructions below.
To build the kernel module, the following packages/components must be installed on your system:
binutils
gcc, preferably the same version which was used to build the kernel for the target platform
OR
if the target platform is a different architecture than the development platform, the toolchain for the
cross-compiling binaries for the target platform.
To manually build the kernel module for a target platform that is the same as your development
platform:
1. Change to the /opt/DigitalPersona/UareUSDK/drivers/source/usbdpfp directory.
2. Run make
To manually build the kernel module for a target platform that is the same as your development
platform BUT with a different kernel:
1. Change to the /opt/DigitalPersona/UareUSDK/drivers/source/usbdpfp directory.
2. Run KDIR=<directory with the kernel sources for the target platform> make
To manually build the kernel module for an ARM target platform on an x86 or x64 development
platform:
1. Change to the /opt/DigitalPersona/UareUSDK/drivers/source/usbdpfp directory.
2. Run ARCH=arm CROSS_COMPILE=<cross-toolchain prefix> KDIR=<directory with
the kernel sources for the target platform> make
To install the kernel module
1. Copy the /opt/DigitalPersona/UareUSDK/drivers/source/usbdpfp/mod_usbdpfp.ko
file to the kernel module directory /lib/modules/uname -r/kernel/drivers/biometric.
You might need to create the target directory first.
2. If your system uses udev, copy the 40-usbdpfp.rules file to its proper location in the /etc/udev/
rules.d directory.
cp /opt/DigitalPersona/UareUSDK/redist/40-usbdpfp.rules /etc/udev/
rules.d
If your system does not use udev, you may need to manually change the group and user permissions for
the files /dev/usbdpfp0 and /dev/usbdpfpPnp to not require user applications to be run with root
privileges. You may need to make the following change:
Chapter 2: Installation
Platform
Functionality
Required file
ARM
Capture
DigitalPersona-fpdriver5000-2.0.0.7-1.arm.tar.gz
DigitalPersona-fpcapture-2.0.0-1.arm.tar.gz
Feature extraction
(FingerJet Engine)
DigitalPersona-fpengine-2.0.0-1.arm.tar.gz
Capture
DigitalPersona-fpdriver5000-2.0.0.7-1.x64.tar.gz
DigitalPersona-fpcapture-2.0.0-1.x64.tar.gz
Feature extraction
(FingerJet Engine)
DigitalPersona-fpengine-2.0.0-1.x64.tar.gz
Capture
DigitalPersona-fpdriver5000-2.0.0.7-1.x86.tar.gz
DigitalPersona-fpcapture-2.0.0-1.x86.tar.gz
Feature extraction
(FingerJet Engine)
DigitalPersona-fpengine-2.0.0-1.x86.tar.gz
x64
x86
The folder
/opt/DigitalPersona/UareUSDK/redist
contains the redistributable files for all supported target architectures, including
DigitalPersona-fpkrndrv5000-source-2.0.0.7-1.noarch.tar.gz
which contains the source code for the kernel object for the 4000B and 4500 readers.
10
Chapter 2: Installation
Uninstalling
Uninstalling
If you need to uninstall the SDK, run
./uninstall
Note that you must be root to uninstall.
11
Pre-Requisites
This chapter assumes that you have a working knowledge of C/C++ and that you know how to develop for
applications that will run on Linux platforms and devices.
System Requirements
Kernel
The Linux kernel that is supported for target and development systems is:
4500 reader: will compile correctly only for kernel version 2.6.18 to 2.6.41.
Development System
The development system can be any Intel-based Linux system, as long as it has a kernel supported by the
reader (as specified above).
DigitalPersona supports and has fully tested the following development platforms (32-bit and 64-bit):
Fedora 14-17
These utilities, packages, and libraries should already be installed on your system:
usbutils
Intel x86 architecture with CPU from 600MHz and at least 16Mb of available RAM;
Intel x64 (x86-64) architecture with CPU from 600MHz and at least 16Mb of available RAM;
ARMv4T EABI with CPU from 400MHz and at least 16Mb of available RAM.
12
x64 (x86-64)
ARMv4T
520
650
530
540
585
260
a USB port
16 MB free memory
The SDK works on a variety of hardware and is intended to have a small footprint so that it can run even on
minimal hardware. Less capable hardware will work, but response time may not be optimal.
The Bin subdirectory contains pre-compiled sample applications for ARM, x86 and x64 architectures.
The UareUCaptureOnly subdirectory contains the sources of the sample application that
demonstrates fingerprint capture. This application does not have any dependencies on the FingerJet
engine libraries.
The UareUSample subdirectory contains the source for the sample application that demonstrates the
full functionality of the SDK: fingerprint capture, feature extraction and verification, identification and
enrollment of fingerprints. This application has dependencies on the capture and FingerJet Engine
libraries.
13
To manually build the UareUCaptureOnly sample application for ARM architecture (on a x86 or x64
development system):
1. Change to the /opt/DigitalPersona/UareUSDK/Linux/Samples/UareUCaptureOnly directory.
2. Run CC=<full name of C cross-compiler> CFLAGS=L/opt/DigitalPersona/lib_arm make
(Depending on the cross-toolchain, additional parameters may be required in the CFLAGS parameter, for
example, for GCC: CFLAGS=-march=armv4t -L/opt/DigitalPersona/lib_arm
You must begin by selecting a fingerprint reader device to use with the application. After you press 1 and Enter
to select the reader, the application will search for any fingerprint readers and display a list of the readers it
14
finds, as shown below. Choose the desired reader and press Enter to continue.
15
Once a reader is selected, you will see a screen that shows information about the reader and its capabilities, as
shown below.
16
Try touching your index finger as the first fingerprint and your middle finger as the second fingerprint and note
that they do not match.
Press the Esc key to return to the main menu.
17
18
Once you have finished testing the enrollment feature of the sample application, press Ctrl C to return to the
main menu.
This completes the demonstration of the UareUSample application. Press E to exit from the main menu.
19
20
You must begin by selecting a fingerprint reader device to use with the application. After you press 1 to select
the reader, the application will search for any readers and display a list of any readers it finds, as shown below.
Choose the desired reader and press Enter to continue.
21
Once a reader is selected, you will see a screen that shows information about the reader and its capabilities, as
shown below.
22
Select 2 and press Enter to test the capture function of the sample application. The capture function simply
puts the reader into fingerprint capture mode and waits til a fingerprint is detected, as shown in the picture
below.
Once you have finished testing the capture feature of the sample application, press Ctrl C to return to the main
menu.
23
To test the streaming feature (not available on all fingerprint readers), select 3 and press Enter to test the
streaming function of the sample application. The streaming function simply puts the reader into fingerprint
stream mode and waits til a fingerprint is detected, as shown in the picture below.
As you press your finger on the reader, images will be captured and their quality score displayed. Press E to exit
streaming mode.
This completes the demonstration of the UareUCaptureOnly application. Press E to exit from the main
menu.
24
Pre-Requisites
This chapter assumes that you have a working knowledge of Java and that you know how to develop for Linux
readers.
System Requirements
Development System
The development system can be any Linux system, as long as it has a kernel supported by the reader (as
specified in Developing Applications with C/C++ on page 12).
Intel x86 architecture with CPU from 600MHz and at least 96MB of available RAM
Intel x64 (x86-64) architecture with CPU from 600MHz and at least 96MB of available RAM
x86
x64
100
120
a USB port
The SDK works on a variety of hardware and is intended to have a small footprint so that it can run even on
minimal hardware. Less capable hardware will work, but response time may not be optimal.
25
3. Make sure that dpuareu.jar is in the classpath and libdpuareu_jni.so is accessible by JVM. For
example:
java -cp "./UareUSampleJava.jar:/opt/DigitalPersona/UareUSDK/Linux/lib/
java/dpuareu.jar" -Djava.library.path="/opt/DigitalPersona/UareUSDK/
Linux/lib/x86" UareUSampleJava
26
How to use the streaming feature to display live fingerprint data on the screen
Selecting a Reader
Selecting a Reader
To choose the reader, click on the Select new reader button. You will see a list of available readers and you can
choose the desired device, as shown below:
27
Selecting a Reader
To see the reader capabilities, click on the Get reader capabilities button. The capabilities will be displayed, as
shown in the image below.
28
Enrolling a Finger
Enrolling a Finger
Click on Run enrollment to begin enrolling a test subject.
You will see a series of prompts to scan fingers for enrollment, as shown below.
After the first finger is successfully scanned, you will be prompted to scan additional fingers until a sufficient
number of high quality scans are complete. The number of fingers requested will vary depending on the image
scans - the enrollment functions will continue to request scans until an acceptable enrollment record has been
created.
When enrollment is complete, click Back to return to the main screen.
29
Identifying a Fingerprint
Identifying a Fingerprint
To test the identification feature, click on the Run identification button. Recall that identification is a 1-tomany comparison where the application searches through all of the enrolled fingers to find a match. For this
example, we do not have a stored database, so the sample application first prompts you to put fingers on the
reader so that it can create a FMD. After a FMD is created, you will be prompted to put any finger on the reader
to identify against the FMD that was just created.
When you click the Run identification button, you will be prompted to place your fingers on the reader. If you
press an enrolled finger on the reader, you will see that a match was found. In the screen image below, we
successfully identified a user.
30
Verifying a Fingerprint
Verifying a Fingerprint
To test the verification feature, click on the Run verification button. Recall that verification is a 1-to-1
comparison where the application matches against a specified fingerprint. When you click the Run verification
button, you will be prompted to place your finger on the reader. As with the identification example above, in
the screen below, we have successfully verified a user.
31
32
Pre-Requisites
This chapter assumes that you have a working knowledge of JavaPOS and that you know how to develop for
Linux readers.
System Requirements
This section lists the minimum software and hardware requirements needed to work with U.are.U SDK.
Linux Kernel
For both target and development systems, the kernel object for the U.are.U 4500 reader will compile correctly
only for Linux kernel versions 2.6.18 to 3.4.0
Development System
The development system can be any Linux system, as long as it has a kernel supported by the reader (as listed
above).
Intel x86 architecture with CPU from 600MHz and at least 96MB of available RAM
Intel x64 (x86-64) architecture with CPU from 600MHz and at least 96MB of available RAM
x86
x64
1777
1796
33
Installation Notes
Installation Notes
After installing the Java API on your development system as described on Installation on page 6, you need to do
the following additional steps.
Run /UareUSDK/drivers/hotplug.sh
34
35
36
37
Buttons area
This area is located at the left of the window and contains buttons that initiate calls to various methods for
interacting with the fingerprint reader and for performing fingerprint enrollment, verification, and
identification operations.
Messages area
This area is located above the Buttons area and displays messages that inform the user of system activity,
invite the user to perform actions such as touching the fingerprint reader, or advise the user of system
errors. The message that appears when you start the application is Click to open the device....
Log area
This area is located in the middle of the window and displays a log of system activity, including method
calls and error codes.
Properties area
This area is located at the right of the window and displays a list of properties, both common and specific
(in the Property name column), and their current values (in the Value column).
Click Open.
The open method of the Device Control object is called.
If the call succeeds, the connection with the fingerprint reader is opened and various properties (common
and specific) are set to their default values. These properties and values are displayed in the Properties
area, and Device opened... appears in the Messages area, as shown in the screen shot below.
NOTE: As each method is called, any properties that change are displayed in the Properties area.
38
If the method call fails, a failure message appears in the Messages area and error codes are displayed in
the Log area.
Once the connection with the fingerprint reader has been opened, it must be claimed.
To claim the fingerprint reader
Click Claim.
The claim method of the Device Control is called, the claimed property is set to true, and Exclusive
accessed appears in the Messages area.
Once the connection with the fingerprint reader has been claimed, it must be enabled.
To enable the fingerprint reader
Enrolling a fingerprint consists of capturing four fingerprint images, converting them into fingerprint preenrollment templates, and then creating an enrollment template from these templates.
To perform fingerprint enrollment
1. Click Begin Enroll Capture.
The beginEnrollCapture method of the Device Control is called and Touch the sensor four times
appears in the Messages area.
39
2. Touch the fingerprint reader four times. Follow the instructions that appear in the Messages area to guide
you.
If the method call succeeds, an enrollment template is created and Total enrollment completed: N
appears in the Messages area, where N is the number of total enrollments.
If the method call fails, a failure message appears in the box in the Messages area. If an error occurs,
appropriate messages appear in the Messages area, and error codes are displayed in the Log area.
To perform fingerprint verification
1. Click Begin Verify Capture.
The beginVerifyCapture method of the Device Control is called and Touch the sensor to capture sample
data appears in the Messages area.
If the method call fails, a failure message appears in the Messages area. If an error occurs, appropriate
messages appear in the Messages area, and error codes are displayed in the Log area.
2. Touch the fingerprint reader.
If the method call succeeds, a verification template is created and Sample Data Captured appears in the
Messages area.
If the method call fails, a failure message appears in the Messages area. If an error occurs, appropriate
messages appear in the Messages area, and error codes are displayed in the Log area.
3. Click Verify Match.
The verifyMatch method of the Device Control is called.
If the method call succeeds, a match is performed using the latest enrollment template available and the
verification template that was created in step 2, and Verification success! or Verification failed! appears
in the Messages area.
If the method call fails, a failure message appears in the Messages area. If an error occurs, appropriate
messages appear the Messages area, and error codes are displayed in the Log area.
To perform fingerprint identification
1. Click Begin Verify Capture.
If the method call fails, a failure message appears in the Messages area. If an error occurs, appropriate
messages appear in the Messages area, and error codes are displayed in the Log area.
2. Touch the fingerprint reader.
If the method call succeeds, a verification template is created and Sample Data Captured appears in the
Messages area.
If the method call fails, a failure message appears in the Messages area. If an error occurs, appropriate
messages appear in the Messages area, and error codes are displayed in the Log area.
40
41
If the method call succeeds, the enrollment template array set and the verification template are cleared. A
new verification template and a set of enrollment templates can now be created.
If the method call fails, a failure message appears in the Messages area, and error codes are displayed in
the Log area.
Here is a demonstration of a sample sequence, showing the log area and messages.
In the screenshot below, the sample application window shows the following sequence of actions:
Open
Claim,
Device enable,
Captured 4 fingers,
Captured 1 finger,
Verify match,
42
43
Click Close.
The Close method of the Device Control is called.
If the method call succeeds, the connection with the fingerprint reader is closed, all of the controls other
than the Open button are disabled, and the properties are reset, or cleared.
If the method call fails, a failure message appears in the Messages area, and error codes are displayed in
the Log area.
44
Redistribution
You may redistribute the files in the redist folder in the U.are.U SDK software package (typically located at /
opt/DigitalPersona/UareUSDK/redist) to your end users pursuant to the terms of the end user
license agreement (EULA), attendant to the software and located in the /opt/DigitalPersona/
UareUSDK/Linux/Docs folder in the SDK software package.
When you develop a product based on the U.are.U SDK, you need to provide the redistributables to your end
users. These files are designed and licensed for use with your application.
Per the terms of the EULA, DigitalPersona grants you a non-transferable, non-exclusive, worldwide license to
redistribute, either directly or via the respective merge modules, the following files contained in the redist
folder in the U.are.U SDK software package to your end users and to incorporate these files into derivative
works for sale and distribution.
Merge Modules
The table below shows the merge modules that are required for each platform.
C/C++
Java
JavaPOS
Description
x86
x64
x86
x64
x86
x64
DpDrivers
Device Components
DpPolicies_OTW
DpCore
Required components
DpCore_x64
DpProCore
DpProCore_x64
x
DigitalPersona
Workstation Pro
components
x
x
x
x
45
Chapter 6: Redistribution
file in the redist directory. You may copy and redistribute the language, including the copyright and
trademark notices, set forth in the Warnings and Regulatory Information.pdf file.
46