*-
* 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 es una biblioteca que permite el acceso de aplicaciones del espacio de usuario a dispositivos NFC.
El sitio web oficial es: http://www.nfc-tools.org/
El sitio oficial del foro es: http://www.libnfc.org/community/
El sitio oficial de desarrollo es: https://github.com/nfc-tools/libnfc
Nota importante: este archivo cubre sistemas POSIX; para Windows, lea README-Windows.md
Algunos controladores NFC dependen de software de terceros:
pn53x_usb y acr122_usb:
acr122_pcsc:
PCSC:
El conjunto de pruebas de regresión depende del marco de corte: http://cutter.sf.net
Nota: Si trabaja directamente desde un clon de git del repositorio, algunos de los archivos deben generarse primero. Para hacer esto ejecute autoreconf -vis
Como alternativa, utilice una versión .tar.bz2 de una versión empaquetada (que ya contiene ./configure): https://github.com/nfc-tools/libnfc/releases/
La compilación debería ser tan simple como ejecutar estos comandos:
./configure
make
Para compilar con controladores específicos, consulte la opción --with-drivers=...
detallada en ./configure --help
.
make install
Es posible que deba otorgar permisos a su usuario para manejar su dispositivo. En los sistemas GNU/Linux, si usa udev, puede usar las reglas de udev proporcionadas. por ejemplo, en Debian, Ubuntu, etc.
sudo cp contrib/udev/93-pn53x.rules /lib/udev/rules.d/
En FreeBSD, si usa devd, también hay un archivo de reglas: contrib/devd/pn53x.conf.
Para cambiar el comportamiento predeterminado de la biblioteca, libnfc utiliza un archivo de configuración ubicado en sysconfdir (como se proporciona en ./configure).
Un archivo comentado de muestra está disponible en las fuentes: libnfc.conf.sample
Si ha compilado usando:
./configure --prefix=/usr --sysconfdir=/etc
Puede crear un directorio de configuración y copiar el archivo de muestra:
sudo mkdir /etc/nfc
sudo cp libnfc.conf.sample /etc/nfc/libnfc.conf
Para configurar varios dispositivos, puede modificar libnfc.conf o crear un archivo por dispositivo en un directorio 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
Puede anular ciertas opciones de configuración en tiempo de ejecución utilizando las siguientes variables de entorno:
LIBNFC_DEFAULT_DEVICE=
: LIBNFC_DEFAULT_DEVICE=pn532_uart:/dev/ttyACM0
utilizará pn532 en /dev/ttyACM0 como dispositivo predeterminadoLIBNFC_DEVICE=
ignorará todos los dispositivos en los archivos de configuración y usará solo el definido en la variableLIBNFC_AUTO_SCAN=
anula la opción allow_autoscan
en el archivo de configuraciónLIBNFC_INTRUSIVE_SCAN=
anula la opción allow_intrusive_scan
en el archivo de configuraciónLIBNFC_LOG_LEVEL=<0|1|2|3>
anula la opción log_level
en el archivo de configuración Para obtener la cadena de conexión de un dispositivo reconocido, puede utilizar nfc-scan-device
: LIBNFC_AUTO_SCAN=true nfc-scan-device
mostrará los nombres y las cadenas de conexión de todos los dispositivos encontrados.
Para informar un error, visite https://github.com/nfc-tools/libnfc/issues y complete un formulario de informe de error.
Si tiene preguntas o comentarios, le recomendamos que los publique en la comunidad de desarrolladores: http://www.libnfc.org/community
Por favor asegúrese de incluir:
La versión de libnfc.
Información sobre su sistema. Por ejemplo:
Y cualquier otra cosa que creas relevante.
Un seguimiento con depuración activada.
Reproduzca el error con depuración, por ejemplo, si fuera:
$ nfc-list -v
ejecutarlo como:
$ LIBNFC_LOG_LEVEL=3 nfc-list -v
Cómo reproducir el error.
Incluya un breve programa de prueba que muestre el comportamiento.
Como último recurso, también puedes proporcionar un puntero a una pieza más grande.
de software que se puede descargar.
Si el error fue un bloqueo, el texto exacto que se imprimió
cuando ocurrió el accidente.
Puede resultar útil más información, como seguimientos de la pila, pero
no es necesario.
Los parches se pueden publicar en https://github.com/nfc-tools/libnfc/issues
Si el parche corrige un error, suele ser una buena idea incluir toda la información descrita en "Cómo informar errores".
Si libnfc no detecta su dispositivo Touchatag o ACR122, asegúrese de que el demonio PCSC-lite ( pcscd
) esté instalado y ejecutándose.
Si su dispositivo Touchatag o ACR122 no puede ser detectado por el demonio PCSC-lite ( pcsc_scan
no ve nada), intente eliminar la detección de firmware falsa de libccid: edite el archivo de configuración libccid_Info.plist (generalmente /etc/libccid_Info.plist
) y busque
, convierta el valor
en 0x0004
para permita dispositivos falsos y reinicie el demonio pcscd.
El uso de un dispositivo ACR122 con libnfc y sin etiqueta (por ejemplo, para usar modos NFCIP o emulación de tarjeta) necesita otro ajuste PCSC-lite: debe permitir el uso del comando CCID Exchange. Para hacer esto, edite el archivo de configuración libccid_Info.plist
(generalmente /etc/libccid_Info.plist
) y busque
, convierta el valor
en 0x0001
para permitir el intercambio de CCID o 0x0005
para permitir Intercambie CCID y dispositivos falsos (ver comentario anterior) y reinicie el demonio pcscd.
Advertencia: si utiliza controladores ACS CCID (acsccid), el archivo de configuración se encuentra en algo como: /usr/lib/pcsc/drivers/ifd-acsccid.bundle/Contents/Info.plist
Libnfc no se puede utilizar simultáneamente con el controlador propietario PCSC de SCL3711. Dos posibles soluciones:
Desde la versión 3.1 del kernel de Linux, algunos módulos del kernel no deben cargarse para poder usar libnfc: "nfc", "pn533" y "pn533_usb". Para evitar que el kernel cargue automáticamente estos módulos, puede incluirlos en la lista negra en un archivo de configuración modprobe. Este archivo se proporciona dentro del archivo libnfc:
sudo cp contrib/linux/blacklist-libnfc.conf /etc/modprobe.d/blacklist-libnfc.conf
Libnfc puede funcionar con el controlador propietario PCSC de bR500 y R502, que ya está disponible en la mayoría de las configuraciones de Linux. Para activar el soporte PCSC: ./configure --with-drivers=pcsc
. Lectores conocidos por trabajar:
Estos lectores son compatibles con CCID desde v1.4.25, asegúrese de que la versión de su controlador CCID sea superior o igual a 1.4.25.
En MacOS, puede verificar su versión de CCID con el siguiente comando y, si es necesario, puede instalar el controlador CCID más reciente desde https://github.com/martinpaljak/osx-ccid-installer/releases
grep -A 1 CFBundleShortVersionString /usr/local/libexec/SmartCardServices/drivers/ifd-ccid.bundle/Contents/Info.plist
En Linux, puede verificar su versión de CCID con el siguiente comando y, si es necesario, puede instalar el controlador CCID más reciente desde https://ccid.apdu.fr/
grep -A 1 CFBundleShortVersionString /usr/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Info.plist
FeliCa es una marca registrada de Sony Corporation. MIFARE es una marca comercial de NXP Semiconductors. Jewel Topaz es una marca registrada de Innovision Research & Technology. Todas las demás marcas comerciales son propiedad de sus respectivos dueños.