
प्लेटफ़ॉर्म स्वतंत्र नियर फील्ड कम्युनिकेशन (NFC) लाइब्रेरी
*-
libnfc एक लाइब्रेरी है जो यूज़रस्पेस अनुप्रयोगों को NFC उपकरणों तक पहुँच प्रदान करती है।
आधिकारिक वेब साइट अब उपलब्ध नहीं है, WayBackMachine के माध्यम से एक प्रति देखें।
आधिकारिक फोरम साइट अब उपलब्ध नहीं है, WayBackMachine के माध्यम से एक प्रति देखें।
आधिकारिक विकास साइट है: https://github.com/nfc-tools/libnfc
महत्वपूर्ण नोट: यह फ़ाइल POSIX सिस्टम के लिए है, Windows के लिए कृपया README-Windows.md पढ़ें।
कुछ NFC ड्राइवर तृतीय-पक्ष सॉफ़्टवेयर पर निर्भर करते हैं:
pn53x_usb & acr122_usb:
acr122_pcsc:
pcsc:
रीग्रेशन टेस्ट सूट cutter फ्रेमवर्क पर निर्भर करता है: http://cutter.sf.net
नोट: यदि आप रिपॉजिटरी के git क्लोन से सीधे काम कर रहे हैं, तो कुछ फ़ाइलें पहले उत्पन्न करने की आवश्यकता होती हैं। ऐसा करने के लिए चलाएँ
autoreconf -vis
वैकल्पिक रूप से, पैकेज किए गए रिलीज़ का .tar.bz2 संस्करण उपयोग करें (जिसमें पहले से ही ./configure मौजूद है): https://github.com/nfc-tools/libnfc/releases/
बिल्ड इन कमांड्स को चलाने जितना सरल होना चाहिए:
./configure
make
विशिष्ट ड्राइवर(ों) के साथ बिल्ड करने के लिए, ./configure --help में विस्तृत --with-drivers=... विकल्प देखें।
make install
आपको अपने डिवाइस को चलाने के लिए अपने उपयोगकर्ता को अनुमतियाँ देने की आवश्यकता हो सकती है। GNU/Linux सिस्टम पर, यदि आप udev का उपयोग करते हैं, तो आप प्रदान किए गए udev नियमों का उपयोग कर सकते हैं। जैसे Debian, Ubuntu, आदि पर।
sudo cp contrib/udev/93-pn53x.rules /lib/udev/rules.d/
FreeBSD पर, यदि आप devd का उपयोग करते हैं, तो एक नियम फ़ाइल भी है: contrib/devd/pn53x.conf।
लाइब्रेरी के डिफ़ॉल्ट व्यवहार को बदलने के लिए, libnfc sysconfdir में स्थित एक कॉन्फ़िगरेशन फ़ाइल का उपयोग करता है (जैसा कि ./configure को प्रदान किया गया है)।
स्रोतों में एक नमूना टिप्पणी-युक्त फ़ाइल उपलब्ध है: libnfc.conf.sample
यदि आपने इसका उपयोग करके संकलित किया है:
./configure --prefix=/usr --sysconfdir=/etc
तो आप कॉन्फ़िगरेशन निर्देशिका बना सकते हैं और नमूना फ़ाइल कॉपी कर सकते हैं:
sudo mkdir /etc/nfc
sudo cp libnfc.conf.sample /etc/nfc/libnfc.conf
एकाधिक डिवाइस कॉन्फ़िगर करने के लिए, आप या तो libnfc.conf को संशोधित कर सकते हैं या nfc/devices.d निर्देशिका में प्रति डिवाइस एक फ़ाइल बना सकते हैं:
sudo mkdir -p /etc/nfc/devices.d
printf 'name = "My first device"\nconnstring = "pn532_uart:/dev/ttyACM0"\n' | sudo tee /etc/nfc/devices.d/first.conf
printf 'name = "My second device"\nconnstring = "pn532_uart:/dev/ttyACM1"\n' | sudo tee /etc/nfc/devices.d/second.conf
आप निम्न पर्यावरण चरों का उपयोग करके रनटाइम पर कुछ कॉन्फ़िगरेशन विकल्पों को ओवरराइड कर सकते हैं:
LIBNFC_DEFAULT_DEVICE=<connstring>: LIBNFC_DEFAULT_DEVICE=pn532_uart:/dev/ttyACM0 /dev/ttyACM0 पर pn532 को डिफ़ॉल्ट डिवाइस के रूप में उपयोग करेगाLIBNFC_DEVICE=<connstring> कॉन्फ़िग फ़ाइलों में सभी डिवाइसों को अनदेखा करेगा और केवल चर में परिभाषित डिवाइस का उपयोग करेगाLIBNFC_AUTO_SCAN=<true|false> कॉन्फ़िग फ़ाइल में allow_autoscan विकल्प को ओवरराइड करता हैLIBNFC_INTRUSIVE_SCAN=<true|false> कॉन्फ़िग फ़ाइल में allow_intrusive_scan विकल्प को ओवरराइड करता हैLIBNFC_LOG_LEVEL=<0|1|2|3> कॉन्फ़िग फ़ाइल में log_level विकल्प को ओवरराइड करता हैपहचाने गए डिवाइस का connstring प्राप्त करने के लिए, आप nfc-scan-device का उपयोग कर सकते हैं: LIBNFC_AUTO_SCAN=true nfc-scan-device सभी मिले डिवाइसों के नाम और connstrings दिखाएगा।
बग की रिपोर्ट करने के लिए, https://github.com/nfc-tools/libnfc/issues पर जाएँ और एक बग रिपोर्ट फ़ॉर्म भरें।
यदि आपके पास प्रश्न या टिप्पणियाँ हैं, तो हम आपको इसे डेवलपर्स समुदाय में पोस्ट करने के लिए प्रोत्साहित करते हैं: http://www.libnfc.org/community
कृपया सुनिश्चित करें कि आप निम्न शामिल करें:
libnfc का संस्करण
आपके सिस्टम के बारे में जानकारी। उदाहरण के लिए:
और कुछ भी जो आपको प्रासंगिक लगे।
डीबग सक्रिय के साथ एक ट्रेस।
बग को डीबग के साथ दोहराएँ, उदाहरण के लिए यदि यह था:
$ nfc-list -v
इसे इस रूप में चलाएँ:
$ LIBNFC_LOG_LEVEL=3 nfc-list -v
बग को कैसे दोहराएँ।
कृपया एक छोटा परीक्षण प्रोग्राम शामिल करें जो व्यवहार प्रदर्शित करता है।
अंतिम उपाय के रूप में, आप एक बड़े सॉफ़्टवेयर का लिंक भी प्रदान कर सकते हैं जिसे डाउनलोड किया जा सकता है।
यदि बग क्रैश था, तो वह सटीक टेक्स्ट जो क्रैश होने पर प्रिंट हुआ था।
स्टैक ट्रेस जैसी अतिरिक्त जानकारी उपयोगी हो सकती है, लेकिन आवश्यक नहीं है।
पैच https://github.com/nfc-tools/libnfc/issues पर पोस्ट किए जा सकते हैं
यदि पैच किसी बग को ठीक करता है, तो आमतौर पर "बग रिपोर्ट कैसे करें" में वर्णित सभी जानकारी शामिल करना अच्छा होता है।
यदि आपका Touchatag या ACR122 डिवाइस libnfc द्वारा पहचाना नहीं जाता है, तो सुनिश्चित करें कि PCSC-lite डेमॉन (pcscd) स्थापित है और चल रहा है।
यदि आपका Touchatag या ACR122 डिवाइस PCSC-lite डेमॉन द्वारा पहचाना नहीं जा रहा है (pcsc_scan कुछ नहीं दिखाता) तो libccid की बोगस फर्मवेयर पहचान को हटाने का प्रयास करें: libccid_Info.plist कॉन्फ़िगरेशन फ़ाइल (आमतौर पर /etc/libccid_Info.plist) संपादित करें और <key>ifdDriverOptions</key> खोजें, <string>0x0000</string> मान को 0x0004 में बदलें ताकि बोगस डिवाइस की अनुमति मिल सके, और pcscd डेमॉन को पुनः आरंभ करें।
libnfc के साथ और बिना टैग के ACR122 डिवाइस का उपयोग करने के लिए (जैसे NFCIP मोड या कार्ड इम्यूलेशन उपयोग करने के लिए) एक और PCSC-lite ट्वीक की आवश्यकता होती है: आपको CCID Exchange कमांड के उपयोग की अनुमति देनी होगी। ऐसा करने के लिए, libccid_Info.plist कॉन्फ़िगरेशन फ़ाइल (आमतौर पर /etc/libccid_Info.plist) संपादित करें और <key>ifdDriverOptions</key> खोजें, <string>0x0000</string> मान को 0x0001 में बदलें ताकि CCID exchange की अनुमति हो, या 0x0005 CCID exchange और बोगस डिवाइसों की अनुमति के लिए (पिछली टिप्पणी देखें), और pcscd डेमॉन को पुनः आरंभ करें।
चेतावनी: यदि आप ACS CCID ड्राइवर (acsccid) का उपयोग करते हैं, तो कॉन्फ़िगरेशन फ़ाइल कुछ इस प्रकार स्थित होती है: /usr/lib/pcsc/drivers/ifd-acsccid.bundle/Contents/Info.plist
Libnfc का उपयोग SCL3711 के PCSC मालिकाना ड्राइवर के साथ एक साथ नहीं किया जा सकता है। दो संभावित समाधान हैं:
Linux कर्नेल संस्करण 3.1 से, libnfc का उपयोग करने के लिए कुछ कर्नेल-मॉड्यूल लोड नहीं होने चाहिए: "nfc", "pn533" और "pn533_usb"। कर्नेल को इन मॉड्यूलों को स्वचालित रूप से लोड करने से रोकने के लिए, आप उन्हें modprobe conf फ़ाइल में ब्लैकलिस्ट कर सकते हैं। यह फ़ाइल libnfc संग्रह में प्रदान की गई है:
sudo cp contrib/linux/blacklist-libnfc.conf /etc/modprobe.d/blacklist-libnfc.conf
Libnfc bR500 और R502 के PCSC मालिकाना ड्राइवर के साथ काम कर सकता है, जो अधिकांश Linux सेटअपों पर पहले से उपलब्ध है।
PCSC समर्थन सक्रिय करने के लिए: ./configure --with-drivers=pcsc.
ज्ञात कार्यशील रीडर:
ये रीडर CCID v1.4.25 से समर्थित हैं, सुनिश्चित करें कि आपका CCID ड्राइवर संस्करण 1.4.25 से उच्च या बराबर है।
MacOS पर, आप निम्न कमांड से अपना CCID संस्करण जाँच सकते हैं, और यदि आवश्यक हो, तो आप https://github.com/martinpaljak/osx-ccid-installer/releases से नवीनतम CCID ड्राइवर स्थापित कर सकते हैं।
grep -A 1 CFBundleShortVersionString /usr/local/libexec/SmartCardServices/drivers/ifd-ccid.bundle/Contents/Info.plist
Linux पर, आप निम्न कमांड से अपना CCID संस्करण जाँच सकते हैं, और यदि आवश्यक हो, तो आप https://ccid.apdu.fr/ से नवीनतम CCID ड्राइवर स्थापित कर सकते हैं।
grep -A 1 CFBundleShortVersionString /usr/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Info.plist
FeliCa Sony Corporation का एक पंजीकृत ट्रेडमार्क है। MIFARE NXP Semiconductors का एक ट्रेडमार्क है। Jewel Topaz Innovision Research & Technology का एक ट्रेडमार्क है। अन्य सभी ट्रेडमार्क उनके संबंधित स्वामियों की संपत्ति हैं।