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)