
Focal-systems FT9201 (2808:93a9) USB फ़िंगरप्रिंट रीडर के लिए Linux libfprint ड्राइवर — FocalTech के स्वयं के Windows मैचिंग इंजन को Linux पर मूल रूप से चलाता है, कोई Wine नहीं। अन्य Windows-Hello-only रीडर को पोर्ट करने की एक विधि शामिल है।
Linux फिंगरप्रिंट समर्थन Focal-systems FT9201 USB रीडर के लिए
(2808:93a9, जो एक स्टैंडअलोन विंडोज हैलो डोंगल के रूप में बेचा जाता है), libfprint ड्राइवर के रूप में।
सेंसर एक छोटा 96×96 ऑप्टिकल रीडर है। libfprint का अंतर्निहित मिलानकर्ता इतनी छोटी छवि पर खराब काम करता है, इसलिए यह ड्राइवर इसके बजाय FocalTech के स्वयं के मिलान इंजन का पुन: उपयोग करता है — उनके हस्ताक्षरित विंडोज ड्राइवर से ftWbioEngineAdapter.dll — जो लिनक्स पर एक छोटे इन-प्रोसेस PE लोडर के साथ मूल रूप से चलता है। कोई Wine, कोई विंडोज, कोई क्लाउड नहीं।
यह रिपॉजिटरी केवल एक ड्राइवर नहीं, बल्कि एक पुन: प्रयोज्य विधि भी है। तकनीक — विक्रेता के विंडोज मिलान इंजन को लिनक्स पर मूल रूप से चलाना, बिना Wine के — अन्य "केवल विंडोज हैलो" रीडरों पर लागू होती है, जिनमें वे भी शामिल हैं जो SDCP सुरक्षित चैनल (Synaptics/Goodix/ELAN/EgisTec-श्रेणी के क्रिप्टो सेंसर) भेजते हैं, वैकल्पिक
src/crypto_shims.cमॉड्यूल के माध्यम से। FT9201 कार्य उदाहरण है; इन-प्रोसेस लोडर, WinBio ब्रिज, और क्रिप्टो-बाइपास लेयर अगले डिवाइस पर ले जाए जाते हैं। चरण-दर-चरण विधि और जो यथावत पुन: उपयोग किया जा सकता है, उसके लिए PORTING.md देखें।
वास्तविक हार्डवेयर पर एंड-टू-एंड कार्य कर रहा है: fprintd / कमांड-लाइन टूल्स के माध्यम से एनरोल और वेरिफाई करें, और एक बार स्थापित होने पर KDE/GNOME में। यह विक्रेता के वास्तविक एल्गोरिदम का उपयोग करके आपकी उंगली का मिलान करता है।
इस सटीक रीडर (ASIN B0DK7LQZGH) के विरुद्ध विकसित और परीक्षण किया गया — 2808:93a9 का FT9348W वेरिएंट।
चेतावनियाँ:
2808:93a9 डिवाइस के उस FT9348W वैरिएंट पर परीक्षण किया गया।ft_engine.c एक ~450-लाइन का लोडर है जो ftWbioEngineAdapter.dll को मेमोरी में मैप करता है, इसके द्वारा आयात किए जाने वाले ~90 kernel32 फ़ंक्शन प्रदान करता है, एक नकली विंडोज TEB सेट अप करता है, और एनरोल/वेरिफाई के लिए इंजन के WinBio इंटरफ़ेस को कॉल करता है।fprintd के डिफ़ॉल्ट MemoryDenyWriteExecute हार्डनिंग के तहत चलता है — आपको किसी भी सुरक्षा सेटिंग को अक्षम करने की आवश्यकता नहीं है।पूर्ण तकनीकी लेख के लिए docs/how-it-works.md देखें।
बिल्ड टूल्स + libfprint की बिल्ड निर्भरताएँ। Fedora/Nobara पर:
sudo dnf install git meson ninja-build gcc cabextract python3 \
glib2-devel gusb-devel nss-devel pixman-devel gobject-introspection-devel \
libgudev-devel systemd-devel
(Debian/Ubuntu: समकक्ष — libglib2.0-dev libgusb-dev libnss3-dev libpixman-1-dev libgudev-1.0-dev libsystemd-dev, और cabextract।)
git clone https://github.com/OMGrant/ft9201-libfprint
cd ft9201-libfprint
scripts/fetch-blobs.sh # विक्रेता DLL + MCU फ़र्मवेयर खींचें (नीचे नोट देखें)
scripts/build.sh # पिन किया हुआ libfprint क्लोन करें, ड्राइवर को ग्राफ्ट करें, बिल्ड करें
बिना कुछ इंस्टॉल किए इसे आज़माएँ:
FT9201_ENGINE_DLL=$PWD/blobs/ftWbioEngineAdapter.dll \
LD_LIBRARY_PATH=libfprint/build/libfprint \
libfprint/build/examples/enroll
इसे KDE/GNOME/लॉगिन के लिए इंस्टॉल करें (साइड-बाय-साइड; आपके डिस्ट्रो का libfprint अकेला छोड़ दिया गया है, कोई हार्डनिंग अक्षम नहीं):
sudo scripts/install.sh
fprintd-enroll
सब कुछ पूर्ववत करें: sudo scripts/install.sh --uninstall।
इस रिपॉजिटरी में कोई मालिकाना बाइनरी नहीं है। दो फ़ाइलें FocalTech की हैं और scripts/fetch-blobs.sh द्वारा बिल्ड समय पर मौजूदा सार्वजनिक स्रोतों से लाई जाती हैं:
| फ़ाइल | यह क्या है |
|---|
यदि कोई डाउनलोड URL बदल गया है, तो आपको केवल उन दो फ़ाइलों की आवश्यकता है:
ftWbioEngineAdapter.dll — Microsoft अपडेट कैटलॉग में "FocalTech Electronics Biometric" खोजें (ड्राइवर 1.0.3.58, हार्डवेयर आईडी USB\VID_2808&PID_93A9 से मेल खाता है)। .cab डाउनलोड करें, cabextract से निकालें, और ftWbioEngineAdapter.dll को blobs/ में डालें।FOCALFP_9348_FW_APP प्रतीक हो (जैसे ft9201-static से) और python3 scripts/extract-firmware.py <that-libfprint-2.so> src/ft9201_fw.h चलाएँ।फिर scripts/build.sh फिर से चलाएँ।
पुन: प्रयोज्य विधि और क्रिप्टो-सेंसर पथ अतिरिक्त रूप से निम्नलिखित के काम पर आधारित है:
यह एकमात्र दृष्टिकोण नहीं है — विकल्प मुख्य रूप से इस बात में भिन्न हैं कि वे FocalTech के मिलानकर्ता का पुन: उपयोग कैसे करते हैं (वे सभी करते हैं; छोटा सेंसर सामान्य मिलान को खारिज करता है)।
9338 → 93a9) को बाइनरी-पैच करता है।
.deb स्थापित करें, दो बाइट्स पैच करें, कोई रिवर्स-इंजीनियरिंग नहीं। लेकिन इसे TOD-सक्षम libfprint (Debian/Ubuntu-परिवार; मूल Fedora/Arch पर नहीं) की आवश्यकता है, यह आपके पूरे सिस्टम libfprint को एक पुराने, पूरी तरह से बंद बिल्ड से बदल देता है, और आपको इसे पिन रखने के लिए पैकेज मैनेजर से लड़ना पड़ता है। यह प्रोजेक्ट इसके बजाय एक खुला ड्राइवर वितरित करता है, साइड-बाय-साइड स्थापित करता है (आपके डिस्ट्रो का libfprint अछूता है), बिना TOD के मेनलाइन libfprint पर चलता है, और केवल पृथक विक्रेता मिलानकर्ता DLL लोड करता है — जो कि सभी रिवर्स-इंजीनियरिंग द्वारा खरीदा गया है।उन .deb/RPM पैकेजों द्वारा पुनर्वितरित मालिकाना Linux TOD ड्राइवर GPD Win 4 के लिए एक FocalTech/GPD रिलीज़ प्रतीत होता है जिसे बाद में आधिकारिक वितरण से हटा लिया गया — यही कारण है कि अब यह केवल समुदाय द्वारा पुनर्होस्ट के रूप में जीवित है। (यह भी ध्यान दें कि कुछ GPD Win 4 इकाइयाँ पूरी तरह से एक अलग सेंसर, Chipsailing CS9711, भेजती हैं, यह FocalTech भाग नहीं।)
1c7a:0577) के लिए एक Linux ड्राइवर प्रयास, एक और प्रेस-प्रकार "विंडोज हैलो ओनली" रीडर (52×72 सक्रिय सेंसर)। अलग विक्रेता और USB प्रोटोकॉल, लेकिन वही मेज़बान पर मिलान आकार: इसके विंडोज पैकेज में एक विक्रेता इंजन एडाप्टर DLL (EgisTouchFPEngine0577.dll, कोई VBS एन्क्लेव नहीं) है, इसलिए PORTING.md में विधि उस पर भी लागू होती है।ड्राइवर और लोडर (src/, scripts/) LGPL-2.1-या-बाद के संस्करण के अंतर्गत हैं, जो libfprint से मेल खाता है। FocalTech DLL और फ़र्मवेयर उनकी अपनी संपत्ति हैं और यहाँ वितरित नहीं किए गए हैं — आप उन्हें स्वयं प्राप्त करते हैं। यह प्रोजेक्ट आपके स्वामित्व वाले हार्डवेयर के लिए एक अंतर-संचालन उपकरण है; इसमें कोई FocalTech कोड शामिल नहीं है या पुनः लाइसेंस नहीं किया गया है।
| यह कहाँ से आता है |
|---|
ftWbioEngineAdapter.dll | मिलान इंजन | Microsoft अपडेट कैटलॉग पर FocalTech का हस्ताक्षरित विंडोज ड्राइवर |
FT9348W MCU फ़र्मवेयर (src/ft9201_fw.h) | 8051 फ़र्मवेयर जो सेंसर चलाता है | सार्वजनिक ft9201-static ब्लॉब से निकाला गया (प्रतीक FOCALFP_9348_FW_APP) |