Hi list,
I got a new smartcard keyboard; at first it seemed to work with
pcsclite, but a few weeks ago it stopped working with the error in the
subject -- probably due to an upgrade of pcsclite or another package.
I have no idea where the device names come from -- usbids? udev?
pcsclite itself? hardware?
I patched pcsclite to include the name of the failing devices, this is
what I see in journal:
May 28 18:49:04 wrx pcscd[10080]: 00000000
readerfactory.c:126:RFAddReader() Reader name too long: 99 chars
instead of max 93: Hewlett-Packard Company HP USB CCID Smartcard
Keyboard [HP USB CCID Smartca
May 28 18:49:04 wrx pcscd[10080]: 00000052
hotplug_libudev.c:379:HPAddDevice() Failed adding USB device:
Hewlett-Packard Company HP USB CCID Smartcard Keyboard
May 28 18:49:04 wrx pcscd[10080]: 00000336
readerfactory.c:126:RFAddReader() Reader name too long: 99 chars
instead of max 93: Hewlett-Packard Company HP USB CCID Smartcard
Keyboard [HP USB CCID Keyboar
May 28 18:49:04 wrx pcscd[10080]: 00000012
hotplug_libudev.c:379:HPAddDevice() Failed adding USB device:
Hewlett-Packard Company HP USB CCID Smartcard Keyboard
May 28 18:49:04 wrx pcscd[10080]: 00000297
readerfactory.c:126:RFAddReader() Reader name too long: 99 chars
instead of max 93: Hewlett-Packard Company HP USB CCID Smartcard
Keyboard [HP USB CCID Smartca
May 28 18:49:04 wrx pcscd[10080]: 00000009
hotplug_libudev.c:379:HPAddDevice() Failed adding USB device:
Hewlett-Packard Company HP USB CCID Smartcard Keyboard
Note that the 99-char name is already truncated, but RFAddReader
expects a 93-char name rather than a 99-char name (huh, who made up
these silly limits anyway?)
Digging the code further, it looks like the call from
RFReCheckReaderConf properly truncates the last 6 chars:
1411 lpcStripReader[tmplen - 6] = 0;
But the RFStartSerialReaders function doesn't.
I'll see if I can come up with a working patch.
Regards,
Marti
lsusb -v:
Bus 004 Device 003: ID 03f0:0036 Hewlett-Packard
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 16
idVendor 0x03f0 Hewlett-Packard
idProduct 0x0036
bcdDevice 1.24
iManufacturer 1 Hewlett-Packard Company
iProduct 2 HP USB CCID Smartcard Keyboard
iSerial 7 10120800001412
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 143
bNumInterfaces 3
bConfigurationValue 1
iConfiguration 3 HP USB CCID Smartcard Keyboard
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 1 Boot Interface Subclass
bInterfaceProtocol 1 Keyboard
iInterface 4 HP USB CCID Smartcard Keyboard
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.10
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 54
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x86 EP 6 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0008 1x 8 bytes
bInterval 10
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 3
bInterfaceClass 11 Chip/SmartCard
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 5 HP USB CCID Keyboard Smartcard Reader
ChipCard Interface Descriptor:
bLength 54
bDescriptorType 33
bcdCCID 1.10 (Warning: Only accurate for version 1.0)
nMaxSlotIndex 0
bVoltageSupport 3 5.0V 3.0V
dwProtocols 3 T=0 T=1
dwDefaultClock 4800
dwMaxiumumClock 8000
bNumClockSupported 0
dwDataRate 12903 bps
dwMaxDataRate 307200 bps
bNumDataRatesSupp. 0
dwMaxIFSD 252
dwSyncProtocols 00000000
dwMechanical 00000001 accept
dwFeatures 000100BA
Auto configuration based on ATR
Auto voltage selection
Auto clock change
Auto baud rate change
Auto PPS made by CCID
TPDU level exchange
dwMaxCCIDMsgLen 271
bClassGetResponse echo
bClassEnvelope echo
wlcdLayout none
bPINSupport 3 verification modification
bMaxCCIDBusySlots 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0008 1x 8 bytes
bInterval 10
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 0 No Subclass
bInterfaceProtocol 0 None
iInterface 6 HP USB CCID Smartcard Keyboard Hotkey
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.10
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 26
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x87 EP 7 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0002 1x 2 bytes
bInterval 10
Device Status: 0x0000
(Bus Powered)
_______________________________________________
Muscle mailing list
[email protected]
http://lists.drizzle.com/mailman/listinfo/muscle