usb/83863: Communication problem between opensc/openct via USB with e-gate smart-card.

Hans Petter Selasky hselasky at c2i.net
Fri Aug 5 12:00:37 GMT 2005


The following reply was made to PR usb/83863; it has been noted by GNATS.

From: Hans Petter Selasky <hselasky at c2i.net>
To: Mohacsi Janos <mohacsi at niif.hu>
Cc: bug-followup at freebsd.org,
 janos.mohacsi at bsd.hu
Subject: Re: usb/83863: Communication problem between opensc/openct via USB with e-gate smart-card.
Date: Fri, 5 Aug 2005 13:57:16 +0200

 On Friday 05 August 2005 00:21, Mohacsi Janos wrote:
 > On Thu, 4 Aug 2005, Hans Petter Selasky wrote:
 > > Post debugging output again.
 >
 > Here it is:
 > debug log of ifdhandler:
 >
 
 > ifd_sysdep_usb_control: USB_DO_REQUEST failed: -1 Aug  5 00:01:44 scone
 > ifdhandler[930]: ifd_sysdep_usb_control: trying to clear stall ... Aug  5
 > 00:01:44 scone ifdhandler[930]: ifd_sysdep_usb_control: USB_DO_REQUEST
 > failed: -1 Aug  5 00:01:44 scone ifdhandler[930]: ifd_protocol_transceive:
 > transceive error: Communication error Aug  5 00:01:44 scone
 > ifdhandler[930]: ifdhandler_unlock_all: released excl lock 0 for slot 0 by
 > uid=4294967294 Aug  5 00:01:45 scone ifdhandler[930]: eg_card_status:
 > slot=0
 >
 
 > 3c400004<STALLED,LS,SPD>,errcnt=3,actlen=5
 > pid=e1,addr=126,endpt=0,D=1,maxlen=5 
 
 In "ifd_sysdep_usb_control()" after "if(count) {}", maybe you could change the 
 code so that it looks like this:
 
   if(!(ctrl.ucr_request.bRequest & UT_READ))
     return len; /* ignore STALL on write transfers */
   else
     return IFD_ERROR_COMM_ERROR;
 
 And see what happens, hence the status indicates that the data has been 
 transferred.
 
 Maybe we could compare debugging output with windows.
 
 Install the usb-snooper below, before running your application. Make sure that 
 you get the control transfers.
 
 http://benoit.papillault.free.fr/usbsnoop/
 
 --HPS


More information about the freebsd-usb mailing list