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