
مكتبة اتصال قريب المدى (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
للبناء مع تعريف(ات) محددة، راجع الخيار --with-drivers=... المفصّل في ./configure --help.
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 سيستخدم pn532 على /dev/ttyACM0 كجهاز افتراضي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 أسماء وسلاسل الاتصال لجميع الأجهزة التي تم العثور عليها.
للإبلاغ عن خطأ، قم بزيارة 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.
استخدام جهاز ACR122 مع libnfc وبدون بطاقة (مثلًا لاستخدام أوضاع NFCIP أو
محاكاة البطاقة) يتطلب تعديلًا إضافيًا في PCSC-lite: تحتاج إلى السماح
باستخدام أمر تبادل CCID. للقيام بذلك، حرّر ملف إعداد libccid_Info.plist
(عادةً /etc/libccid_Info.plist) وحدد موقع <key>ifdDriverOptions</key>،
وغيّر قيمة <string>0x0000</string> إلى 0x0001 للسماح بتبادل CCID أو
0x0005 للسماح بتبادل CCID والأجهزة الزائفة (راجع الملاحظة السابقة)
وأعد تشغيل خدمة pcscd.
تحذير: إذا كنت تستخدم تعريفات ACS CCID (acsccid)، فإن ملف الإعداد يقع
في مسار مشابه لما يلي: /usr/lib/pcsc/drivers/ifd-acsccid.bundle/Contents/Info.plist
لا يمكن استخدام Libnfc بالتزامن مع تعريف PCSC الاحتكاري لجهاز SCL3711. يوجد حلان ممكنان:
منذ إصدار نواة Linux 3.1، يجب عدم تحميل عدد من وحدات النواة من أجل استخدام libnfc: "nfc" و"pn533" و"pn533_usb". لمنع النواة من تحميل هذه الوحدات تلقائيًا، يمكنك حظرها في ملف إعداد modprobe. هذا الملف موفَّر ضمن أرشيف libnfc:
sudo cp contrib/linux/blacklist-libnfc.conf /etc/modprobe.d/blacklist-libnfc.conf
يمكن أن تعمل Libnfc مع تعريف PCSC الاحتكاري لأجهزة bR500 وR502، وهو متاح بالفعل على معظم إعدادات Linux.
لتفعيل دعم PCSC: ./configure --with-drivers=pcsc.
القرّاء المعروف عملهم:
هذه القرّاء مدعومة بواسطة CCID منذ الإصدار 1.4.25، تأكد من أن إصدار تعريف CCID لديك أكبر من أو يساوي 1.4.25.
على MacOS، يمكنك التحقق من إصدار CCID لديك باستخدام الأمر التالي، وإذا لزم الأمر، يمكنك تثبيت أحدث تعريف CCID من https://github.com/martinpaljak/osx-ccid-installer/releases
grep -A 1 CFBundleShortVersionString /usr/local/libexec/SmartCardServices/drivers/ifd-ccid.bundle/Contents/Info.plist
على Linux، يمكنك التحقق من إصدار CCID لديك باستخدام الأمر التالي، وإذا لزم الأمر، يمكنك تثبيت أحدث تعريف CCID من https://ccid.apdu.fr/
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. جميع العلامات التجارية الأخرى هي ملك لأصحابها المعنيين.