Touchatag RFID 阅读器
Touchatag 是来自 Touchatag 的 RFID 标签阅读器。它是一套廉价的设备,由 ACR122U USB 标签阅读器和 MiFare Ultralight RFID 标签组成(USB ID 072f:2200
,使用 lsusb -v
检查固件版本 − 截至 2020-05-10 为 2.14 − 在 bcdDevice
描述符下)。
安装
停止加载冲突的驱动程序 (nfc
, pn533
和 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 有两种选择。 它们之间的区别在 stackoverflow 上有详细说明。
USB
这是使用此设备的现代且推荐的方式。
要使用 acr122_usb
,您不需要运行 pcsc 守护程序(libnfc README 当前告诉您运行它,但这适用于 PC/SC 方式)。
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
tagEventor 在后台运行,并在标签进入或离开您的标签阅读器时执行脚本。
运行 tagEventor 以测试您的安装
# tagEventor -v 1
脚本位于 /etc/gtagEventor
中。阅读 tagEventor 文档 了解如何使用它们。
故障排除
固件 [...] 是伪造的!升级读卡器固件
如果您遇到这样的问题
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
。
/usr/lib/pcsc/drivers/ifd-acsccid.bundle/Contents/Info.plist
或 /usr/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Info.plist
。