ACR122U 是一种基于13.56MHz非接触式的智能卡读写器,详细资料可以参考官方网站

安装 pcscd 和 pcsc_tools

在安装驱动之前,我们首先需要安装 pcscd 智能卡读写的守护进程,用于和智能卡读写器通信的资源管理。

sudo apt-get install pcscd pcsc-tools

执行上述指令安装 pcscd 和 pcsc-tools。pcsc-tools会提供 pcsc_scan 指令来测试我们的驱动是否安装正确。在安装驱动之前,我们可以尝试执行下 pcsc_scan 执行,应该会停留在 Scaning present readers 阶段,表示找不到任何读卡器。

禁用 PN533 和 NFC 驱动

当 ACR122U 读写器插入,内核(>3.5)会自动的安装 PN533 的驱动。这样,pcscd 就会报错 “Can’t claim interface”。因此,使用下面执行禁用 PN533 和 NFC 的内核驱动。

echo "install nfc /bin/false" >> /etc/modprobe.d/blacklist.conf
echo "install pn533 /bin/false" >> /etc/modprobe.d/blacklist.conf

使用 root 权限执行上面两行指令,就是向 /etc/modprobe.d/blacklist.conf 文件增加两行。

安装 ACR122U 驱动

下面我们可以开始安装 ACR122U 的驱动了。它的驱动可以从官网上找到,下载 PC/SC Driver Package 。解压后,按照 ReadMe 的操作执行即可安装驱动,注意自己的操作系统版本。

安装完后,一定记得重启机器。

最后,待机器重启之后,执行 pcsc_scan 指令,我们应该可以看到下面的情形:

PC/SC device scanner
V 1.4.22 (c) 2001-2011, Ludovic Rousseau <[email protected]>
Compiled with PC/SC lite version: 1.8.10
Using reader plug'n play mechanism
Scanning present readers...
0: ACS ACR122U 00 00

Thu Jul  7 00:43:00 2016
Reader 0: ACS ACR122U 00 00
  Card state: Card inserted, 
  ATR: 3B 82 80 01 48 58 13

这样,整个 ACR122U 的驱动就装好了。

参考资料

https://www.james-ridgway.co.uk/blog/installing-acr122u-drivers-on-linux https://wiki.archlinux.org/index.php/Touchatag_RFID_Reader https://github.com/StevenTso/ACS-ACR122U-NFC-Reader/issues/2