【问题标题】:pcsc-lite : multiple ACR122T devices with no unique serial number - linuxpcsc-lite : 多个没有唯一序列号的 ACR122T 设备 - linux
【发布时间】:2015-01-21 02:10:50
【问题描述】:

我有多个没有唯一序列号的 ACR122T 智能卡设备(来自 ACS)。我需要知道我从 pcsc-lite 中连接到哪个物理智能卡。我通过使用 lsusb 知道物理设备在哪个 USB 端口上,但是如何使用 SCardGetAttribute(SCARD_ATTR_DEVICE_UNIT) 映射该 USB 端口信息?

似乎地图应该在操作系统级别,因为我找不到从 pscs-lite API 中读取 USB 端口信息(lsusb 结果)的方法。

这篇文章提到了一个方法,Smartcard reader ACR122U has no unique serial number 但我不明白“使用该开发号来确保我始终使用正确的阅读器”背后的细节。

任何帮助表示赞赏。 谢谢,-菲尔

【问题讨论】:

    标签: linux ubuntu usb nfc pcsc


    【解决方案1】:

    免责声明:我在 Windows 上工作,而不是 Linux。

    ACR122T(和ACR122U)设备不仅没有序列号(背面印有的除外),而且没有USB序列号,因此只能通过插入的USB端口来区分它们。另外我在这里拥有的所有 ACR122T 和我们(我们买了一堆)都将自己标识为 Windows 的“ACS ACR122”。使用专有 API 获取固件版本,ACR122T 和 ACR122U 都将自己标识为 ACR122U(例如“ACR122U207”或“ACR122U214”)。

    这意味着操作系统本身无法以任何其他方式区分多个设备,而不是它插入的 USB 端口。

    我也尝试在 pcsc 设备和 OS 设备之间建立连接,但除了 this function(仅在 Windows 8 开始可用)之外我没有找到任何东西,所以在我看来没有办法通过 pcsc 调用来做到这一点。

    设备单元由 pcsc 层顺序给出,因此您可以区分您连接的设备,但不能识别特定设备。

    【讨论】:

    • 感谢 Windows 8 信息。 SCardGetReaderDeviceInstanceId 函数是我们在 linux 端想要的,但它看起来不像当前在 pcsc-lite 中。
    • @PhilBr 澄清一下,即使您成功获取操作系统的设备句柄,它也无济于事,因为 ACR112s 不报告任何序列号或其他特殊信息.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多