在Ubuntu上使用PCSC lite的SCL01x非接触式读卡器

时间:2014-01-17 08:51:57

标签: java linux ubuntu nfc pcsc

我正在使用Ingenico的智能卡读卡器,试图让它在Ubuntu 12.4上运行。 64位

我已经安装了pcsc lite和libusb以及读卡器驱动程序 SCL01x非接触式读卡器 - 驱动程序。

情况是当我将rader插入USB端口时,读卡器上的信号灯熄灭。

当我尝试运行pcscd时,我得到了他的错误:

00000000 dyn_unix.c:37:DYN_LoadLibrary() /usr/local/lib/pcsc/drivers/SCLGENERIC.bundle/Contents/Linux/libSCLGENERIC.so.2.09: /usr/local/lib/pcsc/drivers/SCLGENERIC.bundle/Contents/Linux/libSCLGENERIC.so.2.09: wrong ELF class: ELFCLASS32
00000096 readerfactory.c:996:RFInitializeReader() RFLoadReader failed: 0xFFFFFFFF80100014
00000074 readerfactory.c:312:RFAddReader() SCL011G Contactless Reader [SCL01x Contactless Reader] (21161207200555) init failed.
00000047 hotplug_libudev.c:391:HPAddDevice() Failed adding USB device: SCL011G Contactless Reader

当我运行pcsc_scan时:

PC/SC device scanner
V 1.4.18 (c) 2001-2011, Ludovic Rousseau <ludovic.rousseau@free.fr>
Compiled with PC/SC lite version: 1.7.4
Using reader plug'n play mechanism
Scanning present readers...
0: SCL011G Contactless Reader [SCL01x Contactless Reader] (21161207200555) 00 00

Fri Jan 17 03:27:45 2014
Reader 0: SCL011G Contactless Reader [SCL01x Contactless Reader] (21161207200555) 00 00
  Card state: 

没什么......

我在java中也尝试过使用smartcardio包的例子,错误是:没有终端,无法找到cardreader。 当我运行lsusb时,设备列表中的读卡器标记为SCM Microsystem

[编辑] [1.0] 我已经设法启动pcscd服务,现在我可以看到该设备正在通过信号灯工作 当我刷智能卡时,灯正在工作。 已安装64位驱动程序

Trying to figure out why do i get error: SCardEstablishContext: Service not available.
after pcsc_scan command

2 个答案:

答案 0 :(得分:1)

驱动程序无法加载:wrong ELF class: ELFCLASS32 00000096

您正在尝试在64位平台上加载32位库。运行32位chroot / multilib设置或获取/编译库为64位

答案 1 :(得分:0)

<强>解决 找到并安装64位驱动程序后,我刚刚杀死了pcscd服务。 我这样做了:

sudo killall pcscd
sudo pcscd -fd

之后我能够通过读卡器阅读智能卡。

来自java.samrtcardio的示例代码也很好用。