Re: Support for Lenovo Integrated Smart Card Reader

Joachim Breitner <[email protected]> Thu, 22 Jan 2009 15:20:35 +0100
Newsgroups gmane.comp.lib.libchipcard.devel
Message-ID <1232634035.5732.12.camel@localhost>
Hi,

Am Donnerstag, den 22.01.2009, 14:37 +0100 schrieb Joachim Breitner:
> Am Montag, den 19.01.2009, 08:23 +0100 schrieb Martin Preuss:
> > Hi,
> > 
> > On Sonntag, 18. Januar 2009, Daniel wrote:
> > [...]
> > > I added the device ID / a reader section to
> > > /etc/udev/libchipcard.rules
> > > /usr/share/chipcard/server/drivers/ccid_ifd.xml
> > [...]
> > 
> > What USB ids does the reader show (product id, manufacturer id)?
> 
> I just received the (most likely) same reader. Here is what lsusb says:
> 
> Bus 001 Device 002: ID 08e6:34ec Gemplus 
> 
> What is needed to make libchipcardd talk to a libccid reader?
> http://www2.aquamaniac.de/sites/libchipcard/readers.php#ccid seems to
> indicated that libchipcardd can use these directly. Is that right?

it seems that I need 4.2.4, probably due to the hal interaction.

I have added the attached snippet
to /usr/share/chipcard/server/drivers/ccid_ifd.xml but chipcard has
trouble talking to the reader:

