[NIIBE Yutaka] > I see the situation. I have no idea about the segmentation fault. > > I don't know if the difference of armel/armhf matters or not. My > point was that in order to narrow down an issue (to be fixed), in > general, it would be better not to change other factors. > > While I guess that the major problem is hardware related, I modified > the ccid-driver of GnuPG so that the difference between PC/SC service > can be smaller (less factors involved).
I agree. I decided to test again using an FreedomBox image to reduce the difference since my initial testing. First I tested using version 2.1.11-7 in Debian testing, and then using version 2.1.14-1 in Debian experimental. Both fail. First the test using testing. fbx@freedombox:~$ cat .gnupg/scdaemon.conf debug-level guru debug-all debug-ccid-driver log-file /run/user/1000/scd.log verbose fbx@freedombox:~$ touch /run/user/1000/scd.log; tail -f /run/user/1000/scd.log & fbx@freedombox:~$ gpg2 --card-status 2016-05-22 00:57:45 scdaemon[15783] listening on socket '/home/fbx/.gnupg/S.scdaemon' 2016-05-22 00:57:45 scdaemon[15783] handler for fd -1 started 2016-05-22 00:57:45 scdaemon[15783] DBG: enter: apdu_open_reader: portstr=(null) 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: using CCID reader 0 (ID=08E6:3438:X:0) 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: idVendor: 08E6 idProduct: 3438 bcdDevice: 0200 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: ChipCard Interface Descriptor: 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: bLength 54 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: bDescriptorType 33 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: bcdCCID 1.01 (Warning: Only accurate for version 1.0) 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: nMaxSlotIndex 0 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: bVoltageSupport 7 ? 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: dwProtocols 3 T=0 T=1 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: dwDefaultClock 4800 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: dwMaxiumumClock 4800 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: bNumClockSupported 0 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: dwDataRate 12903 bps 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: dwMaxDataRate 825806 bps 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: bNumDataRatesSupp. 53 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: dwMaxIFSD 254 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: dwSyncProtocols 00000000 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: dwMechanical 00000000 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: dwFeatures 00010230 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: Auto clock change 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: Auto baud rate change 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: NAD value other than 0x00 accepted 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: TPDU level exchange 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: dwMaxCCIDMsgLen 271 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: bClassGetResponse 00 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: bClassEnvelope 00 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: wlcdLayout none 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: bPINSupport 0 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: bMaxCCIDBusySlots 1 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: usb_claim_interface failed: -1 2016-05-22 00:57:45 scdaemon[15783] pcsc_establish_context failed: no service (0x8010001d) 2016-05-22 00:57:45 scdaemon[15783] DBG: leave: apdu_open_reader => slot=-1 [pc/sc] 2016-05-22 00:57:45 scdaemon[15783] DBG: chan_5 -> OK GNU Privacy Guard's Smartcard server ready 2016-05-22 00:57:45 scdaemon[15783] DBG: chan_5 <- GETINFO socket_name 2016-05-22 00:57:45 scdaemon[15783] DBG: chan_5 -> D /home/fbx/.gnupg/S.scdaemon 2016-05-22 00:57:45 scdaemon[15783] DBG: chan_5 -> OK 2016-05-22 00:57:45 scdaemon[15783] DBG: chan_5 <- OPTION event-signal=12 2016-05-22 00:57:45 scdaemon[15783] DBG: chan_5 -> OK 2016-05-22 00:57:45 scdaemon[15783] DBG: chan_5 <- GETINFO version 2016-05-22 00:57:45 scdaemon[15783] DBG: chan_5 -> D 2.1.11 2016-05-22 00:57:45 scdaemon[15783] DBG: chan_5 -> OK 2016-05-22 00:57:45 scdaemon[15783] DBG: chan_5 <- SERIALNO openpgp 2016-05-22 00:57:45 scdaemon[15783] DBG: enter: apdu_open_reader: portstr=(null) 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: using CCID reader 0 (ID=08E6:3438:X:0) 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: idVendor: 08E6 idProduct: 3438 bcdDevice: 0200 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: ChipCard Interface Descriptor: 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: bLength 54 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: bDescriptorType 33 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: bcdCCID 1.01 (Warning: Only accurate for version 1.0) 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: nMaxSlotIndex 0 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: bVoltageSupport 7 ? 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: dwProtocols 3 T=0 T=1 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: dwDefaultClock 4800 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: dwMaxiumumClock 4800 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: bNumClockSupported 0 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: dwDataRate 12903 bps 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: dwMaxDataRate 825806 bps 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: bNumDataRatesSupp. 53 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: dwMaxIFSD 254 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: dwSyncProtocols 00000000 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: dwMechanical 00000000 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: dwFeatures 00010230 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: Auto clock change 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: Auto baud rate change 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: NAD value other than 0x00 accepted 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: TPDU level exchange 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: dwMaxCCIDMsgLen 271 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: bClassGetResponse 00 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: bClassEnvelope 00 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: wlcdLayout none 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: bPINSupport 0 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: bMaxCCIDBusySlots 1 2016-05-22 00:57:45 scdaemon[15783] DBG: ccid-driver: usb_claim_interface failed: -1 2016-05-22 00:57:45 scdaemon[15783] pcsc_establish_context failed: no service (0x8010001d) 2016-05-22 00:57:45 scdaemon[15783] DBG: leave: apdu_open_reader => slot=-1 [pc/sc] 2016-05-22 00:57:45 scdaemon[15783] DBG: chan_5 -> ERR 100663404 Card error <SCD> gpg: selecting openpgp failed: Card error gpg: OpenPGP card not available: Card error fbx@freedombox:~$ 2016-05-22 00:57:45 scdaemon[15783] DBG: chan_5 <- RESTART 2016-05-22 00:57:45 scdaemon[15783] DBG: chan_5 -> OK Next, after running 'apt install -t experimental gnupg2 scdaemon', I got this result: fbx@freedombox:~$ killall gpg-agent scdaemon 2016-05-22 01:04:09 scdaemon[15783] DBG: chan_5 <- [eof] 2016-05-22 01:04:09 scdaemon[15783] handler for fd -1 terminated 2016-05-22 01:04:09 scdaemon[15783] SIGTERM received - still 0 running threads 2016-05-22 01:04:09 scdaemon[15783] scdaemon (GnuPG) 2.1.11 stopped fbx@freedombox:~$ fbx@freedombox:~$ gpg2 --card-status 2016-05-22 01:04:17 scdaemon[16362] listening on socket '/run/user/1000/gnupg/S.scdaemon' 2016-05-22 01:04:17 scdaemon[16362] handler for fd -1 started 2016-05-22 01:04:17 scdaemon[16362] DBG: enter: apdu_open_reader: portstr=(null) 2016-05-22 01:04:17 scdaemon[16362] DBG: ccid-driver: usb_open failed: LIBUSB_ERROR_ACCESS 2016-05-22 01:04:17 scdaemon[16362] DBG: ccid-driver: failed to open '/dev/cmx0': No such file or directory 2016-05-22 01:04:17 scdaemon[16362] DBG: ccid-driver: failed to open '/dev/cmx1': No such file or directory 2016-05-22 01:04:17 scdaemon[16362] DBG: ccid-driver: no CCID reader with number 0 2016-05-22 01:04:17 scdaemon[16362] pcsc_establish_context failed: no service (0x8010001d) 2016-05-22 01:04:17 scdaemon[16362] DBG: leave: apdu_open_reader => slot=-1 [pc/sc] 2016-05-22 01:04:17 scdaemon[16362] DBG: chan_5 -> OK GNU Privacy Guard's Smartcard server ready 2016-05-22 01:04:17 scdaemon[16362] DBG: chan_5 <- GETINFO socket_name 2016-05-22 01:04:17 scdaemon[16362] DBG: chan_5 -> D /run/user/1000/gnupg/S.scdaemon 2016-05-22 01:04:17 scdaemon[16362] DBG: chan_5 -> OK 2016-05-22 01:04:17 scdaemon[16362] DBG: chan_5 <- OPTION event-signal=12 2016-05-22 01:04:17 scdaemon[16362] DBG: chan_5 -> OK 2016-05-22 01:04:17 scdaemon[16362] DBG: chan_5 <- GETINFO version 2016-05-22 01:04:17 scdaemon[16362] DBG: chan_5 -> D 2.1.14 2016-05-22 01:04:17 scdaemon[16362] DBG: chan_5 -> OK 2016-05-22 01:04:17 scdaemon[16362] DBG: chan_5 <- SERIALNO openpgp 2016-05-22 01:04:17 scdaemon[16362] DBG: enter: apdu_open_reader: portstr=(null) 2016-05-22 01:04:17 scdaemon[16362] DBG: ccid-driver: usb_open failed: LIBUSB_ERROR_ACCESS 2016-05-22 01:04:17 scdaemon[16362] DBG: ccid-driver: failed to open '/dev/cmx0': No such file or directory 2016-05-22 01:04:17 scdaemon[16362] DBG: ccid-driver: failed to open '/dev/cmx1': No such file or directory 2016-05-22 01:04:17 scdaemon[16362] DBG: ccid-driver: no CCID reader with number 0 2016-05-22 01:04:17 scdaemon[16362] pcsc_establish_context failed: no service (0x8010001d) 2016-05-22 01:04:17 scdaemon[16362] DBG: leave: apdu_open_reader => slot=-1 [pc/sc] 2016-05-22 01:04:17 scdaemon[16362] DBG: chan_5 -> ERR 100663404 Card error <SCD> gpg: selecting openpgp failed: Card error gpg: OpenPGP card not available: Card error 2016-05-22 01:04:17 scdaemon[16362] DBG: chan_5 <- RESTART 2016-05-22 01:04:17 scdaemon[16362] DBG: chan_5 -> OK fbx@freedombox:~$ So I guess it is one step forward, two steps back. :( > Well, if you would like to change other factors to get success anyway, > I'd recommend to take some hardware approach which possibly may > stabilize the USB communication: > > (1) Use good voltage supply to RPi board. > > (2) Only connect the card reader (+ the smart card) to USB port of > RPi so that we can minimize the load of USB. If you connect > keyboard and mouse, try good ones (or none by using the > network). > > (3) Use a USB HUB with an external voltage supply to connect the > card reader. I've tried all three adjustments, did not make a difference. :( I bought the the card and reader I am using from <URL: http://shop.kernelconcepts.de/ >. They work fine using amd64, but not at all using armel. :( -- Happy hacking Petter Reinholdtsen

