Hi,

I am using two GCR410P on my PC (COM1 and COM2). They work quite well on 
the other OS put I am in trouble with Linux.

I have tried pcsc 0.93 and 1.0.0B, the drivers libgmecore-1.0.0 and 
Gp-core-2.3.1.
The librairy seems to be deisgned to run only with ONE reader.
The first reader is always recognise and initiliased but the second is not.
 If I set the COM1 reader first, it works and not the COM2 reader.
If I set the COM2 reader first, it works and not the COM1 reader.

here is the syslog output of one of my tries:
Sep 24 16:17:03 debian pcscd:    pcscdaemon.c 131: /var/run/pcscd.pid
Sep 24 16:17:03 debian pcscd: readerfactory.c 991: RFInitializeReader: 
Attempting startup of GCR410:0 0 0.
Sep 24 16:17:03 debian pcscd: readerfactory.c 780: RFBindFunctions: 
Loading IFD Handler 2.0
Sep 24 16:17:06 debian pcscd: readerfactory.c 991: RFInitializeReader: 
Attempting startup of GCR410:1 0 0.
Sep 24 16:17:06 debian pcscd: readerfactory.c 780: RFBindFunctions: 
Loading IFD Handler 2.0
Sep 24 16:17:06 debian pcscd: readerfactory.c 1021: RFInitializeReader: 
Open Port 102f8 Failed
Sep 24 16:17:06 debian pcscd: readerfactory.c 181: RFAddReader: GCR410:1 
init failed.
Sep 24 16:17:06 debian pcscd:    pcscdaemon.c 151: main: PC/SC Lite 
Daemon Ready.
Sep 24 16:17:06 debian pcscd: hotplug_linux.c 146: No bundle files in 
pcsc drivers directory
Sep 24 16:17:06 debian pcscd: hotplug_linux.c 147: Disabling USB support 
for pcscd

Quickly digging inside the driver, I found in file "gserial.c" (both 
libgemcore and gp-core).

// .... jump code ....

static int port_fd = -1;

/// .... jump code ....

// New G_SerPortOpen provided by Ludovic Rousseau.
// THis function avoid EXPORT COM1= xxxxxx using.
INT16 G_DECL G_SerPortOpen(const TGTSER_PORT G_FAR * Param)
{
    INT16 handle;

    // used to set parameters in the device control block.
    struct termios current_termios;
    int x;

    if (port_fd >= 0)
    {
        return GE_HOST_PORT_OPEN;
    }
// .... jump code ....

        port_fd = open(dev_name, O_RDWR);    // O_NOCTTY was used

/// ... jump the remaining code ...

Argh ! If I am not mistaking once a serial port is open, the driver 
refuse to open another one for another reader (bouhouh !).

If think I could make the both readers works by making a copy of the 
driver file and renaming it for the second reader  but this an ugly and 
ashamed trick :(

Do I miss something in order to be able to run both readers nicely or do 
I need hacking the drivers and send you the patch ?

thanks for your help and the quality of your work.

-- 
Laurent Boulard
Research Engineer
Advanced Research
SchlumbergerSema (Louveciennes)
Tel: +33 (0)1 30 08 45 97
Fax: +33 (0)1 30 08 45 24
perl -e 'print(pack("h38","34f6e67627164757c6164796f6e63702b3d292"))'



***************************************************************
Unix Smart Card Developers - M.U.S.C.L.E.
(Movement for the Use of Smart Cards in a Linux Environment)
http://www.linuxnet.com/
To unsubscribe send an email to [EMAIL PROTECTED] with
unsubscribe sclinux
***************************************************************

Reply via email to