Use a cheap fingerprint sensor wirelessly so that I can auth to Windows Hello and other systems that use it in a cost effective manner.
Device | URL | Cost ($USD) | Works With Windows Hello |
---|---|---|---|
Server (Pi Zero W) and Client Running USBIP | Windows Client USB/IP Server | 0 | Yes, but limited by windows client to windows test mode |
Server (Pi Zero W) and Client Running VirtualHere | VirtualHere | 50 | Yes, but 1 device and no client as service for no license, latter may have workaround, license is per server non-transferable |
LR809/FP-HLT01 | AliExpress | 50 | ? |
evolute Identi5 | Evolute | ~93 | ? |
SecuGen Unity 20 Bluetooth BLE | Fulcrum Biometrics | 143 | ? |
HF Security HF7000 | HF Security | ? | ? |
BRT809 | AliExpress | 56 | ? |
ATKey.Card | AuthenTrend | 79 | ? |
Feitian AllinPass | Feitian | 90-110 | ? |
DEAD - While the Pi Zero works well as a server, the biggest issue is that the Windows client which requires kernel mode drivers. To use kernel mode drivers you either need to enable test signed drivers at every boot which is a terrible idea or have them signed with an EV level certificate which costs around $400USD per year. The author of that repository does not seem willing to look into this at this time due to driver/features stability.
I tried to get a Raspberry Pi Zero W as a USBIP server with a Windows 10 Client in order to use a cheap Fingerprint reader for windows hello. Device was connected to Windows 10 first and driver were installed and fingerprint was set up.
Device
root@dietpi:~# lsusb -v -s 001:002
Bus 001 Device 002: ID 2808:93a9 Focal-systems.Corp FT9201Fingerprint.̚
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x2808
idProduct 0x93a9
bcdDevice 1.00
iManufacturer 1 Focal-systems.Corp
iProduct 2 FT9201Fingerprint.̚
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x0020
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 200mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0010 1x 16 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0020 1x 32 bytes
bInterval 0
can't get device qualifier: Resource temporarily unavailable
can't get debug descriptor: Resource temporarily unavailable
Device Status: 0x0000
(Bus Powered)
The RaspberryPi OS worked initially for Raspberry Pi Zero W. Decided to give DietPi a try. This had some issues updating but was successful in the end.
Need to load built-in module. Dashes and underscores are interchangable, so we only need to do:
modprobe usbip_host
echo usbip_host >> /etc/modules-load.d/modules.conf
Need to start daemon.
tmux new -s usbipd
usbipd -4 -d
TODO:
- Create usbipd daemon service
- Set daemon as described in Arch wiki for a device
Bind the device
root@dietpi:~# tmux new -s usbipd
[detached (from session usbipd)]
root@dietpi:~# usbip list -l
- busid 1-1 (2808:93a9)
unknown vendor : unknown product (2808:93a9)
root@dietpi:~# usbip bind -b 1-1
usbip: info: bind device on busid 1-1: complete
- Follow steps under https://github.com/cezanne/usbip-win#windows-usbip-client
- We do need to create a separate folder for
vhci(ude)
driver install with stated files - I previously installed and used VirtualHere, this caused conflits with driver install and I had to remove it. Maybe this was the Steam version?
- https://www.davecorder.org/windows-10/ has a well detailed setup guide
- Use hdwwiz.exe for bringing up Add Legacy Hardware option on Windows 10
- We do need to create a separate folder for
- Power Saving Options https://www.jeffgeerling.com/blogs/jeff-geerling/raspberry-pi-zero-conserve-energy
iwconfig wlan0 txpower 15
to reduce wifi power/usr/bin/tvservice -o
See if disabling HDMI is actually working in DietPi- These settings either seemed todo nothing that my power measuing device could measure or made things worse
- https://github.com/cezanne/usbip-win
- https://wiki.archlinux.org/title/Kernel_module
- https://developer.ridgerun.com/wiki/index.php?title=How_to_setup_and_use_USB/IP
- https://tmuxcheatsheet.com/
- https://www.davecorder.org/windows-10/
Need to post this in: