omgrant/ft9201-libfprint — explained in plain English
Analysis updated 2026-05-18
Get fingerprint login working on Linux for the FT9201 USB reader.
Use the porting guide to adapt this method to a different Windows-only fingerprint reader.
Study how a Windows DLL can be loaded and called directly from Linux without Wine.
Learn the reverse-engineered USB and firmware boot sequence for this sensor family.
| omgrant/ft9201-libfprint | the412banner/aio-graphics-test | ccccccccvvm/dsp_bypass | |
|---|---|---|---|
| Stars | 21 | 21 | 20 |
| Language | C | C | C |
| Setup difficulty | hard | easy | hard |
| Complexity | 5/5 | 2/5 | 5/5 |
| Audience | developer | general | developer |
Figures from each repo's GitHub metadata at analysis time.
Requires building libfprint from source and fetching vendor DLL and firmware blobs before it works.
This project adds Linux support for a specific USB fingerprint reader, the Focal-systems FT9201, by writing a driver for libfprint, the library that Linux desktops use to talk to fingerprint sensors. The sensor's image is very small, so the generic matching code built into libfprint does not work well on it. Instead, this driver reuses FocalTech's own matching engine, the same code the vendor ships inside its Windows driver, and runs it directly on Linux without needing Wine or an actual Windows installation. It works by loading the vendor's Windows DLL file into memory and providing a small set of stand-in Windows functions so the DLL thinks it is running on Windows, then calling into it to enroll and verify fingerprints. The author reverse-engineered the USB setup and firmware-boot sequence for the device, and the driver has been tested working end to end, including logging into KDE and GNOME through the fprintd service. The repository itself does not include any of the vendor's proprietary files. A setup script downloads the required DLL and firmware from public sources at build time. Installing it does not touch or disable your existing distro's libfprint or replace any system security settings, since it installs the new driver alongside your existing one. The author frames this less as a single driver and more as a reusable method: the same approach of running a vendor's Windows fingerprint matching engine natively on Linux can be adapted to other similar readers, including ones that use an encrypted communication channel, and a guide called PORTING.md walks through how to do that for a new device. It currently only supports one specific hardware variant and runs on 64-bit systems only. The full README is longer than what was shown.
A Linux driver that makes a specific FT9201 USB fingerprint reader work by running the vendor's own Windows matching engine natively, without Wine.
Mainly C. The stack also includes C, libfprint, fprintd.
The README does not state a license for this repository's own code.
Setup difficulty is rated hard, with roughly 1h+ to a first successful run.
Mainly developer.
This repo across BitVibe Labs
double-check against the repo, no cap.