*-
* 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 est une bibliothèque qui permet aux applications de l'espace utilisateur d'accéder aux appareils NFC.
Le site Web officiel est : http://www.nfc-tools.org/
Le site officiel du forum est : http://www.libnfc.org/community/
Le site de développement officiel est : https://github.com/nfc-tools/libnfc
Remarque importante : ce fichier couvre les systèmes POSIX, pour Windows veuillez lire README-Windows.md
Certains pilotes NFC dépendent de logiciels tiers :
pn53x_usb et acr122_usb :
acr122_pcsc :
pcsc :
La suite de tests de régression dépend du framework cutter : http://cutter.sf.net
Remarque : si vous travaillez directement à partir d'un clone git du référentiel, certains fichiers doivent d'abord être générés. Pour ce faire, exécutez autoreconf -vis
Vous pouvez également utiliser une version .tar.bz2 d'une version packagée (qui contient déjà ./configure) : https://github.com/nfc-tools/libnfc/releases/
La construction devrait être aussi simple que d'exécuter ces commandes :
./configure
make
Pour construire avec des pilotes spécifiques, voir l'option --with-drivers=...
détaillée dans ./configure --help
.
make install
Vous devrez peut-être accorder des autorisations à votre utilisateur pour piloter votre appareil. Sous les systèmes GNU/Linux, si vous utilisez udev, vous pouvez utiliser les règles udev fournies. par exemple sous Debian, Ubuntu, etc.
sudo cp contrib/udev/93-pn53x.rules /lib/udev/rules.d/
Sous FreeBSD, si vous utilisez devd, il existe également un fichier de règles : contrib/devd/pn53x.conf.
Afin de modifier le comportement par défaut de la bibliothèque, la libnfc utilise un fichier de configuration situé dans sysconfdir (tel que fourni dans ./configure).
Un exemple de fichier commenté est disponible dans les sources : libnfc.conf.sample
Si vous avez compilé en utilisant :
./configure --prefix=/usr --sysconfdir=/etc
vous pouvez créer un répertoire de configuration et copier l'exemple de fichier :
sudo mkdir /etc/nfc
sudo cp libnfc.conf.sample /etc/nfc/libnfc.conf
Pour configurer plusieurs appareils, vous pouvez soit modifier libnfc.conf, soit créer un fichier par appareil dans un répertoire 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
Vous pouvez remplacer certaines options de configuration au moment de l'exécution à l'aide des variables d'environnement suivantes :
LIBNFC_DEFAULT_DEVICE=
: LIBNFC_DEFAULT_DEVICE=pn532_uart:/dev/ttyACM0
utilisera pn532 sur /dev/ttyACM0 comme périphérique par défautLIBNFC_DEVICE=
ignorera tous les périphériques dans les fichiers de configuration et utilisera uniquement celui défini dans la variableLIBNFC_AUTO_SCAN=
remplace l'option allow_autoscan
dans le fichier de configurationLIBNFC_INTRUSIVE_SCAN=
remplace l'option allow_intrusive_scan
dans le fichier de configurationLIBNFC_LOG_LEVEL=<0|1|2|3>
remplace l'option log_level
dans le fichier de configuration Pour obtenir la connexion d'un appareil reconnu, vous pouvez utiliser nfc-scan-device
: LIBNFC_AUTO_SCAN=true nfc-scan-device
affichera les noms et les connexions de tous les appareils trouvés.
Pour signaler un bogue, visitez https://github.com/nfc-tools/libnfc/issues et remplissez un formulaire de rapport de bogue.
Si vous avez des questions, des remarques, nous vous encourageons à les poster dans la communauté des développeurs : http://www.libnfc.org/community
Veuillez vous assurer d'inclure :
La version de libnfc
Informations sur votre système. Par exemple:
Et tout ce que vous jugez pertinent.
Une trace avec débogage activé.
Reproduisez le bug avec debug, par exemple s'il s'agissait de :
$ nfc-list -v
exécutez-le comme :
$ LIBNFC_LOG_LEVEL=3 nfc-list -v
Comment reproduire le bug.
Veuillez inclure un court programme de test qui présente le comportement.
En dernier recours, vous pouvez également fournir un pointeur vers un morceau plus grand
de logiciels téléchargeables.
Si le bug était un crash, le texte exact qui a été imprimé
quand l'accident s'est produit.
Des informations supplémentaires telles que les traces de pile peuvent être utiles, mais
n'est pas nécessaire.
Les correctifs peuvent être publiés sur https://github.com/nfc-tools/libnfc/issues
Si le correctif corrige un bug, c'est généralement une bonne idée d'inclure toutes les informations décrites dans « Comment signaler des bugs ».
Si votre périphérique Touchatag ou ACR122 ne parvient pas à être détecté par libnfc, assurez-vous que le démon PCSC-lite ( pcscd
) est installé et en cours d'exécution.
Si votre périphérique Touchatag ou ACR122 ne parvient pas à être détecté par le démon PCSC-lite ( pcsc_scan
ne voit rien), essayez de supprimer la fausse détection du micrologiciel de libccid : modifiez le fichier de configuration libccid_Info.plist (généralement /etc/libccid_Info.plist
) et localisez
, transformez la valeur
en 0x0004
pour autoriser les faux appareils et redémarrer le démon pcscd.
L'utilisation d'un périphérique ACR122 avec libnfc et sans balise (par exemple pour utiliser les modes NFCIP ou l'émulation de carte) nécessite encore un autre ajustement PCSC-lite : vous devez autoriser l'utilisation de la commande CCID Exchange. Pour ce faire, modifiez le fichier de configuration libccid_Info.plist
(généralement /etc/libccid_Info.plist
) et localisez
, transformez la valeur
en 0x0001
pour autoriser l'échange CCID ou 0x0005
pour autoriser Echange de CCID et de faux appareils (cf remarque précédente) et redémarrage du démon pcscd.
Attention : si vous utilisez des pilotes ACS CCID (acsccid), le fichier de configuration se trouve dans quelque chose comme : /usr/lib/pcsc/drivers/ifd-acsccid.bundle/Contents/Info.plist
Libnfc ne peut pas être utilisé simultanément avec le pilote propriétaire PCSC de SCL3711. Deux solutions possibles :
Depuis la version 3.1 du noyau Linux, quelques modules du noyau ne doivent pas être chargés pour utiliser libnfc : "nfc", "pn533" et "pn533_usb". Pour empêcher le noyau de charger automatiquement ces modules, vous pouvez les mettre sur liste noire dans un fichier de configuration modprobe. Ce fichier est fourni dans l'archive libnfc :
sudo cp contrib/linux/blacklist-libnfc.conf /etc/modprobe.d/blacklist-libnfc.conf
Libnfc peut fonctionner avec le pilote propriétaire PCSC de bR500 et R502, déjà disponible sur la plupart des configurations Linux. Pour activer le support PCSC : ./configure --with-drivers=pcsc
. Lecteurs connus pour travailler :
Ces lecteurs sont pris en charge par CCID depuis la v1.4.25, assurez-vous que la version de votre pilote CCID est supérieure ou égale à 1.4.25.
Sous MacOS, vous pouvez vérifier votre version CCID avec la commande suivante et, si nécessaire, vous pouvez installer le dernier pilote CCID à partir de https://github.com/martinpaljak/osx-ccid-installer/releases
grep -A 1 CFBundleShortVersionString /usr/local/libexec/SmartCardServices/drivers/ifd-ccid.bundle/Contents/Info.plist
Sous Linux, vous pouvez vérifier votre version CCID avec la commande suivante, et si nécessaire, vous pouvez installer le dernier pilote CCID depuis https://ccid.apdu.fr/
grep -A 1 CFBundleShortVersionString /usr/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Info.plist
FeliCa est une marque déposée de Sony Corporation. MIFARE est une marque commerciale de NXP Semiconductors. Jewel Topaz est une marque déposée d'Innovision Research & Technology. Toutes les autres marques sont la propriété de leurs propriétaires respectifs.