タッチタグ RFID リーダー

提供: ArchWiki
2024年1月16日 (火) 01:13時点におけるKgx (トーク | 投稿記録)による版 (翻訳)
ナビゲーションに移動 検索に移動

タッチタグ は、RFID タグリーダーです。これは、ACR122U USB タグリーダーと MiFare Ultralight RFID タグで構成される安価なセットです (USB ID 072f:2200lsusb -v を使用して、bcdDevice 記述子の下のファームウェアバージョン (2020年5月10日現在 2.14) を確認して下さい。

ノート: 常にリーダーにタグを付けてください。そうしないと問題が発生する可能性があります。

インストール

競合するドライバー (nfcpn533、および pn533_usb) のロードを停止します。

ブラックリストの ドライバーに関するメモを参照してください。ドライバーは手動でロードできるため、次のファイルを 作成 する必要があります。

/etc/modprobe.d/blacklist.conf
install nfc /bin/false
install pn533 /bin/false
install pn533_usb /bin/false

udev ルールをリロードして、競合するモジュールがすでにロードされている場合はアンロードします:

# rmmod pn533_usb pn533 nfc

再起動します。

タグリーダーを libnfc に接続するには 2 つのオプションがあります。それらの違いについては、stackoverflow で詳しく説明されています。

USB

これは、このデバイスの最新の推奨される使用方法です。

acr122_usb を使用するには、pcsc デーモンを実行する 必要はありません (libnfc README 現在、それを実行するように指示されていますが、これは PC/SC の方法です)

libnfcインストール して下さい。

PC/SC

これは、このデバイスを使用する従来の非推奨の方法です。

ccid および pcsc-toolsインストール して下さい。

使い方

USB

デバイスが検出されたかどうかを確認します:

# nfc-list
nfc-list uses libnfc 1.7.1
NFC device: ACS / ACR122U PICC Interface opened

NFC カードの読み取りも同様に機能します:

# nfc-poll
nfc-poll uses libnfc 1.7.1
NFC reader: ACS / ACR122U PICC Interface opened
NFC device will poll during 30000 ms (20 pollings of 300 ms for 5 modulations)
ISO/IEC 14443A (106 kbps) target:
    ATQA (SENS_RES): 00  04  
       UID (NFCID1): 42  14  3e  2e  
      SAK (SEL_RES): 08  
Waiting for card removing...nfc_initiator_target_is_present: Target Released
done.

PC/SC

デバイスをテストするには、次のコマンドを実行します:

# pcscd -f

pcscd.service起動 してリーダーにタグを設定すると、結果は次のようになります:

# pcsc_scan
PC/SC device scanner
V 1.4.17 (c) 2001-2009, Ludovic Rousseau <ludovic.rousseau@free.fr>
Compiled with PC/SC lite version: 1.6.6
Scanning present readers...
0: ACS ACR122U 00 00

Mon Mar 21 18:16:07 2011
 Reader 0: ACS ACR122U 00 00
  Card state: Card inserted, Shared Mode, 
  ATR: 3B BE 95 00 00 41 03 00 00 00 00 00 00 00 00 00 02 90 00 

ATR: 3B BE 95 00 00 41 03 00 00 00 00 00 00 00 00 00 02 90 00
+ TS = 3B --> Direct Convention
+ T0 = BE, Y(1): 1011, K: 14 (historical bytes)
  TA(1) = 95 --> Fi=512, Di=16, 32 cycles/ETU
    125000 bits/s at 4 MHz, fMax for Fi = 5 MHz => 156250 bits/s                                                               
  TB(1) = 00 --> VPP is not electrically connected
  TD(1) = 00 --> Y(i+1) = 0000, Protocol T = 0 
-----
+ Historical bytes: 41 03 00 00 00 00 00 00 00 00 00 02 90 00
  Category indicator byte: 41 (proprietary format) 

Possibly identified card (using /usr/share/pcsc/smartcard_list.txt):
3B BE 95 00 00 41 03 00 00 00 00 00 00 00 00 00 02 90 00
        touchatag SAM card

ヒントとテクニック

tagEventor

[1] はバックグラウンドで実行され、タグがタグリーダーに出入りするときにスクリプトを実行します。

独自の バイナリバージョン または コンパイル をダウンロードします。

tagEventor を実行してインストールをテストします:

# tagEventor -v 1

スクリプトは /etc/gtagEventor にあります。使用方法については、ドキュメント を読んで下さい。

トラブルシューティング

Firmware [...] is bogus! Upgrade the reader firmware

このような問題が発生した場合は、次のようにします:

ccid_usb.c:859:ccid_check_firmware() Firmware (1.00) is bogus! Upgrade the reader firmware or get a new reader.
ifdhandler.c:104:IFDHCreateChannelByName() failed
readerfactory.c:1050:RFInitializeReader() Open Port 200000 Failed (usb:072f/2200:libusb:006)
readerfactory.c:233:RFAddReader() ACS ACR122U PICC Interface init failed.

libnfc README では、次のことを行うことが推奨されています。

libccid の偽のファームウェア検出を削除します:編集 libccid_Info.plist 設定ファイル (通常は /etc/libccid_Info.plist) を編集して <key>ifdDriverOptions</key> を見つけ、<string>0x0000</string>0x0004 に変更して偽のデバイスを許可し、pcscd.service再起動 します。

ノート: ACS CCID ドライバー (acsccid) を使用する場合、設定ファイルは次のような場所にあります: /usr/lib/pcsc/drivers/ifd-acsccid.bundle/Contents/Info.plist または / usr/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Info.plist