*-
* Free/Libre Near Field Communication (NFC) library
*
* Libnfc historical contributors:
* Copyright (C) 2009 Roel Verdult
* Copyright (C) 2009-2015 Romuald Conty
* Copyright (C) 2010-2012 Romain Tartière
* Copyright (C) 2010-2013 Philippe Teuwen
* Copyright (C) 2012-2013 Ludovic Rousseau
* Additional contributors:
* See AUTHORS file
-*
libnfc ist eine Bibliothek, die Userspace-Anwendungen den Zugriff auf NFC-Geräte ermöglicht.
Die offizielle Website ist: http://www.nfc-tools.org/
Die offizielle Forumseite ist: http://www.libnfc.org/community/
Die offizielle Entwicklungsseite ist: https://github.com/nfc-tools/libnfc
Wichtiger Hinweis: Diese Datei deckt POSIX-Systeme ab, für Windows lesen Sie bitte README-Windows.md
Einige NFC-Treiber sind auf Software von Drittanbietern angewiesen:
pn53x_usb & acr122_usb:
acr122_pcsc:
Stückzahl:
Die Regressionstestsuite hängt vom Cutter-Framework ab: http://cutter.sf.net
Hinweis: Wenn Sie direkt von einem Git-Klon des Repositorys aus arbeiten, müssen einige der Dateien zuerst generiert werden. Führen Sie dazu autoreconf -vis
aus
Alternativ können Sie eine .tar.bz2-Version einer gepackten Version verwenden (die bereits ./configure enthält): https://github.com/nfc-tools/libnfc/releases/
Der Build sollte so einfach sein wie das Ausführen dieser Befehle:
./configure
make
Informationen zum Erstellen mit bestimmten Treibern finden Sie unter Option --with-drivers=...
im Detail unter ./configure --help
.
make install
Möglicherweise müssen Sie Ihrem Benutzer Berechtigungen zum Steuern Ihres Geräts erteilen. Wenn Sie unter GNU/Linux-Systemen udev verwenden, können Sie die bereitgestellten udev-Regeln verwenden. z.B. unter Debian, Ubuntu usw.
sudo cp contrib/udev/93-pn53x.rules /lib/udev/rules.d/
Wenn Sie unter FreeBSD devd verwenden, gibt es auch eine Regeldatei: contrib/devd/pn53x.conf.
Um das Standardverhalten der Bibliothek zu ändern, verwendet die libnfc eine Konfigurationsdatei im sysconfdir (wie für ./configure bereitgestellt).
Eine kommentierte Beispieldatei ist in den Quellen verfügbar: libnfc.conf.sample
Wenn Sie kompiliert haben mit:
./configure --prefix=/usr --sysconfdir=/etc
Sie können ein Konfigurationsverzeichnis erstellen und die Beispieldatei kopieren:
sudo mkdir /etc/nfc
sudo cp libnfc.conf.sample /etc/nfc/libnfc.conf
Um mehrere Geräte zu konfigurieren, können Sie entweder libnfc.conf ändern oder eine Datei pro Gerät in einem nfc/devices.d-Verzeichnis erstellen:
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
Sie können bestimmte Konfigurationsoptionen zur Laufzeit überschreiben, indem Sie die folgenden Umgebungsvariablen verwenden:
LIBNFC_DEFAULT_DEVICE=
: LIBNFC_DEFAULT_DEVICE=pn532_uart:/dev/ttyACM0
verwendet pn532 auf /dev/ttyACM0 als StandardgerätLIBNFC_DEVICE=
ignoriert alle Geräte in den Konfigurationsdateien und verwendet nur das in der Variable definierteLIBNFC_AUTO_SCAN=
überschreibt die Option allow_autoscan
in der KonfigurationsdateiLIBNFC_INTRUSIVE_SCAN=
überschreibt die Option allow_intrusive_scan
in der KonfigurationsdateiLIBNFC_LOG_LEVEL=<0|1|2|3>
überschreibt die Option log_level
in der Konfigurationsdatei Um den Connstring eines erkannten Geräts zu erhalten, können Sie nfc-scan-device
verwenden: LIBNFC_AUTO_SCAN=true nfc-scan-device
zeigt die Namen und Connstrings aller gefundenen Geräte an.
Um einen Fehler zu melden, besuchen Sie https://github.com/nfc-tools/libnfc/issues und füllen Sie ein Fehlerberichtsformular aus.
Wenn Sie Fragen oder Anmerkungen haben, empfehlen wir Ihnen, diese in der Entwickler-Community zu posten: http://www.libnfc.org/community
Bitte stellen Sie sicher, dass Sie Folgendes angeben:
Die Version von libnfc
Informationen zu Ihrem System. Zum Beispiel:
Und alles andere, was Sie für relevant halten.
Ein Trace mit aktiviertem Debug.
Reproduzieren Sie den Fehler mit Debug, z. B. wenn es so war:
$ nfc-list -v
Führen Sie es aus als:
$ LIBNFC_LOG_LEVEL=3 nfc-list -v
So reproduzieren Sie den Fehler.
Bitte fügen Sie ein kurzes Testprogramm bei, das das Verhalten zeigt.
Als letzten Ausweg können Sie auch einen Hinweis auf ein größeres Stück angeben
Software, die heruntergeladen werden kann.
Wenn der Fehler ein Absturz war, der genaue Text, der ausgedruckt wurde
als der Absturz passierte.
Weitere Informationen wie Stack-Traces können jedoch hilfreich sein
ist nicht nötig.
Patches können unter https://github.com/nfc-tools/libnfc/issues veröffentlicht werden
Wenn der Patch einen Fehler behebt, ist es normalerweise eine gute Idee, alle unter „So melden Sie Fehler“ beschriebenen Informationen anzugeben.
Wenn Ihr Touchatag- oder ACR122-Gerät von libnfc nicht erkannt wird, stellen Sie sicher, dass der PCSC-lite-Daemon ( pcscd
) installiert ist und ausgeführt wird.
Wenn Ihr Touchatag- oder ACR122-Gerät nicht vom PCSC-lite-Daemon erkannt wird ( pcsc_scan
sieht nichts), versuchen Sie, die gefälschte Firmware-Erkennung von libccid zu entfernen: Bearbeiten Sie die Konfigurationsdatei libccid_Info.plist (normalerweise /etc/libccid_Info.plist
) und suchen Sie
, verwandeln Sie den Wert
in 0x0004
um gefälschte Geräte zuzulassen und den pcscd-Daemon neu zu starten.
Die Verwendung eines ACR122-Geräts mit libnfc und ohne Tag (z. B. zur Verwendung von NFCIP-Modi oder Kartenemulation) erfordert noch eine weitere PCSC-lite-Optimierung: Sie müssen die Verwendung des CCID-Exchange-Befehls zulassen. Bearbeiten Sie dazu die Konfigurationsdatei libccid_Info.plist
(normalerweise /etc/libccid_Info.plist
), suchen Sie nach
und ändern Sie den Wert
in 0x0001
um den CCID-Austausch zu ermöglichen, oder in 0x0005
, um ihn zuzulassen CCID-Austausch und gefälschte Geräte (siehe vorherige Bemerkung) und den pcscd-Daemon neu starten.
Warnung: Wenn Sie ACS-CCID-Treiber (acsccid) verwenden, befindet sich die Konfigurationsdatei in etwa: /usr/lib/pcsc/drivers/ifd-acsccid.bundle/Contents/Info.plist
Libnfc kann nicht gleichzeitig mit dem proprietären PCSC-Treiber von SCL3711 verwendet werden. Zwei mögliche Lösungen:
Seit der Linux-Kernel-Version 3.1 dürfen einige Kernel-Module nicht geladen werden, um libnfc zu verwenden: „nfc“, „pn533“ und „pn533_usb“. Um zu verhindern, dass der Kernel diese Module automatisch lädt, können Sie sie in einer Modprobe-Conf-Datei auf die schwarze Liste setzen. Diese Datei wird im libnfc-Archiv bereitgestellt:
sudo cp contrib/linux/blacklist-libnfc.conf /etc/modprobe.d/blacklist-libnfc.conf
Libnfc kann mit dem proprietären PCSC-Treiber von bR500 und R502 arbeiten, der in den meisten Linux-Setups bereits verfügbar ist. Um die PCSC-Unterstützung zu aktivieren: ./configure --with-drivers=pcsc
. Leser, von denen bekannt ist, dass sie funktionieren:
Diese Lesegeräte werden von CCID seit Version 1.4.25 unterstützt. Stellen Sie sicher, dass die Version Ihres CCID-Treibers höher oder gleich 1.4.25 ist.
Unter MacOS können Sie Ihre CCID-Version mit dem folgenden Befehl überprüfen und bei Bedarf den neuesten CCID-Treiber von https://github.com/martinpaljak/osx-ccid-installer/releases installieren
grep -A 1 CFBundleShortVersionString /usr/local/libexec/SmartCardServices/drivers/ifd-ccid.bundle/Contents/Info.plist
Unter Linux können Sie Ihre CCID-Version mit dem folgenden Befehl überprüfen und bei Bedarf den neuesten CCID-Treiber von https://ccid.apdu.fr/ installieren.
grep -A 1 CFBundleShortVersionString /usr/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Info.plist
FeliCa ist eine eingetragene Marke der Sony Corporation. MIFARE ist eine Marke von NXP Semiconductors. Jewel Topaz ist eine Marke von Innovision Research & Technology. Alle anderen Marken sind Eigentum ihrer jeweiligen Inhaber.