*-
* 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:
PCSC:
회귀 테스트 모음은 커터 프레임워크에 따라 다릅니다. http://cutter.sf.net
참고: 저장소의 git 복제본에서 직접 작업하는 경우 일부 파일을 먼저 생성해야 합니다. 이렇게 하려면 autoreconf -vis
실행하세요.
또는 패키지 릴리스의 .tar.bz2 버전(이미 ./configure가 포함되어 있음)을 사용하십시오: https://github.com/nfc-tools/libnfc/releases/
빌드는 다음 명령을 실행하는 것만큼 간단해야 합니다.
./configure
make
특정 드라이버로 빌드하려면 ./configure --help
에 자세히 설명된 --with-drivers=...
옵션을 참조하세요.
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
은 /dev/ttyACM0의 pn532를 기본 장치로 사용합니다.LIBNFC_DEVICE=
구성 파일의 모든 장치를 무시하고 변수에 정의된 장치만 사용합니다.LIBNFC_AUTO_SCAN=
구성 파일의 allow_autoscan
옵션을 재정의합니다.LIBNFC_INTRUSIVE_SCAN=
구성 파일의 allow_intrusive_scan
옵션을 재정의합니다.LIBNFC_LOG_LEVEL=<0|1|2|3>
구성 파일의 log_level
옵션을 재정의합니다. 인식된 장치의 connstring을 얻으려면 nfc-scan-device
사용할 수 있습니다. LIBNFC_AUTO_SCAN=true nfc-scan-device
발견된 모든 장치의 이름과 connstring을 표시합니다.
버그를 신고하려면 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 데몬을 다시 시작하세요.
libnfc가 있고 태그 없이(예: NFCIP 모드 또는 카드 에뮬레이션을 사용하기 위해) ACR122 장치를 사용하려면 또 다른 PCSC-lite 조정이 필요합니다. CCID 교환 명령의 사용을 허용해야 합니다. 이렇게 하려면 libccid_Info.plist
구성 파일(보통 /etc/libccid_Info.plist
)을 편집하고
찾은 다음
값을 CCID 교환을 허용하려면 0x0001
로, 허용하려면 0x0005
로 바꾸세요. CCID 교환 및 가짜 장치(이전 설명 참조) 및 PCSCD 데몬을 다시 시작합니다.
경고: ACS CCID 드라이버(acsccid)를 사용하는 경우 구성 파일은 /usr/lib/pcsc/drivers/ifd-acsccid.bundle/Contents/Info.plist
와 같은 위치에 있습니다.
Libnfc는 SCL3711의 PCSC 독점 드라이버와 동시에 사용할 수 없습니다. 두 가지 가능한 솔루션:
Linux 커널 버전 3.1부터 libnfc를 사용하려면 몇 가지 커널 모듈("nfc", "pn533" 및 "pn533_usb")을 로드하면 안 됩니다. 커널이 이러한 모듈을 자동으로 로드하는 것을 방지하려면 modprobe conf 파일에서 해당 모듈을 블랙리스트에 추가할 수 있습니다. 이 파일은 libnfc 아카이브 내에 제공됩니다:
sudo cp contrib/linux/blacklist-libnfc.conf /etc/modprobe.d/blacklist-libnfc.conf
Libnfc는 대부분의 Linux 설정에서 이미 사용 가능한 bR500 및 R502의 PCSC 독점 드라이버와 함께 작동할 수 있습니다. PCSC 지원을 활성화하려면: ./configure --with-drivers=pcsc
. 일하는 것으로 알려진 독자:
이 리더는 v1.4.25부터 CCID에서 지원됩니다. CCID 드라이버 버전이 1.4.25 이상인지 확인하세요.
MacOS에서는 다음 명령을 사용하여 CCID 버전을 확인할 수 있으며, 필요한 경우 https://github.com/martinpaljak/osx-ccid-installer/releases에서 최신 CCID 드라이버를 설치할 수 있습니다.
grep -A 1 CFBundleShortVersionString /usr/local/libexec/SmartCardServices/drivers/ifd-ccid.bundle/Contents/Info.plist
Linux에서는 다음 명령을 사용하여 CCID 버전을 확인할 수 있으며, 필요한 경우 https://ccid.apdu.fr/에서 최신 CCID 드라이버를 설치할 수 있습니다.
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의 상표입니다. 기타 모든 상표는 해당 소유자의 자산입니다.