*-
* 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 デバイスにアクセスできるようにするライブラリです。
公式 Web サイトは次のとおりです: 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 clone から直接作業する場合、一部のファイルを最初に生成する必要があります。これを行うには、 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 を備え、タグなしで ACR122 デバイスを使用する場合 (NFCIP モードまたはカード エミュレーションを使用する場合など)、さらに別の PCSC-lite 調整が必要です。CCID Exchange コマンドの使用を許可する必要があります。これを行うには、 libccid_Info.plist
構成ファイル (通常は/etc/libccid_Info.plist
) を編集して
を見つけ、
値を0x0001
に変更して CCID 交換を許可するか、 0x0005
に変更して許可します。 CCID と偽のデバイスを交換し (前のコメントを参照)、pcscd デーモンを再起動します。
警告: ACS CCID ドライバー (acsccid) を使用する場合、構成ファイルは/usr/lib/pcsc/drivers/ifd-acsccid.bundle/Contents/Info.plist
のような場所にあります。
Libnfc は、SCL3711 の PCSC 独自ドライバーと同時に使用することはできません。考えられる解決策は 2 つあります。
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はソニー株式会社の登録商標です。 MIFARE は NXP Semiconductors の商標です。 Jewel Topaz は Innovision Research & Technology の商標です。その他すべての商標は、それぞれの所有者の財産です。