Closed antonio-fr closed 4 years ago
The former name of this reader is PC USB-SL. I own some P/N HWP108841F.
00000130 [1946149872] APDU: 80 11 00 00 40 D7 AC 4B 2E 5C 23 9D 85 77 BD 97 07 27 72 8A B4 E0 B9 AA 6F 42 E6 10 E4 61 E7 54 C9 99 51 32 03 84 62 1E 6E 3B 24 7D C2 C2 A1 2D 2C 5A D0 F1 4C 7F 91 3F 3E 14 89 A2 57 D3 F5 A2 7C 18 1D 6C A0
00000028 [1946149872] ifdhandler.c:1303:IFDHTransmitToICC() usb:08e6/3437:libudev:0:/dev/bus/usb/001/026 (lun: 0)
00000046 [1946149872] commands.c:2228:CmdXfrBlockTPDU_T1() T=1: 69 and 65548 bytes
00000022 [1946149872] openct/proto-t1.c:580:t1_build() more bit: 0
00000096 [1946149872] sending: 00 00 45 80 11 00 00 40 D7 AC 4B 2E 5C 23 9D 85 77 BD 97 07 27 72 8A B4 E0 B9 AA 6F 42 E6 10 E4 61 E7 54 C9 99 51 32 03 84 62 1E 6E 3B 24 7D C2 C2 A1 2D 2C 5A D0 F1 4C 7F 91 3F 3E 14 89 A2 57 D3 F5 A2 7C 18 1D 6C A0 27
00000335 [1946149872] -> 000000 6F 49 00 00 00 00 26 00 00 00 00 00 45 80 11 00 00 40 D7 AC 4B 2E 5C 23 9D 85 77 BD 97 07 27 72 8A B4 E0 B9 AA 6F 42 E6 10 E4 61 E7 54 C9 99 51 32 03 84 62 1E 6E 3B 24 7D C2 C2 A1 2D 2C 5A D0 F1 4C 7F 91 3F 3E 14 89 A2 57 D3 F5 A2 7C 18 1D 6C A0 27
05000358 [1946149872] ccid_usb.c:859:WriteUSB() write failed (1/26): -7 LIBUSB_ERROR_TIMEOUT
00000103 [1946149872] openct/proto-t1.c:215:t1_transceive() fatal: transmit/receive failed
I have no idea why the write command fails. I suspect a reader firmware problem. I am surprised it works fine on Windows.
I suggest to report the problem to the reader manufacturer.
So far, our investigation show that the issue is with frame response from card which are exactly 48 bytes long, whatever the data. When a card response is 48 bytes (50 bytes with trailing 0x9000), the reader gives the response back to USB-CCID and then crashes, requiring a full reset (unplug from USB) of the reader. So, any further communication is not possible after a command with a 48B response, leading to transmit failed of the next command.
Surprisingly, the issue is not present on Windows with the Gemalto driver v4.1.4.0 (automatically installed by Windows).
We're contacting Gemalto.
After investigation on the Gemalto side, they were back with a solution for the RaspberryPi platform. The issue is still present on VMs.
There is a caveat on the Raspberry Pi : the USB support is still somewhat buggy, and need to be configured to make it work more reliably. The RPi is occasionally dropping USB packets for "full-speed" peripherals (such as keyboard, mouse, modems, as well as some audio devices) when working in standard "high-speed" mode. The problem is less acute with the most recent firmware, but it is not completely solved. The only reliable workaround for now is to force all peripherals to run in "full-speed" mode. This has the negative side effect of limiting all peripherals (including the on-board network adapter) to 1.5 MBytes/s (12 Mbps).
To force USB to run in "full-speed" mode on RaspberryPi, one need to add _dwcotg.speed=1 in the /boot/cmdline.txt file :
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200> dwc_otg.speed=1 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4> elevator=deadline rootwait
This can be helpful for many CCID readers on the RPi platform, when they're using USB high-spped mode.
I also documented the issue on my blog in 2014 https://ludovicrousseau.blogspot.com/2014/04/usb-issues-with-raspberry-pi.html
I missed that you were using a Raspbery Pi in your first message.
By the way, do you have any useful tips for the same issue with virtual machines? We tried many configuration without any success so far.
I have no solution for virtual machine. The best is to report the problem to you virtual machine provider and ask for help.
I'm using a professional USB card reader Gemalto IDBrigde CT40 for smartcard development. I'm facing some issues with some Linux (Debian/Ubuntu). After deepdown, the issue always happens after a particular command. Still this command is not particular from others : 8010000041[65BPubKey], response is 48 bytes long. Any following command leads to :"smartcard.Exceptions.CardConnectionException: Failed to transmit with protocol T1. Transaction failed."
The logs are the following at the error, when the host try to send the next command :
In an other log file
LibUSB version 1.0.22 CCID driver version 1.4.30 pcscd 1.8.24 pcsc-lite version 1.8.24
Operating system Raspbian Linux raspberrypi 4.19.75
Hardware details : Raspberry Pi 2 B 1.1
Smart card reader manufacturer name and reader model name Gemalto IDBrigde CT40 I believe the issue is in this reader : Even if I remove-insert a smartcard, it is not recognized in the system, I can't reconnect to any card. I have to unplug and plug the USB plug of the reader to make it work again.
Smart card name : NXP P71 J3R200
This seems to happen only with this reader. And also with this reader, on other platforms such as PC x64 with Ubuntu 18.04/19.04, the issue also happens. In Windows, this is OK.
Full Log