Getting the Fujitsu Palm Scanner to work.
3rdParty - Fujitsu SDK and test/demo code
bin - compiled binaries
etc - config eg driver udev
include - include files copied from the SDK
lib - .so files copied from the SDK
obj - .ko files (driver)
README
sbin - scripts, eg ctl.sh
src - source code for driver and application
Build the driver:
make driver
sbin/ctl.sh install
Build the application:
make handjob
sbin/ctl.sh run
Testing:
sbin/ctl.sh identify $timeout
sbin/ctl.sh enroll $userid
sbin/ctl.sh dump $userid or "all"
sbin/ctl.sh delete $userid or "all" (and confirm)
Configuration:
etc/conf.sh - core ip:port (for notifications)
-
Notes:
A. The actual device
Plug it into a USB2.0. USB3.0 if you plan on using "high power mode" whatever that is (you wont).
Use lsusb to show the system found it: 04c5:1526 Fujitsu, Ltd FUJITSU PalmSecure-F Pro
B. The driver basics
cd fjpalmvein-main # I had to modify some things so it would compile, eg CURRENT_TIME macro
make # end up with fjveincam.ko
lsmod|grep fj # list modules already loaded with fj in the name
sudo insmod fjveincam.ko # module is now allegedly loaded
dmesg # confirmation the module is loaded and all good
uname -r # driver kernel version = 5.15.0-72-generic
sudo cp fjveincam.ko /usr/lib/modules/5.15.0-72-generic/kernel/drivers/usb/misc/
sudo rmmod fjveincam.ko
sudo insmod fjveincam.ko
C. The driver automount rules
sudo cp 93-unicon-palmvene.rules /usr/lib/udev/rules.d/ # automates mount and provides a path
tail -f /var/log/syslog #
Now unplug/replug the device
cat /tmp/fjpv # Should see the date in the file
ls -altr /tmp/usb # Should see device fjveincam0
D. The legal bullshit
Make sure you have the APP KEY P6Kiuy2L4CifuBuK for your C code.
Make sure you have the licence file F3BC4SDK.LIC in you LIB directory.
If everything isn't *JUST SO* it'll barf.
E. The C demo code
Alter the Makefile (CROSS = "") and point -I= at your libs
make
./BioAPI_sample_C_Identify # ErrorDetail 0x2010002 = sensor driver issue
Jun 01 11:27:08 virgil kernel: >>>>>>>>>>>>>>.. USB Driver: /t200/yoloserv/modules/fjpalmvein/C/fjpalmvein-main/fjveincam.c @ 750 (deallocating...): usb_fjveincam_disconnect = 0
Jun 01 11:27:09 virgil kernel: usb 4-6.1: new high-speed USB device number 38 using xhci_hcd
Jun 01 11:27:10 virgil kernel: usb 4-6.1: New USB device found, idVendor=04c5, idProduct=1526, bcdDevice= 2.00
Jun 01 11:27:10 virgil kernel: usb 4-6.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Jun 01 11:27:10 virgil kernel: usb 4-6.1: Product: FUJITSU PalmSecure-F Pro
Jun 01 11:27:10 virgil kernel: usb 4-6.1: Manufacturer: FUJITSU
Jun 01 11:27:10 virgil kernel: >>>>>>>>>>>>>>.. USB Driver: /t200/yoloserv/modules/fjpalmvein/C/fjpalmvein-main/fjveincam.c @ 606 (probed; [device id]): usb_fjveincam_probe = 0
Jun 01 11:27:10 virgil kernel: >>>>>>>>>>>>>>.. USB Driver: /t200/yoloserv/modules/fjpalmvein/C/fjpalmvein-main/fjveincam.c @ 611 (vendor id 0x4c5, device id 0x1526, portnum:1): usb_fjveincam_probe = 0
Jun 01 11:27:10 virgil kernel: >>>>>>>>>>>>>>.. USB Driver: /t200/yoloserv/modules/fjpalmvein/C/fjpalmvein-main/fjveincam.c @ 630 (endpoints): usb_fjveincam_probe = 0
Jun 01 11:27:10 virgil kernel: >>>>>>>>>>>>>>.. USB Driver: /t200/yoloserv/modules/fjpalmvein/C/fjpalmvein-main/fjveincam.c @ 645 (bulk in): usb_fjveincam_probe = 0
Jun 01 11:27:10 virgil kernel: >>>>>>>>>>>>>>.. USB Driver: /t200/yoloserv/modules/fjpalmvein/C/fjpalmvein-main/fjveincam.c @ 652 (bulk out): usb_fjveincam_probe = 0
Jun 01 11:27:10 virgil kernel: >>>>>>>>>>>>>>.. USB Driver: /t200/yoloserv/modules/fjpalmvein/C/fjpalmvein-main/fjveincam.c @ 713 (have a minor): usb_fjveincam_probe = 0
Jun 01 11:27:10 virgil kernel: fjveincam 4-6.1:1.0: USB PalmVeinCam device now attached to usb/fjveincam-160
Jun 01 11:27:10 virgil mtp-probe[306997]: checking bus 4, device 38: "/sys/devices/pci0000:00/0000:00:02.4/0000:05:00.0/usb4/4-6/4-6.1"
Jun 01 11:27:10 virgil mtp-probe[306997]: bus: 4, device: 38 was not an MTP device
Jun 01 11:27:10 virgil systemd-udevd[306996]: 4-6.1:1.0: Process '/usr/lib/snapd/snap-device-helper bind snap_arduino_arduino /devices/pci0000:00/0000:00:02.4/0000:05:00.0/usb4/4-6/4-6.1/4-6.1:1.0 0:0' failed with exit code 1.
Jun 01 11:27:10 virgil systemd-udevd[306996]: 4-6.1:1.0: Process '/usr/lib/snapd/snap-device-helper bind snap_cups_cupsd /devices/pci0000:00/0000:00:02.4/0000:05:00.0/usb4/4-6/4-6.1/4-6.1:1.0 0:0' failed with exit code 1.
!!!!!! IMPORTANT - SDK CREDENTIALS - DONT LOSE/DELETE !!!!!!
Confirmation number 95597197
Registration number Q02S-j80m-UpKL-qk5S
Application Key P6Kiuy2L4CifuBuK << goes in your C code
Email cg@dispension.ca
Passwd Dispension920!
Phone 9024189002 or 19024189002
Name carl goodwin
Institution/Company dispension inc
Country Canada
License# PC34-1000-0600-3469
Zip password zArEPdwn << for unzipping the Auth lib
Website:
User ID: ps0026035 (use with the passwd above)
Validity Period: 2024-06-01 23:59:59 (JST)