chipcardd starting
...
7:2009/01/22 15-15-44:chipcardd(30696):devicemanager.c: 3140: Device UsbRaw/08e6/34ec up
5:2009/01/22 15-15-44:chipcardd(30696):devicemanager.c: 3230: AUTOCONFIG: Created new reader "auto1-ccid_gempc_express" (UsbRaw/08e6/34ec)
5:2009/01/22 15-15-44:chipcardd(30696):devicemanager.c: 3266: Assigned device path "usb:08e6/34ec:libusb:001:002" to reader "auto1-ccid_gempc_express"
7:2009/01/22 15-15-44:chipcardd(30696):clr_notification.c:  162: Mask for reader:add is 00000400
6:2009/01/22 15-15-44:chipcardd(30696):clr_notification.c:  190: Sending notification reader:add to all clients
...
(now running geldkarte loaded)
...
 String size is 167:
  0000: 69 70 63 20 7b 0a 63 68 61 72 20 69 64 3d 22 31 ipc {.char id="1
  0010: 22 0a 63 68 61 72 20 63 6d 64 3d 22 43 6c 69 65 ".char cmd="Clie
  0020: 6e 74 5f 52 65 61 64 79 22 0a 7d 0a 64 61 74 61 nt_Ready".}.data
  0030: 20 7b 0a 63 68 61 72 20 41 70 70 6c 69 63 61 74  {.char Applicat
  0040: 69 6f 6e 3d 22 67 65 6c 64 6b 61 72 74 65 22 0a ion="geldkarte".
  0050: 63 68 61 72 20 47 77 65 6e 56 65 72 73 69 6f 6e char GwenVersion
  0060: 3d 22 33 2e 36 2e 30 73 74 61 62 6c 65 2d 30 22 ="3.6.0stable-0"
  0070: 0a 63 68 61 72 20 43 68 69 70 63 61 72 64 56 65 .char ChipcardVe
  0080: 72 73 69 6f 6e 3d 22 34 2e 32 2e 34 2e 30 73 74 rsion="4.2.4.0st
  0090: 61 62 6c 65 22 0a 63 68 61 72 20 53 79 73 74 65 able".char Syste
  00a0: 6d 3d 22 22 0a 7d 0a                            m="".}.
7:2009/01/22 15-16-42:chipcardd(30696):devicemanager.c: 1927: Command "Client_Ready" not handled by device manager
5:2009/01/22 15-16-42:chipcardd(30696):clr_clientready.c:  105: Client "49787f92" started (geldkarte, Gwen 3.6.0stable-0, ChipCard 4.2.4.0stable)
7:2009/01/22 15-16-42:chipcardd(30696):clr_clientready.c:  137: Response sent.
  String size is 57:
  0000: 69 70 63 20 7b 0a 63 68 61 72 20 69 64 3d 22 32 ipc {.char id="2
  0010: 22 0a 63 68 61 72 20 63 6d 64 3d 22 43 6c 69 65 ".char cmd="Clie
  0020: 6e 74 5f 53 74 61 72 74 57 61 69 74 22 0a 7d 0a nt_StartWait".}.
  0030: 64 61 74 61 20 7b 0a 7d 0a                      data {.}.
7:2009/01/22 15-16-42:chipcardd(30696):devicemanager.c: 1927: Command "Client_StartWait" not handled by device manager
5:2009/01/22 15-16-42:chipcardd(30696):clr_startwait.c:   70: Client 49787f92: StartWait [geldkarte/nobody]
3:2009/01/22 15-16-42:chipcardd(30696):devicemanager.c: 1746: Incrementing active reader count auto1-ccid_gempc_express (49787f91) [1]
3:2009/01/22 15-16-42:chipcardd(30696):dm_driver.c:  359: Incrementing active readers count of driver ccid_ifd [49787f91](0->1)
6:2009/01/22 15-16-42:chipcardd(30696):dm_driver.c:  362: Some readers active, driver leaving idle mode
(now a delay)
6:2009/01/22 15-16-52:chipcardd(30696):devicemanager.c:  813: Starting driver "ccid_ifd"
6:2009/01/22 15-16-52:chipcardd(30696):devicemanager.c:  906: Starting driver process for driver "ccid_ifd" (/usr/lib/chipcard/server/drivers/ifd)
6:2009/01/22 15-16-52:chipcardd(30696):devicemanager.c:  907: Arguments are: " -l /usr/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Linux/libccid.so.1.3.8 --logtype file --logfile /var/log/chipcard/drivers/ccid_ifd/@[email protected] -t local -a /var/run/chipcard/chipcard.comm -p 0 -i 49787f91"
6:2009/01/22 15-16-52:chipcardd(30696):devicemanager.c:  926: Process started
7:2009/01/22 15-16-52:chipcardd(30696):clr_notification.c:  162: Mask for driver:start is 00000001
6:2009/01/22 15-16-52:chipcardd(30696):clr_notification.c:  190: Sending notification driver:start to all clients
7:2009/01/22 15-16-52:chipcardd(30696):clr_notification.c:  207: Client "49787f92" is not interested in driver:start [00000000]
7:2009/01/22 15-16-52:chipcardd(30696):devicemanager.c: 1199: still waiting for driver start
7:2009/01/22 15-16-52:chipcardd(30696):devicemanager.c: 1199: still waiting for driver start
7:2009/01/22 15-16-52:chipcardd(30696):devicemanager.c: 1199: still waiting for driver start
7:2009/01/22 15-16-52:chipcardd(30696):devicemanager.c: 1199: still waiting for driver start
7:2009/01/22 15-16-52:chipcardd(30696):devicemanager.c: 1199: still waiting for driver start
  String size is 119:
  0000: 69 70 63 20 7b 0a 63 68 61 72 20 69 64 3d 22 31 ipc {.char id="1
  0010: 22 0a 63 68 61 72 20 63 6d 64 3d 22 44 72 69 76 ".char cmd="Driv
  0020: 65 72 5f 52 65 61 64 79 22 0a 7d 0a 64 61 74 61 er_Ready".}.data
  0030: 20 7b 0a 63 68 61 72 20 64 72 69 76 65 72 49 64  {.char driverId
  0040: 3d 22 34 39 37 38 37 66 39 31 22 0a 69 6e 74 20 ="49787f91".int 
  0050: 20 63 6f 64 65 3d 22 30 22 0a 63 68 61 72 20 74  code="0".char t
  0060: 65 78 74 3d 22 4c 69 62 72 61 72 79 20 6c 6f 61 ext="Library loa
  0070: 64 65 64 22 0a 7d 0a                            ded".}.
7:2009/01/22 15-16-52:chipcardd(30696):devicemanager.c: 1962: Driver 49787f95: DriverReady
5:2009/01/22 15-16-52:chipcardd(30696):devicemanager.c: 2108: Driver "49787f91" (ccid_ifd) is up (Library loaded)
7:2009/01/22 15-16-52:chipcardd(30696):clr_notification.c:  162: Mask for driver:up is 00000002
6:2009/01/22 15-16-52:chipcardd(30696):clr_notification.c:  190: Sending notification driver:up to all clients
7:2009/01/22 15-16-52:chipcardd(30696):clr_notification.c:  207: Client "49787f92" is not interested in driver:up [00000000]
7:2009/01/22 15-16-52:chipcardd(30696):clr_notification.c:  162: Mask for reader:start is 00000040
6:2009/01/22 15-16-52:chipcardd(30696):clr_notification.c:  190: Sending notification reader:start to all clients
7:2009/01/22 15-16-52:chipcardd(30696):clr_notification.c:  207: Client "49787f92" is not interested in reader:start [00000000]
7:2009/01/22 15-16-52:chipcardd(30696):devicemanager.c: 1561: Still some time left
7:2009/01/22 15-16-52:chipcardd(30696):devicemanager.c: 1561: Still some time left
7:2009/01/22 15-16-53:chipcardd(30696):devicemanager.c: 1561: Still some time left
7:2009/01/22 15-16-53:chipcardd(30696):devicemanager.c: 1561: Still some time left
7:2009/01/22 15-16-53:chipcardd(30696):devicemanager.c: 1561: Still some time left
  String size is 186:
  0000: 69 70 63 20 7b 0a 63 68 61 72 20 69 64 3d 22 32 ipc {.char id="2
  0010: 22 0a 63 68 61 72 20 72 65 66 69 64 3d 22 32 22 ".char refid="2"
  0020: 0a 63 68 61 72 20 63 6d 64 3d 22 44 72 69 76 65 .char cmd="Drive
  0030: 72 5f 53 74 61 72 74 52 65 61 64 65 72 52 65 73 r_StartReaderRes
  0040: 70 6f 6e 73 65 22 0a 7d 0a 64 61 74 61 20 7b 0a ponse".}.data {.
  0050: 63 68 61 72 20 72 65 61 64 65 72 49 64 3d 22 34 char readerId="4
  0060: 39 37 38 37 66 39 31 22 0a 63 68 61 72 20 69 6e 9787f91".char in
  0070: 66 6f 3d 22 75 6e 69 74 30 25 33 44 25 32 32 69 fo="unit0%3D%22i
  0080: 63 63 31 25 32 32 22 0a 69 6e 74 20 20 63 6f 64 cc1%22".int  cod
  0090: 65 3d 22 30 22 0a 63 68 61 72 20 74 65 78 74 3d e="0".char text=
  00a0: 22 52 65 61 64 65 72 20 75 70 20 61 6e 64 20 77 "Reader up and w
  00b0: 61 69 74 69 6e 67 22 0a 7d 0a                   aiting".}.
5:2009/01/22 15-16-53:chipcardd(30696):devicemanager.c: 1503: Reader "auto1-ccid_gempc_express" is up (Reader up and waiting)
7:2009/01/22 15-16-53:chipcardd(30696):clr_notification.c:  162: Mask for reader:up is 00000080
6:2009/01/22 15-16-53:chipcardd(30696):clr_notification.c:  190: Sending notification reader:up to all clients
7:2009/01/22 15-16-53:chipcardd(30696):clr_notification.c:  207: Client "49787f92" is not interested in reader:up [00000000]
  String size is 262:
  0000: 69 70 63 20 7b 0a 63 68 61 72 20 69 64 3d 22 33 ipc {.char id="3
  0010: 22 0a 63 68 61 72 20 63 6d 64 3d 22 44 72 69 76 ".char cmd="Driv
  0020: 65 72 5f 43 61 72 64 49 6e 73 65 72 74 65 64 22 er_CardInserted"
  0030: 0a 7d 0a 64 61 74 61 20 7b 0a 63 68 61 72 20 72 .}.data {.char r
  0040: 65 61 64 65 72 49 64 3d 22 34 39 37 38 37 66 39 eaderId="49787f9
  0050: 31 22 0a 63 68 61 72 20 64 72 69 76 65 72 73 52 1".char driversR
  0060: 65 61 64 65 72 49 64 3d 22 30 30 30 30 30 30 30 eaderId="0000000
  0070: 31 22 0a 69 6e 74 20 20 73 6c 6f 74 6e 75 6d 3d 1".int  slotnum=
  0080: 22 30 22 0a 69 6e 74 20 20 63 61 72 64 6e 75 6d "0".int  cardnum
  0090: 3d 22 31 22 0a 62 69 6e 20 20 61 74 72 3d 22 33 ="1".bin  atr="3
  00a0: 42 45 46 30 30 46 46 38 31 33 31 46 45 34 35 36 BEF00FF8131FE456
  00b0: 35 36 33 31 31 30 38 34 33 30 32 35 30 30 30 31 5631108430250001
  00c0: 30 36 34 36 30 30 30 30 31 30 35 33 30 33 35 22 064600001053035"
  00d0: 0a 63 68 61 72 20 63 61 72 64 54 79 70 65 3d 22 .char cardType="
  00e0: 50 52 4f 43 45 53 53 4f 52 22 0a 63 68 61 72 20 PROCESSOR".char 
  00f0: 64 72 69 76 65 72 49 64 3d 22 34 39 37 38 37 66 driverId="49787f
  0100: 39 31 22 0a 7d 0a                               91".}.
7:2009/01/22 15-16-53:chipcardd(30696):devicemanager.c: 2170: Driver 49787f95: Card inserted
5:2009/01/22 15-16-53:chipcardd(30696):devicemanager.c: 2286: New card "00000000" found in reader "auto1-ccid_gempc_express"(49787f91)
7:2009/01/22 15-16-53:chipcardd(30696):cardmanager.c:  138: New card added
4:2009/01/22 15-16-53:chipcardd(30696):clientmanager.c:  197: Advertising card "00000001" to all interested clients
5:2009/01/22 15-16-53:chipcardd(30696):clr_startwait.c:  136: Advertising card "00000001" to client "49787f92" [geldkarte/nobody]
7:2009/01/22 15-16-53:chipcardd(30696):clr_notification.c:  162: Mask for card:inserted is 00010000
6:2009/01/22 15-16-53:chipcardd(30696):clr_notification.c:  190: Sending notification card:inserted to all clients
7:2009/01/22 15-16-53:chipcardd(30696):clr_notification.c:  207: Client "49787f92" is not interested in card:inserted [00000000]
  String size is 79:
  0000: 69 70 63 20 7b 0a 63 68 61 72 20 69 64 3d 22 33 ipc {.char id="3
  0010: 22 0a 63 68 61 72 20 63 6d 64 3d 22 43 6c 69 65 ".char cmd="Clie
  0020: 6e 74 5f 54 61 6b 65 43 61 72 64 22 0a 7d 0a 64 nt_TakeCard".}.d
  0030: 61 74 61 20 7b 0a 63 68 61 72 20 63 61 72 64 69 ata {.char cardi
  0040: 64 3d 22 30 30 30 30 30 30 30 31 22 0a 7d 0a    d="00000001".}.
7:2009/01/22 15-16-53:chipcardd(30696):devicemanager.c: 1927: Command "Client_TakeCard" not handled by device manager
5:2009/01/22 15-16-53:chipcardd(30696):clr_takecard.c:   83: Client 49787f92: TakeCard [geldkarte/nobody]
5:2009/01/22 15-16-53:chipcardd(30696):clr_takecard.c:  166: Enqueued TakeCard request for card "00000001" and client "49787f92"
3:2009/01/22 15-16-53:chipcardd(30696):clr_takecard.c:  185: Working on TakeCard request 49787f9a
6:2009/01/22 15-16-53:chipcardd(30696):clr_takecard.c:  204: Step 1 (49787f9a)
5:2009/01/22 15-16-53:chipcardd(30696):cm_card.c:  183: Lock request granted
6:2009/01/22 15-16-53:chipcardd(30696):clr_takecard.c:  239: Card lock acquired, now locking slot (49787f9a)
3:2009/01/22 15-16-53:chipcardd(30696):clr_takecard.c:  185: Working on TakeCard request 49787f9a
6:2009/01/22 15-16-53:chipcardd(30696):clr_takecard.c:  275: Step 2 (49787f9a)
5:2009/01/22 15-16-53:chipcardd(30696):lockmanager.c:  167: Lock request granted
  String size is 122:
  0000: 69 70 63 20 7b 0a 63 68 61 72 20 69 64 3d 22 34 ipc {.char id="4
  0010: 22 0a 63 68 61 72 20 63 6d 64 3d 22 43 6c 69 65 ".char cmd="Clie
  0020: 6e 74 5f 43 6f 6d 6d 61 6e 64 43 61 72 64 22 0a nt_CommandCard".
  0030: 7d 0a 64 61 74 61 20 7b 0a 63 68 61 72 20 63 61 }.data {.char ca
  0040: 72 64 69 64 3d 22 30 30 30 30 30 30 30 31 22 0a rdid="00000001".
  0050: 62 69 6e 20 20 64 61 74 61 3d 22 30 30 41 34 30 bin  data="00A40
  0060: 30 30 43 22 0a 63 68 61 72 20 74 61 72 67 65 74 00C".char target
  0070: 3d 22 63 61 72 64 22 0a 7d 0a                   ="card".}.
7:2009/01/22 15-16-53:chipcardd(30696):devicemanager.c: 1927: Command "Client_CommandCard" not handled by device manager
5:2009/01/22 15-16-53:chipcardd(30696):clr_execapdu.c:   88: Client 49787f92: ExecApdu [geldkarte/nobody]
7:2009/01/22 15-16-53:chipcardd(30696):lockmanager.c:  284: slot currently locked by "49787fd5" (wanted: 49787fd5)
5:2009/01/22 15-16-53:chipcardd(30696):clr_execapdu.c:  231: Enqueued ExecApdu request for card "00000001" and client "49787f92"
7:2009/01/22 15-16-53:chipcardd(30696):clr_execapdu.c:  332: Working on CardCommand request
7:2009/01/22 15-16-53:chipcardd(30696):clr_execapdu.c:  246: Working on ExecApdu request
7:2009/01/22 15-16-53:chipcardd(30696):clr_execapdu.c:  332: Working on CardCommand request
7:2009/01/22 15-16-53:chipcardd(30696):clr_execapdu.c:  246: Working on ExecApdu request
7:2009/01/22 15-16-53:chipcardd(30696):clr_execapdu.c:  332: Working on CardCommand request
7:2009/01/22 15-16-53:chipcardd(30696):clr_execapdu.c:  246: Working on ExecApdu request
  String size is 188:
  0000: 69 70 63 20 7b 0a 63 68 61 72 20 69 64 3d 22 34 ipc {.char id="4
  0010: 22 0a 63 68 61 72 20 72 65 66 69 64 3d 22 33 22 ".char refid="3"
  0020: 0a 63 68 61 72 20 63 6d 64 3d 22 44 72 69 76 65 .char cmd="Drive
  0030: 72 5f 43 61 72 64 43 6f 6d 6d 61 6e 64 52 65 73 r_CardCommandRes
  0040: 70 6f 6e 73 65 22 0a 7d 0a 64 61 74 61 20 7b 0a ponse".}.data {.
  0050: 69 6e 74 20 20 63 6f 64 65 3d 22 2d 31 30 30 22 int  code="-100"
  0060: 0a 63 68 61 72 20 74 65 78 74 3d 22 55 6e 6b 6e .char text="Unkn
  0070: 6f 77 20 65 72 72 6f 72 20 63 6f 64 65 22 0a 63 ow error code".c
  0080: 68 61 72 20 72 65 61 64 65 72 49 64 3d 22 34 39 har readerId="49
  0090: 37 38 37 66 39 31 22 0a 69 6e 74 20 20 73 6c 6f 787f91".int  slo
  00a0: 74 6e 75 6d 3d 22 30 22 0a 69 6e 74 20 20 63 61 tnum="0".int  ca
  00b0: 72 64 6e 75 6d 3d 22 31 22 0a 7d 0a             rdnum="1".}.
7:2009/01/22 15-16-53:chipcardd(30696):clr_execapdu.c:  332: Working on CardCommand request
7:2009/01/22 15-16-53:chipcardd(30696):clr_execapdu.c:  246: Working on ExecApdu request
7:2009/01/22 15-16-53:chipcardd(30696):clr_execapdu.c:  272: Sending response to CommandCard
5:2009/01/22 15-16-53:chipcardd(30696):clientmanager.c:  490: Resetting card "00000001"
5:2009/01/22 15-16-53:chipcardd(30696):cm_card.c:  280: Unlocking card from client 49787f92
6:2009/01/22 15-16-53:chipcardd(30696):clientmanager.c:  326: Card "00000001" unlocked from client
5:2009/01/22 15-16-53:chipcardd(30696):lockmanager.c:  222: Removing lock of client "49787f92" on slot
5:2009/01/22 15-16-53:chipcardd(30696):clientmanager.c:  398: Removing client 49787f92 [geldkarte/nobody]


While the geldkarte command shows:
$ geldkarte loaded
Waiting for card to be inserted: Started.
Waiting for card to be inserted: 5000 of 20000
Waiting for card to be inserted: 10000 of 20000
Waiting for card to be inserted: Finished.
3:2009/01/22 15-16-53:geldkarte3(30697):clientlcc_cmd.c:  483: Command error -100 (Unknow error code)
3:2009/01/22 15-16-53:geldkarte3(30697):clientlcc_cmd.c:  532: Error response for request "commandCard"
ERROR: Error executing command CardOpen (3).
3:2009/01/22 15-16-53:geldkarte3(30697):client.c:  361: Still 1 cards in use at LC_Client_free!

And the file /var/log/chipcard/drivers/ccid_ifd/auto1-ccid_gempc_express.log shows:
5:2009/01/22 15-16-52:auto1-ccid_gempc_express(30698):d_startreader.c:  223: Init reader auto1-ccid_gempc_express
5:2009/01/22 15-16-53:auto1-ccid_gempc_express(30698):d_startreader.c:  249: ReaderInfo: unit0="icc1"
5:2009/01/22 15-16-53:auto1-ccid_gempc_express(30698):d_startreader.c:  256: Reader up and waiting
5:2009/01/22 15-16-53:auto1-ccid_gempc_express(30698):d_startreader.c:  268: Reader start handled
5:2009/01/22 15-16-53:auto1-ccid_gempc_express(30698):d_work.c:  128: Card inserted, trying to connect it
5:2009/01/22 15-16-53:auto1-ccid_gempc_express(30698):d_work.c:  142: Status changed on slot 0 (00000000->00030000) (cardnum 0)
3:2009/01/22 15-16-53:auto1-ccid_gempc_express(30698):driverifd.c:  451: CCID error on "CCIDTransmit/Control": 612
3:2009/01/22 15-16-53:auto1-ccid_gempc_express(30698):d_cardcommand.c:  153: Error executing APDU (00000064)
5:2009/01/22 15-16-53:auto1-ccid_gempc_express(30698):d_resetcard.c:   81: Resetting card
5:2009/01/22 15-17-43:auto1-ccid_gempc_express(30698):d_stopreader.c:   47: Disconnecting reader
5:2009/01/22 15-17-43:auto1-ccid_gempc_express(30698):d_stopreader.c:   60: Deinit succeeded


Any idea what might be wrong?

Thanks,
Joachim

-- 
Joachim "nomeata" Breitner
  mail: [email protected] | ICQ# 74513189 | GPG-Key: 4743206C
  JID: [email protected] | http://www.joachim-breitner.de/
  Debian Developer: [email protected]

------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword

_______________________________________________
Libchipcard-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libchipcard-devel
gempc_express.data (text/plain, 383 B)
    <reader name="ccid_gempc_express" busType="UsbRaw"
            addressType="devicePath"
            devicePathTmpl="usb:$(vendorId:04x)/$(productId:04x):libusb:$(busName):$(deviceName)"
            vendor="0x08e6" product="0x34ec" >
      <short>GemPC Express</short>
      <!--
        <flags>
          <flag>keypad</flag>
        </flags>
      -->
    </reader>
signature.asc (application/pgp-signature, 197 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEABECAAYFAkl4gLMACgkQ9ijrk0dDIGymWQCeKFYJjiyJE0870yn+4XV81ypm
HlMAn0U68/JO/+GDwgehkznbOx7gOHUZ
=Fj4+
-----END PGP SIGNATURE-----