在ACR122U NFC阅读器上强制使用PC/SC驱动程序

问题描述:

我在使用ACR122U RFID读卡器ACS时遇到问题。我需要使用PC/SC驱动程序将它连接到我的Mac。我从ACS网站安装了驱动程序,并确认它正在运行。在ACR122U NFC阅读器上强制使用PC/SC驱动程序

但是,每当我测试使用nfc-list命令,我收到以下错误:

nfc-list uses libnfc libnfc-1.7.1-189-g2869ae2 
error libnfc.driver.acr122_usb  Unable to claim USB interface (Permission denied) 
nfc-list: ERROR: Unable to open NFC device: acr122_usb:020:002 

至于我从谷歌上搜索了解的是,它是MAC接管,可防止USB PC/SC使用该设备,但是如何强制计算机使用PC/SC驱动程序而不是默认的Apple USB?

PS:我已经安装了libusb

你似乎是混合两种不同的选择,用于连接ACR122U到libnfc:

  1. 您可以使用直接USB驱动程序的ACR122U,libnfc.driver.acr122_usb(这是你目前使用的)。在这种情况下,您需要确保PC/SC守护进程不会接管阅读器的控制(因为一次只能有一个实例访问阅读器的USB接口)。

    • 快速和肮脏的解决方法是禁用PC/SC守护程序接管ACR122U控制。尽管在Mac OS X上这不是直接的,但是可以在Ludovic's blog中找到详细的解释。
    • 或者,您可以通过编辑/usr/libexec/SmartCardServices/drivers/ifd-ccid.bundle/Contents/Info.plist来阻止PC/SC守护进程控制该特定阅读器。你会需要搜索条目

      <key>ifdProductID</key> 
      

      下面这个项,存在形式的条目的阵列

      <string>0xXXXX</string> 
      

      你需要搜索包含值0x2200,0x90CC和0x2214项。删除这些行,但请记住相关行号(即<array>中的偏移量)。然后,还删除相应的线下

      <key>ifdVendorID</key> 
      

      他们都应该包含值0x072F,因而具有形式

      <string>0x072F</string> 
      

      此外,你还需要删除

      <key>ifdFriendlyName</key> 
      
      下的相应行

      他们都可能会从<string>ACS开始。

  2. 或者,您可以使用PC/SC基于驾驶员libnfc为ACR122U(libnfc.driver.acr122_pcsc)。该驱动程序使用系统PC/SC守护程序访问阅读器,而不是直接控制USB接口。要使此选项生效,您需要配置lib-nfc以使用PC/SC驱动程序,而不是直接的USB驱动程序。当您编译libnfc自己,你可以通过明确仅激活PC/SC基于驱动程序做到这一点:

    ./configure --with-drivers=acr122_pcsc 
    make 
    

    但是请注意,此驱动程序现在已经贬值和libnfc作者强烈不鼓励使用。

+0

谢谢!这是我在互联网上发现的最具信息量的答案。 –