Package: libccid Version: 1.4.27-1 Severity: wishlist Hi,
I own a smartcard reader from REINER SCT called 'cyberJack RFID standard'. The hardware is been detected by the kernel. > [ 3190.196206] usb 1-8.2: new full-speed USB device number 8 using xhci_hcd > [ 3190.297681] usb 1-8.2: New USB device found, idVendor=0c4b, idProduct=0500 > [ 3190.297683] usb 1-8.2: New USB device strings: Mfr=1, Product=2, > SerialNumber=3 > [ 3190.297684] usb 1-8.2: Product: cyberJack RFID standard > [ 3190.297685] usb 1-8.2: Manufacturer: REINER SCT > [ 3190.297686] usb 1-8.2: SerialNumber: 8351675532 I tried to work with my GnuPG card V2 within Enigmail but failed due gpg seems to not find any card reader. I moved over and tried pcsc_scan to see if any reader can be found, but no hardware could be found. > $ pcsc_scan > PC/SC device scanner > V 1.5.2 (c) 2001-2017, Ludovic Rousseau <ludovic.rouss...@free.fr> > Using reader plug'n play mechanism > Scanning present readers... > Waiting for the first reader... | ^C Next I've taken a look into the source of ccid and could find a entry for vendor 0x0c4b and product 0x0500. So I added a extra line with the required data and rebuild the package. After installation and stopping pcscd service I started pcscd manually and called pcsc_scan again. Now the card reader is been detected. This is the log of pcscd. $ sudo service pcscd stop > $ sudo LIBCCID_ifdLogLevel=0x000F pcscd --foreground --debug --apdu --color > 00000000 debuglog.c:289:DebugLogSetLevel() debug level=debug > 00000041 debuglog.c:310:DebugLogSetCategory() Debug options: APDU > 00000003 pcscdaemon.c:350:main() Force colored logs > 00000041 configfile.l:285:DBGetReaderListDir() Parsing conf directory: > /etc/reader.conf.d > 00000009 configfile.l:322:DBGetReaderListDir() Skipping non regular file: .. > 00000001 configfile.l:322:DBGetReaderListDir() Skipping non regular file: . > 00000002 configfile.l:361:DBGetReaderList() Parsing conf file: > /etc/reader.conf.d/libccidtwin > 00000018 pcscdaemon.c:658:main() pcsc-lite 1.8.22 daemon ready. > 00002007 hotplug_libudev.c:297:get_driver() Looking for a driver for VID: > 0x1D6B, PID: 0x0002, path: /dev/bus/usb/001/001 > 00000053 hotplug_libudev.c:297:get_driver() Looking for a driver for VID: > 0x1D6B, PID: 0x0002, path: /dev/bus/usb/001/001 > 00000054 hotplug_libudev.c:297:get_driver() Looking for a driver for VID: > 0x046D, PID: 0xC50E, path: /dev/bus/usb/001/002 > 00000048 hotplug_libudev.c:297:get_driver() Looking for a driver for VID: > 0x1D6B, PID: 0x0002, path: /dev/bus/usb/001/001 > 00000051 hotplug_libudev.c:297:get_driver() Looking for a driver for VID: > 0x0409, PID: 0x55AA, path: /dev/bus/usb/001/003 > 00000057 hotplug_libudev.c:297:get_driver() Looking for a driver for VID: > 0x046D, PID: 0xC301, path: /dev/bus/usb/001/005 > 00000053 hotplug_libudev.c:297:get_driver() Looking for a driver for VID: > 0x046D, PID: 0xC301, path: /dev/bus/usb/001/005 > 00000049 hotplug_libudev.c:297:get_driver() Looking for a driver for VID: > 0x0409, PID: 0x55AA, path: /dev/bus/usb/001/003 > 00000047 hotplug_libudev.c:297:get_driver() Looking for a driver for VID: > 0x1D6B, PID: 0x0002, path: /dev/bus/usb/001/001 > 00000050 hotplug_libudev.c:297:get_driver() Looking for a driver for VID: > 0x05E3, PID: 0x0608, path: /dev/bus/usb/001/004 > 00000054 hotplug_libudev.c:297:get_driver() Looking for a driver for VID: > 0x046D, PID: 0xC042, path: /dev/bus/usb/001/006 > 00000052 hotplug_libudev.c:297:get_driver() Looking for a driver for VID: > 0x046D, PID: 0xC042, path: /dev/bus/usb/001/006 > 00000049 hotplug_libudev.c:297:get_driver() Looking for a driver for VID: > 0x05E3, PID: 0x0608, path: /dev/bus/usb/001/004 > 00000055 hotplug_libudev.c:297:get_driver() Looking for a driver for VID: > 0x0C4B, PID: 0x0500, path: /dev/bus/usb/001/010 > 00000003 hotplug_libudev.c:436:HPAddDevice() Adding USB device: Reiner SCT > Kartensysteme GmbH cyberJack RFID standard dual interface smartcard reader > 00000031 readerfactory.c:1074:RFInitializeReader() Attempting startup of > Reiner SCT Kartensysteme GmbH cyberJack RFID standard dual interface > smartcard reader (8351675532) 00 00 using > /usr/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Linux/libccid.so > 00000111 readerfactory.c:949:RFBindFunctions() Loading IFD Handler 3.0 > 00000014 ifdhandler.c:1965:init_driver() Driver version: 1.4.27 > 00000396 ifdhandler.c:1982:init_driver() LogLevel: 0x0003 > 00000004 ifdhandler.c:1993:init_driver() DriverOptions: 0x0000 > 00000121 ifdhandler.c:2006:init_driver() LogLevel from LIBCCID_ifdLogLevel: > 0x000F > 00000003 ifdhandler.c:111:CreateChannelByNameOrChannel() Lun: 0, device: > usb:0c4b/0500:libudev:0:/dev/bus/usb/001/010 > 00000003 ccid_usb.c:237:OpenUSBByName() Reader index: 0, Device: > usb:0c4b/0500:libudev:0:/dev/bus/usb/001/010 > 00000008 ccid_usb.c:269:OpenUSBByName() interface_number: 0 > 00000002 ccid_usb.c:270:OpenUSBByName() usb bus/device: 1/10 > 00000002 ccid_usb.c:302:OpenUSBByName() Using: > /usr/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Info.plist > 00000397 ccid_usb.c:320:OpenUSBByName() ifdManufacturerString: Ludovic > Rousseau (ludovic.rouss...@free.fr) > 00000003 ccid_usb.c:321:OpenUSBByName() ifdProductString: Generic CCID driver > 00000003 ccid_usb.c:322:OpenUSBByName() Copyright: This driver is protected > by terms of the GNU Lesser General Public License version 2.1, or (at your > option) any later version. > 00001643 ccid_usb.c:406:OpenUSBByName() Try device: 1/10 > 00000008 ccid_usb.c:416:OpenUSBByName() vid/pid : 0C4B/0500 > 00000003 ccid_usb.c:483:OpenUSBByName() Checking device: 1/10 > 00000003 ccid_usb.c:554:OpenUSBByName() Trying to open USB bus/device: 1/10 > 00000044 ccid_usb.c:656:OpenUSBByName() Found Vendor/Product: 0C4B/0500 > (Reiner SCT Kartensysteme GmbH cyberJack RFID standard dual interface > smartcard reader) > 00000004 ccid_usb.c:658:OpenUSBByName() Using USB bus/device: 1/10 > 00000003 ccid_usb.c:717:OpenUSBByName() bNumDataRatesSupported is 0 > 00000985 ccid_usb.c:1296:InterruptRead() before (0) > 00102159 ccid_usb.c:1342:InterruptRead() after (0) (2) > 00000027 -> 000000 65 00 00 00 00 00 00 00 00 00 > 00000254 <- 000000 81 00 00 00 00 00 00 01 00 01 > 00000021 -> 000000 65 00 00 00 00 00 01 00 00 00 > 00000244 <- 000000 81 00 00 00 00 00 01 01 00 01 > 00000023 ifdhandler.c:382:IFDHGetCapabilities() tag: 0xFB3, > usb:0c4b/0500:libudev:0:/dev/bus/usb/001/010 (lun: 0) > 00000009 readerfactory.c:396:RFAddReader() Using the reader polling thread > 00000007 ifdhandler.c:1825:IFDHICCPresence() > usb:0c4b/0500:libudev:0:/dev/bus/usb/001/010 (lun: 0) > 00000009 -> 000000 65 00 00 00 00 00 02 00 00 00 > 00000245 <- 000000 81 00 00 00 00 00 02 01 00 01 > 00000019 ifdhandler.c:1946:IFDHICCPresence() Card present > 00000169 ifdhandler.c:382:IFDHGetCapabilities() tag: 0xFAE, > usb:0c4b/0500:libudev:0:/dev/bus/usb/001/010 (lun: 0) > 00000011 ifdhandler.c:477:IFDHGetCapabilities() Reader supports 1 slot(s) > 00000061 ifdhandler.c:1825:IFDHICCPresence() > usb:0c4b/0500:libudev:0:/dev/bus/usb/001/010 (lun: 0) > 00000027 -> 000000 65 00 00 00 00 00 03 00 00 00 > 00000283 <- 000000 81 00 00 00 00 00 03 01 00 01 > 00000021 ifdhandler.c:1946:IFDHICCPresence() Card present > 00000010 ifdhandler.c:1825:IFDHICCPresence() > usb:0c4b/0500:libudev:0:/dev/bus/usb/001/010 (lun: 0) > 00000009 -> 000000 65 00 00 00 00 00 04 00 00 00 > 00000007 hotplug_libudev.c:297:get_driver() Looking for a driver for VID: > 0x05E3, PID: 0x0608, path: /dev/bus/usb/001/004 > 00000231 <- 000000 81 00 00 00 00 00 04 01 00 01 > 00000022 ifdhandler.c:1946:IFDHICCPresence() Card present > 00000008 ifdhandler.c:1158:IFDHPowerICC() action: PowerUp, > usb:0c4b/0500:libudev:0:/dev/bus/usb/001/010 (lun: 0) > 00000011 -> 000000 62 00 00 00 00 00 05 01 00 00 > 00000031 hotplug_libudev.c:297:get_driver() Looking for a driver for VID: > 0x1D6B, PID: 0x0003, path: /dev/bus/usb/002/001 > 00000089 readerfactory.c:1409:RFWaitForReaderInit() Waiting init for reader: > Reiner SCT Kartensysteme GmbH cyberJack RFID standard dual interface > smartcard reader (8351675532) 00 00 > 00010136 readerfactory.c:1409:RFWaitForReaderInit() Waiting init for reader: > Reiner SCT Kartensysteme GmbH cyberJack RFID standard dual interface > smartcard reader (8351675532) 00 00 > 00010135 readerfactory.c:1409:RFWaitForReaderInit() Waiting init for reader: > Reiner SCT Kartensysteme GmbH cyberJack RFID standard dual interface > smartcard reader (8351675532) 00 00 > 00010141 readerfactory.c:1409:RFWaitForReaderInit() Waiting init for reader: > Reiner SCT Kartensysteme GmbH cyberJack RFID standard dual interface > smartcard reader (8351675532) 00 00 > 00010146 readerfactory.c:1409:RFWaitForReaderInit() Waiting init for reader: > Reiner SCT Kartensysteme GmbH cyberJack RFID standard dual interface > smartcard reader (8351675532) 00 00 > 00005054 <- 000000 80 15 00 00 00 00 05 00 00 00 3B DA 18 FF 81 B1 FE 75 1F > 03 00 31 C5 73 C0 01 40 00 90 00 0C > 00000029 eventhandler.c:287:EHStatusHandlerThread() powerState: > POWER_STATE_POWERED > 00000012 Card ATR: 3B DA 18 FF 81 B1 FE 75 1F 03 00 31 C5 73 C0 01 40 00 90 > 00 0C > 00000010 ifdhandler.c:1825:IFDHICCPresence() > usb:0c4b/0500:libudev:0:/dev/bus/usb/001/010 (lun: 0) > 00000009 -> 000000 65 00 00 00 00 00 06 00 00 00 > 00000264 <- 000000 81 00 00 00 00 00 06 00 00 00 > 00000019 ifdhandler.c:1946:IFDHICCPresence() Card present > 00000008 ifdhandler.c:311:IFDHPolling() > usb:0c4b/0500:libudev:0:/dev/bus/usb/001/010 (lun: 0) 5000 ms > 00000008 ccid_usb.c:1296:InterruptRead() before (0) > 05002155 ccid_usb.c:1342:InterruptRead() after (0) (2) > 00000024 ifdhandler.c:1825:IFDHICCPresence() > usb:0c4b/0500:libudev:0:/dev/bus/usb/001/010 (lun: 0) > 00000012 -> 000000 65 00 00 00 00 00 07 00 00 00 > 00000284 <- 000000 81 00 00 00 00 00 07 00 00 00 > 00000021 ifdhandler.c:1946:IFDHICCPresence() Card present > 00000009 ifdhandler.c:1158:IFDHPowerICC() action: PowerDown, > usb:0c4b/0500:libudev:0:/dev/bus/usb/001/010 (lun: 0) > 00000011 -> 000000 63 00 00 00 00 00 08 00 00 00 > 00000306 <- 000000 81 00 00 00 00 00 08 01 00 00 > 00000022 eventhandler.c:480:EHStatusHandlerThread() powerState: > POWER_STATE_UNPOWERED > 00000009 ifdhandler.c:1825:IFDHICCPresence() > usb:0c4b/0500:libudev:0:/dev/bus/usb/001/010 (lun: 0) > 00000010 -> 000000 65 00 00 00 00 00 09 00 00 00 > 00000349 <- 000000 81 00 00 00 00 00 09 01 00 01 > 00000022 ifdhandler.c:1946:IFDHICCPresence() Card present > 00000009 ifdhandler.c:311:IFDHPolling() > usb:0c4b/0500:libudev:0:/dev/bus/usb/001/010 (lun: 0) 600000 ms > 00000007 ccid_usb.c:1296:InterruptRead() before (0) > 02602754 winscard_msg_srv.c:251:ProcessEventsServer() Common channel packet > arrival > 00000040 winscard_msg_srv.c:263:ProcessEventsServer() > ProcessCommonChannelRequest detects: 14 > 00000010 pcscdaemon.c:131:SVCServiceRunLoop() A new context thread creation > is requested: 14 > 00000121 winscard_svc.c:340:ContextThread() Authorized PC/SC client > 00000022 winscard_svc.c:344:ContextThread() Thread is started: dwClientID=14, > threadContext @0x559e3cfaa0e0 > 00000019 winscard_svc.c:362:ContextThread() Received command: CMD_VERSION > from client 14 > 00000010 winscard_svc.c:374:ContextThread() Client is protocol version 4:3 > 00000011 winscard_svc.c:394:ContextThread() CMD_VERSION rv=0x0 for client 14 > 00000049 winscard_svc.c:362:ContextThread() Received command: > ESTABLISH_CONTEXT from client 14 > 00000014 winscard.c:215:SCardEstablishContext() Establishing Context: > 0x13765C7B > 00000006 winscard_svc.c:458:ContextThread() ESTABLISH_CONTEXT rv=0x0 for > client 14 > 00000075 winscard_svc.c:362:ContextThread() Received command: > CMD_GET_READERS_STATE from client 14 > 00000140 winscard_svc.c:362:ContextThread() Received command: > CMD_WAIT_READER_STATE_CHANGE from client 14 > 00000067 winscard_svc.c:362:ContextThread() Received command: > CMD_STOP_WAITING_READER_STATE_CHANGE from client 14 > 00000016 winscard_svc.c:439:ContextThread() > CMD_STOP_WAITING_READER_STATE_CHANGE rv=0x0 for client 14 > 00000062 winscard_svc.c:362:ContextThread() Received command: > CMD_GET_READERS_STATE from client 14 > 00000096 winscard_svc.c:362:ContextThread() Received command: > CMD_GET_READERS_STATE from client 14 > 00000041 winscard_svc.c:362:ContextThread() Received command: > CMD_GET_READERS_STATE from client 14 > 00000052 winscard_svc.c:362:ContextThread() Received command: > CMD_GET_READERS_STATE from client 14 > 00038262 winscard_svc.c:362:ContextThread() Received command: > CMD_GET_READERS_STATE from client 14 > 00000068 winscard_svc.c:362:ContextThread() Received command: > CMD_WAIT_READER_STATE_CHANGE from client 14 > 01001119 winscard_svc.c:362:ContextThread() Received command: > CMD_STOP_WAITING_READER_STATE_CHANGE from client 14 > 00000034 winscard_svc.c:439:ContextThread() > CMD_STOP_WAITING_READER_STATE_CHANGE rv=0x0 for client 14 > 00000149 winscard_svc.c:362:ContextThread() Received command: > CMD_GET_READERS_STATE from client 14 > 00000195 winscard_svc.c:362:ContextThread() Received command: > CMD_GET_READERS_STATE from client 14 > 00000166 winscard_svc.c:362:ContextThread() Received command: > CMD_WAIT_READER_STATE_CHANGE from client 14 > 01001091 winscard_svc.c:362:ContextThread() Received command: > CMD_STOP_WAITING_READER_STATE_CHANGE from client 14 > 00000034 winscard_svc.c:439:ContextThread() > CMD_STOP_WAITING_READER_STATE_CHANGE rv=0x0 for client 14 > 00000141 winscard_svc.c:362:ContextThread() Received command: > CMD_GET_READERS_STATE from client 14 > 00000182 winscard_svc.c:362:ContextThread() Received command: > CMD_GET_READERS_STATE from client 14 > 00000158 winscard_svc.c:362:ContextThread() Received command: > CMD_WAIT_READER_STATE_CHANGE from client 14 > 01001101 winscard_svc.c:362:ContextThread() Received command: > CMD_STOP_WAITING_READER_STATE_CHANGE from client 14 > 00000033 winscard_svc.c:439:ContextThread() > CMD_STOP_WAITING_READER_STATE_CHANGE rv=0x0 for client 14 > 00000145 winscard_svc.c:362:ContextThread() Received command: > CMD_GET_READERS_STATE from client 14 > 00000176 winscard_svc.c:362:ContextThread() Received command: > CMD_GET_READERS_STATE from client 14 > 00000165 winscard_svc.c:362:ContextThread() Received command: > CMD_WAIT_READER_STATE_CHANGE from client 14 > 01001096 winscard_svc.c:362:ContextThread() Received command: > CMD_STOP_WAITING_READER_STATE_CHANGE from client 14 > 00000033 winscard_svc.c:439:ContextThread() > CMD_STOP_WAITING_READER_STATE_CHANGE rv=0x0 for client 14 > 00000145 winscard_svc.c:362:ContextThread() Received command: > CMD_GET_READERS_STATE from client 14 > 00000181 winscard_svc.c:362:ContextThread() Received command: > CMD_GET_READERS_STATE from client 14 > 00000162 winscard_svc.c:362:ContextThread() Received command: > CMD_WAIT_READER_STATE_CHANGE from client 14 > 01001092 winscard_svc.c:362:ContextThread() Received command: > CMD_STOP_WAITING_READER_STATE_CHANGE from client 14 > 00000033 winscard_svc.c:439:ContextThread() > CMD_STOP_WAITING_READER_STATE_CHANGE rv=0x0 for client 14 > 00000142 winscard_svc.c:362:ContextThread() Received command: > CMD_GET_READERS_STATE from client 14 > 00000152 winscard_svc.c:362:ContextThread() Received command: > CMD_GET_READERS_STATE from client 14 > 00000101 winscard_svc.c:362:ContextThread() Received command: > CMD_WAIT_READER_STATE_CHANGE from client 14 > 01001152 winscard_svc.c:362:ContextThread() Received command: > CMD_STOP_WAITING_READER_STATE_CHANGE from client 14 > 00000033 winscard_svc.c:439:ContextThread() > CMD_STOP_WAITING_READER_STATE_CHANGE rv=0x0 for client 14 > 00000142 winscard_svc.c:362:ContextThread() Received command: > CMD_GET_READERS_STATE from client 14 > 00000180 winscard_svc.c:362:ContextThread() Received command: > CMD_GET_READERS_STATE from client 14 > 00000159 winscard_svc.c:362:ContextThread() Received command: > CMD_WAIT_READER_STATE_CHANGE from client 14 > 00621233 winscard_svc.c:354:ContextThread() Client die: 14 > 00000035 winscard.c:229:SCardReleaseContext() Releasing Context: 0x13765C7B > 00000010 winscard_svc.c:1029:MSGCleanupClient() Thread is stopping: > dwClientID=14, threadContext @0x559e3cfaa0e0 > 00000006 winscard_svc.c:1035:MSGCleanupClient() Freeing SCONTEXT > @0x559e3cfaa0e0 While this is the output of pcsc_scan within a other terminal. > $ pcsc_scan > PC/SC device scanner > V 1.5.2 (c) 2001-2017, Ludovic Rousseau <ludovic.rouss...@free.fr> > Using reader plug'n play mechanism > Scanning present readers... > 0: Reiner SCT Kartensysteme GmbH cyberJack RFID standard dual interface > smartcard reader (8351675532) 00 00 > > Fri Sep 8 19:24:59 2017 > Reader 0: Reiner SCT Kartensysteme GmbH cyberJack RFID standard dual > interface smartcard reader (8351675532) 00 00 > Card state: Card inserted, > ATR: 3B DA 18 FF 81 B1 FE 75 1F 03 00 31 C5 73 C0 01 40 00 90 00 0C > > ATR: 3B DA 18 FF 81 B1 FE 75 1F 03 00 31 C5 73 C0 01 40 00 90 00 0C > + TS = 3B --> Direct Convention > + T0 = DA, Y(1): 1101, K: 10 (historical bytes) > TA(1) = 18 --> Fi=372, Di=12, 31 cycles/ETU > 129032 bits/s at 4 MHz, fMax for Fi = 5 MHz => 161290 bits/s > TC(1) = FF --> Extra guard time: 255 (special value) > TD(1) = 81 --> Y(i+1) = 1000, Protocol T = 1 > ----- > TD(2) = B1 --> Y(i+1) = 1011, Protocol T = 1 > ----- > TA(3) = FE --> IFSC: 254 > TB(3) = 75 --> Block Waiting Integer: 7 - Character Waiting Integer: 5 > TD(3) = 1F --> Y(i+1) = 0001, Protocol T = 15 - Global interface bytes > following > ----- > TA(4) = 03 --> Clock stop: not supported - Class accepted by the card: (3G) > A 5V B 3V > + Historical bytes: 00 31 C5 73 C0 01 40 00 90 00 > Category indicator byte: 00 (compact TLV data object) > Tag: 3, len: 1 (card service data byte) > Card service data byte: C5 > - Application selection: by full DF name > - Application selection: by partial DF name > - EF.DIR and EF.ATR access services: by GET DATA command > - Card without MF > Tag: 7, len: 3 (card capabilities) > Selection methods: C0 > - DF selection by full DF name > - DF selection by partial DF name > Data coding byte: 01 > - Behaviour of write functions: one-time write > - Value 'FF' for the first byte of BER-TLV tag fields: invalid > - Data unit in quartets: 2 > Command chaining, length fields and logical channels: 40 > - Extended Lc and Le fields > - Logical channel number assignment: No logical channel > - Maximum number of logical channels: 1 > Mandatory status indicator (3 last bytes) > LCS (life card cycle): 00 (No information given) > SW: 9000 (Normal processing.) > + TCK = 0C (correct checksum) > > Possibly identified card (using /usr/share/pcsc/smartcard_list.txt): > 3B DA 18 FF 81 B1 FE 75 1F 03 00 31 C5 73 C0 01 40 00 90 00 0C > GnuPG card V2 > \ ^C The data of the card won't be read for a unknown reason for me, but that's maybe a other problem. The log of lsusb for the card reader comes here. > $ lsusb -v -s 001:010 > > Bus 001 Device 010: ID 0c4b:0500 Reiner SCT Kartensysteme GmbH cyberJack RFID > standard dual interface smartcard reader > Device Descriptor: > bLength 18 > bDescriptorType 1 > bcdUSB 2.00 > bDeviceClass 0 (Defined at Interface level) > bDeviceSubClass 0 > bDeviceProtocol 0 > bMaxPacketSize0 64 > idVendor 0x0c4b Reiner SCT Kartensysteme GmbH > idProduct 0x0500 cyberJack RFID standard dual interface smartcard > reader > bcdDevice 0.01 > iManufacturer 1 REINER SCT > iProduct 2 cyberJack RFID standard > iSerial 3 8351675532 > bNumConfigurations 1 > Configuration Descriptor: > bLength 9 > bDescriptorType 2 > wTotalLength 93 > bNumInterfaces 1 > bConfigurationValue 1 > iConfiguration 0 > bmAttributes 0x80 > (Bus Powered) > MaxPower 192mA > Interface Descriptor: > bLength 9 > bDescriptorType 4 > bInterfaceNumber 0 > bAlternateSetting 0 > bNumEndpoints 3 > bInterfaceClass 255 Vendor Specific Class > bInterfaceSubClass 0 > bInterfaceProtocol 0 > iInterface 0 > ** UNRECOGNIZED: 36 21 00 10 00 07 03 00 00 00 a0 0f 00 00 40 1f 00 00 > 00 58 27 00 00 90 d0 03 00 00 fe 00 00 00 07 00 00 00 00 00 00 00 30 00 01 00 > 0a 14 00 00 ff ff 00 00 03 01 > Endpoint Descriptor: > bLength 7 > bDescriptorType 5 > bEndpointAddress 0x83 EP 3 IN > bmAttributes 3 > Transfer Type Interrupt > Synch Type None > Usage Type Data > wMaxPacketSize 0x0040 1x 64 bytes > bInterval 5 > Endpoint Descriptor: > bLength 7 > bDescriptorType 5 > bEndpointAddress 0x81 EP 1 IN > bmAttributes 2 > Transfer Type Bulk > Synch Type None > Usage Type Data > wMaxPacketSize 0x0040 1x 64 bytes > bInterval 1 > Endpoint Descriptor: > bLength 7 > bDescriptorType 5 > bEndpointAddress 0x02 EP 2 OUT > bmAttributes 2 > Transfer Type Bulk > Synch Type None > Usage Type Data > wMaxPacketSize 0x0040 1x 64 bytes > bInterval 1 > Device Status: 0x0000 > (Bus Powered) Hopefully this is enough that thos crad reader acn be added to ccid correctly, I've done this more hackish. Feel free to ask for more information. Regards Carsten -- System Information: Debian Release: buster/sid APT prefers testing APT policy: (500, 'testing'), (1, 'experimental') Architecture: amd64 (x86_64) Kernel: Linux 4.12.0-1-amd64 (SMP w/4 CPU cores) Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8), LANGUAGE=de_DE.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) Versions of packages libccid depends on: ii libc6 2.24-17 ii libusb-1.0-0 2:1.0.21-2 libccid recommends no packages. Versions of packages libccid suggests: pn pcmciautils <none> -- no debconf information