基于Linux的智能卡读卡器检测

基于Linux的智能卡读卡器检测,linux,smartcard-reader,Linux,Smartcard Reader,我有一个叫SK-284的智能卡读卡器。它支持两种通信方式,RS232和USB。 在我的情况下,只有USB是启用的。当我通过USB将此设备连接到Linux笔记本电脑时,它不会被检测到。我运行“$dmesg”命令检查在哪个ttyUSB端口检测到它,我得到以下输出 [ 2321.208330] usb 2-1.2: new full-speed USB device number 7 using ehci_hcd [ 2321.384628] generic-usb 0003:8203:8288.00

我有一个叫SK-284的智能卡读卡器。它支持两种通信方式,RS232和USB。 在我的情况下,只有USB是启用的。当我通过USB将此设备连接到Linux笔记本电脑时,它不会被检测到。我运行“$dmesg”命令检查在哪个ttyUSB端口检测到它,我得到以下输出

[ 2321.208330] usb 2-1.2: new full-speed USB device number 7 using ehci_hcd
[ 2321.384628] generic-usb 0003:8203:8288.0003: hiddev0,hidraw1: USB HID v1.10 Device [\xffffffe6\xffffffb7\xffffffb1\xffffffb7\xffffffb1\xffffffe5\xffffff9c\xffffffb3\xffffff9c\xffffffb3\xffffffe5\xffffff88\xffffff9b\xffffff88\xffffff9b\xffffffe8\xffffff87\xffffffaa\xffffff87\xffffffaa\xffffffe6\xffffff8a\xffffff80\xffffff8a\xffffff80\xffffffe6\xffffff9c\xffffffaf\xffffff9c\xffffffaf\xffffffe6\xffffff9c\xffffff89\xffffff9c\xffffff89\xffffffe9\xffffff99\xffffff90\xffffff99\xffffff90\xffffffe5\xffffff85\xffffffac\xffffff85\xffffffac\xffffffe5\xffffff8f\xffffffb8\xffffff8f\xffffffb8 CRT450  USB 1.1] on usb-0000:00:1d.0-1.2/input0
[ 2326.634925] usb 2-1.2: USB disconnect, device number 7
[ 2326.855479] usb 2-1.2: new full-speed USB device number 8 using ehci_hcd
[ 2326.954303] usb 2-1.2: config index 0 descriptor too short (expected 9, got 0)
[ 2326.954310] usb 2-1.2: can't read configurations, error -22
[ 2327.027211] usb 2-1.2: new full-speed USB device number 9 using ehci_hcd
[ 2327.171371] generic-usb 0003:CEA0:2840.0004: hiddev0,hidraw1: USB HID v1.10 Device [\xffffffe6\xffffffb7\xffffffb1\xffffffb7\xffffffb1\xffffffe5\xffffff9c\xffffffb3\xffffff9c\xffffffb3\xffffffe5\xffffff88\xffffff9b\xffffff88\xffffff9b\xffffffe8\xffffff87\xffffffaa\xffffff87\xffffffaa\xffffffe6\xffffff8a\xffffff80\xffffff8a\xffffff80\xffffffe6\xffffff9c\xffffffaf\xffffff9c\xffffffaf\xffffffe6\xffffff9c\xffffff89\xffffff9c\xffffff89\xffffffe9\xffffff99\xffffff90\xffffff99\xffffff90\xffffffe5\xffffff85\xffffffac\xffffff85\xffffffac\xffffffe5\xffffff8f\xffffffb8\xffffff8f\xffffffb8 CRT284 USB 1.1] on usb-0000:00:1d.0-1.2/input0
我的笔记本电脑规格: 操作系统:Ubuntu 12.04 内核:3.2.0-54-generic-pae

当我将同一台设备连接到Windows 7并运行设备管理器时,它在人机界面设备(HID)下被检测到。一些测试应用程序运行良好

我的任务是在Linux上编写一个小代码,通过设备检测智能卡。 那么,我从哪里知道这个设备使用的是哪个ttyUSB端口,或者任何其他连接到这个设备的方法


提前谢谢

您可以尝试更改usbcore模块中的某些参数:

echo y > /sys/module/usbcore/parameters/old_scheme_first
然后重新插入usb设备

由于它是全速设备(非高速),您也可以执行以下操作:

rmmod ehci-hcd
insmod uhci-hcd
insmod ohci-hcd

似乎usb通信有问题。可能在usb设备端,因为usb主机需要9个字节,但usb设备发送0个字节。

听起来像是驱动程序问题?对于硬件方面的问题,您可能会在站点上有更好的运气,只列出了实际上有一个文件标记为Linux。尝试安装它。