[Pcsclite-muscle] SCardEstablishContext method call return SCARD_E_NO_SERVICE on Android
Ludovic Rousseau
ludovic.rousseau
Wed Nov 16 09:47:27 PST 2016
2016-11-16 15:26 GMT+01:00 <plomba at net.hr>:
> Hello again,
> I've managed to get past the LIBUSB_ERROR_BUSY error when loading a driver for ACR38U PocketMate II Smart Card Reader by using a different Android device.
>
> Now the pcscd daemon starts, loads the reader drivers, and loads the card as shown in the log below:
>
> pcscd log:
> 00000000 debuglog.c:289:DebugLogSetLevel() debug level=debug
> 00000457 configfile.l:358:DBGetReaderList() Parsing conf file: /home/frane/PCSC/build/etc/reader.conf.d
> 00000062 pcscdaemon.c:655:main() pcsc-lite 1.8.18 daemon ready.
> 00007080 hotplug_libusb.c:536:HPAddHotPluggable() Adding USB device: 1:2:0
> 00000122 readerfactory.c:1079:RFInitializeReader() Attempting startup of ACS ACR38U-CCID 00 00 using /data/data/test/drivers//ifd-acsccid.bundle/Contents/Linux/libacsccid.so
> 00000915 readerfactory.c:954:RFBindFunctions() Loading IFD Handler 3.0
> 00000153 ifdhandler.c:2611:init_driver() Driver version: 1.1.3
> 00001678 ifdhandler.c:2628:init_driver() LogLevel: 0x0003
> 00000061 ifdhandler.c:2639:init_driver() DriverOptions: 0x0000
> 00000031 ifdhandler.c:2647:init_driver() ACSDriverOptions: 0x0003
> 00000061 ifdhandler.c:2655:init_driver() ACR38CardVoltage: 0
> 00000030 ifdhandler.c:2663:init_driver() ACR38CardType: 0
> 00000336 ifdhandler.c:121:CreateChannelByNameOrChannel() Lun: 0, device: usb:072f/90cc:libusb-1.0:1:2:0
> 00000092 ccid_usb.c:313:OpenUSBByName() Using: /data/data/test/drivers/ifd-acsccid.bundle/Contents/Info.plist
> 00002075 ccid_usb.c:331:OpenUSBByName() ifdManufacturerString: Advanced Card Systems Ltd.
> 00000030 ccid_usb.c:332:OpenUSBByName() ifdProductString: ACS CCID driver
> 00000061 ccid_usb.c:333: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.
> 00001404 ccid_usb.c:706:OpenUSBByName() Found Vendor/Product: 072F/90CC (ACS ACR38U-CCID)
> 00000061 ccid_usb.c:708:OpenUSBByName() Using USB bus/device: 1/2
> 00000031 ccid_usb.c:882:OpenUSBByName() bNumDataRatesSupported is 0
> 00108001 ifdhandler.c:266:CreateChannelByNameOrChannel() dwFeatures: 0x00010030
> 00000153 ifdhandler.c:267:CreateChannelByNameOrChannel() wLcdLayout: 0x0000
> 00000031 ifdhandler.c:268:CreateChannelByNameOrChannel() bPINSupport: 0x00
> 00000061 ifdhandler.c:269:CreateChannelByNameOrChannel() dwMaxCCIDMessageLength: 271
> 00000061 ifdhandler.c:270:CreateChannelByNameOrChannel() dwMaxIFSD: 247
> 00000030 ifdhandler.c:271:CreateChannelByNameOrChannel() dwDefaultClock: 4000
> 00000061 ifdhandler.c:272:CreateChannelByNameOrChannel() dwMaxDataRate: 344100
> 00000031 ifdhandler.c:273:CreateChannelByNameOrChannel() bMaxSlotIndex: 0
> 00000061 ifdhandler.c:274:CreateChannelByNameOrChannel() bCurrentSlotIndex: 0
> 00000030 ifdhandler.c:275:CreateChannelByNameOrChannel() bInterfaceProtocol: 0x00
> 00000061 ifdhandler.c:276:CreateChannelByNameOrChannel() bNumEndpoints: 3
> 00000031 ifdhandler.c:277:CreateChannelByNameOrChannel() bVoltageSupport: 0x07
> 00000061 ifdhandler.c:443:IFDHGetCapabilities() tag: 0xFB3, usb:072f/90cc:libusb-1.0:1:2:0 (lun: 0)
> 00000061 readerfactory.c:395:RFAddReader() Using the reader polling thread
> 00002411 ifdhandler.c:443:IFDHGetCapabilities() tag: 0xFAE, usb:072f/90cc:libusb-1.0:1:2:0 (lun: 0)
> 00000061 ifdhandler.c:543:IFDHGetCapabilities() Reader supports 1 slot(s)
> 00000732 readerfactory.c:1420:RFWaitForReaderInit() Waiting init for reader: ACS ACR38U-CCID 00 00
> 00000031 hotplug_libusb.c:440:HPEstablishUSBNotifications() Driver ifd-acsccid.bundle does not support IFD_GENERATE_HOTPLUG. Using active polling instead.
> 00000091 hotplug_libusb.c:449:HPEstablishUSBNotifications() Polling forced every 1 second(s)
> 00002960 ifdhandler.c:1320:IFDHPowerICC() action: PowerUp, usb:072f/90cc:libusb-1.0:1:2:0 (lun: 0)
> 00007081 readerfactory.c:1420:RFWaitForReaderInit() Waiting init for reader: ACS ACR38U-CCID 00 00
> 00010162 readerfactory.c:1420:RFWaitForReaderInit() Waiting init for reader: ACS ACR38U-CCID 00 00
> 00010162 readerfactory.c:1420:RFWaitForReaderInit() Waiting init for reader: ACS ACR38U-CCID 00 00
> 00010163 readerfactory.c:1420:RFWaitForReaderInit() Waiting init for reader: ACS ACR38U-CCID 00 00
> 00010192 readerfactory.c:1420:RFWaitForReaderInit() Waiting init for reader: ACS ACR38U-CCID 00 00
> 00010163 readerfactory.c:1420:RFWaitForReaderInit() Waiting init for reader: ACS ACR38U-CCID 00 00
> 00010162 readerfactory.c:1420:RFWaitForReaderInit() Waiting init for reader: ACS ACR38U-CCID 00 00
> 00010224 readerfactory.c:1420:RFWaitForReaderInit() Waiting init for reader: ACS ACR38U-CCID 00 00
> 00010162 readerfactory.c:1420:RFWaitForReaderInit() Waiting init for reader: ACS ACR38U-CCID 00 00
> 00010162 readerfactory.c:1420:RFWaitForReaderInit() Waiting init for reader: ACS ACR38U-CCID 00 00
> 00010193 readerfactory.c:1420:RFWaitForReaderInit() Waiting init for reader: ACS ACR38U-CCID 00 00
> 00010132 readerfactory.c:1420:RFWaitForReaderInit() Waiting init for reader: ACS ACR38U-CCID 00 00
> 00010162 readerfactory.c:1420:RFWaitForReaderInit() Waiting init for reader: ACS ACR38U-CCID 00 00
> 00010163 readerfactory.c:1420:RFWaitForReaderInit() Waiting init for reader: ACS ACR38U-CCID 00 00
> 00010162 readerfactory.c:1420:RFWaitForReaderInit() Waiting init for reader: ACS ACR38U-CCID 00 00
> 00010193 readerfactory.c:1420:RFWaitForReaderInit() Waiting init for reader: ACS ACR38U-CCID 00 00
> 00000397 eventhandler.c:286:EHStatusHandlerThread() powerState: POWER_STATE_POWERED
> 00000091 Card ATR: 3B FF 13 00 00 81 31 FE 45 00 31 B9 64 04 44 EC C1 73 94 01 80 82 90 00 12
> 03334137 ccid_usb.c:1772:InterruptRead() 1/2: Slot 0: 0x02
> 00002777 eventhandler.c:479:EHStatusHandlerThread() powerState: POWER_STATE_UNPOWERED
> 00001953 eventhandler.c:355:EHStatusHandlerThread() Card Removed From ACS ACR38U-CCID 00 00
> 02747223 ccid_usb.c:1772:InterruptRead() 1/2: Slot 0: 0x00
> 00007172 ifdhandler.c:1320:IFDHPowerICC() action: PowerUp, usb:072f/90cc:libusb-1.0:1:2:0 (lun: 0)
> 00161743 eventhandler.c:403:EHStatusHandlerThread() powerState: POWER_STATE_POWERED
> 00000275 eventhandler.c:420:EHStatusHandlerThread() Card inserted into ACS ACR38U-CCID 00 00
> 00000183 Card ATR: 3B FF 13 00 00 81 31 FE 45 00 31 B9 64 04 44 EC C1 73 94 01 80 82 90 00 12
> 05005401 ifdhandler.c:1320:IFDHPowerICC() action: PowerDown, usb:072f/90cc:libusb-1.0:1:2:0 (lun: 0)
> 00101044 eventhandler.c:479:EHStatusHandlerThread() powerState: POWER_STATE_UNPOWERED
> 48668244 pcscdaemon.c:192:signal_thread() Received signal: 15
> 00000122 pcscdaemon.c:212:signal_thread() Direct suicide
> 00000061 pcscdaemon.c:781:at_exit() cleaning /data/data/test/ipc/
>
> My configuration is:
>
> root at flo:/data/data/test # ./pcscd -v
> pcsc-lite version 1.8.18.
> Copyright (C) 1999-2002 by David Corcoran <corcoran at musclecard.com>.
> Copyright (C) 2001-2015 by Ludovic Rousseau <ludovic.rousseau at free.fr>.
> Copyright (C) 2003-2004 by Damien Sauveron <sauveron at labri.fr>.
> Report bugs to <pcsclite-muscle at lists.alioth.debian.org>.
> Enabled features: Linux arm-unknown-linux-androideabi serial usb libusb usbdropdir=/data/data/test/drivers/ ipcdir=/data/data/test/ipc/ configdir=/home/frane/PCSC/build/etc/reader.conf.d
>
>
> But when i try to access the card either by using pcsc_scan or my application i always get SCARD_E_NO_SERVICE on SCardEstablishContext method call.
> The pcsc_scan response is: SCardEstablishContext: Service not available.
>
> What do you reccommend? Why can't i access the card when the pcscd detects the reader and the card and it's ATR.
I guess the libpcsclite.so.1 used by your application and pcsc_scan
does not find the pcscd.comm file created by pcscd.
Check you did "make install" to install pcsc-lite
Check you have only 1 libpcsclite.so.1 in your system.
Bye
--
Dr. Ludovic Rousseau
More information about the pcsclite-muscle
mailing list