*-
* 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 — это библиотека, которая обеспечивает доступ приложений пользовательского пространства к устройствам NFC.
Официальный веб-сайт: http://www.nfc-tools.org/.
Официальный сайт форума: http://www.libnfc.org/community/.
Официальный сайт разработки: https://github.com/nfc-tools/libnfc.
Важное примечание: этот файл относится к системам POSIX, для Windows прочтите README-Windows.md.
Некоторые драйверы NFC зависят от стороннего программного обеспечения:
pn53x_usb и acr122_usb:
acr122_pcsc:
штк:
Набор регрессионных тестов зависит от платформы резака: 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=
: LIBNFC_DEFAULT_DEVICE=pn532_uart:/dev/ttyACM0
будет использовать pn532 на /dev/ttyACM0 в качестве устройства по умолчаниюLIBNFC_DEVICE=
будет игнорировать все устройства в файлах конфигурации и использовать только то, которое определено в переменной.LIBNFC_AUTO_SCAN=
переопределяет allow_autoscan
в файле конфигурации.LIBNFC_INTRUSIVE_SCAN=
переопределяет allow_intrusive_scan
в файле конфигурацииLIBNFC_LOG_LEVEL=<0|1|2|3>
переопределяет параметр log_level
в файле конфигурации. Чтобы получить строку подключения распознанного устройства, вы можете использовать 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
) и найдите
, превратите значение
в 0x0004
, чтобы разрешить фиктивные устройства и перезапустить демон pcscd.
Использование устройства ACR122 с libnfc и без тега (например, для использования режимов NFCIP или эмуляции карты) требует еще одной настройки PCSC-lite: вам необходимо разрешить использование команды CCID Exchange. Для этого отредактируйте файл конфигурации libccid_Info.plist
(обычно /etc/libccid_Info.plist
) и найдите
, измените значение
на 0x0001
чтобы разрешить обмен CCID, или на 0x0005
, чтобы разрешить обмен CCID. Обмен 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. Все остальные товарные знаки являются собственностью соответствующих владельцев.