INSTALLATION PROCEDURE
======================

Installation from source:
"""""""""""""""""""""""""

get the ccid-x.y.z.tar.gz archive and do:

$ tar xzvf ccid-x.y.z.tar.gz
$ cd ccid-x.y.z
$ ./configure
$ make
$ sudo make install

By default pcscd and my ccid driver use /usr/local/pcsc/drivers/ as
directory for hotplug drivers. The ./configure script try to get the
directory used by pcscd using 'pkg-config libpcsclite --variable=usbdropdir'
So you should not have to use the --enable-usbdropdir=DIR argument.


udev use
~~~~~~~~

It is possible to configure the driver to use udev events so that pcscd
will not poll the USB bus every second. Use:

$ ./configure --enable-udev
$ make

You will then have to install the udev rules file in the correct
directory. It could be something like:

$ sudo cp src/pcscd_ccid.rules /etc/udev/rules.d/


On FreeBSD you can also use --enable-udev and add the following rules to
devd.conf (thanks to Tilman Linneweh for the info)

attach 100 {
	device-name "ugen[0-9]+";
	action "/usr/sbin/pcscd -H";
};

detach 100 {
	device-name "ugen[0-9]+";
	action "/usr/sbin/pcscd -H";
};


libusb not found
~~~~~~~~~~~~~~~~

If the ./configure script says something like:
  configure: error: usb.h not found, use --enable-libusb=PATH
You should use --enable-libusb=PATH to tell ./configure where to find
the usb.h and libusb.so files. The ./configure script will use
PATH/include/ to search for usb.h and PATH/lib/ to search for libusb.so


building serial reader driver
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

A serial CCID reader can also be connected on a serial port. By default
the serial driver is not built. You must explicitely do:

$ ./configure --enable-twinserial
$ make
# make install


builing serial reader driver only
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

It is possible to generate the driver for the GemPC Twin using serial
communication only (for example on an embedded system without USB).
Just do:
$ ./configure --enable-twinserial --disable-libusb
$ make
# make install

By default ./configure try to get the directory used by pcscd using
'pkg-config libpcsclite --variable=usbdropdir' and add '/serial'.
You should not have to use --enable-ccidtwindir=DIR to specify the
target directory to use. 


configuring the driver for the serial reader
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

You have to create or edit the file /etc/reader.conf. The file should
contain something like:

# Gemalto reader with serial communication
#  - reader is the reader name. It is needed for multi-slot readers.
#    Possible reader values are: GemPCPinPad, GemCorePOSPro, GemCoreSIMPro,
#    GemPCTwin (default value)
# example: /dev/ttyS0:GemPCPinPad
#FRIENDLYNAME      "GemPCTwin serial"
#DEVICENAME        /dev/ttySn[:reader]
#LIBPATH           TARGET
#CHANNELID         1

FRIENDLYNAME      "GemPC Twin serial"
DEVICENAME        /dev/ttyS0
LIBPATH           /usr/local/pcsc/drivers/serial/libccidtwin.so.1.2.3
CHANNELID         1

You will have to adapt the library path to your configuration and library
version.

By default the GemPC Twin serial reader parameters are loaded by the
driver, if you use a GemPC PinPad, a GemCore POS Pro or a GemCore SIM
Pro you have to indicate it in the DEVICENAME field. You will then have
something like:
DEVICENAME        /dev/ttyS0:GemPCPinPad

/dev/ttyS0 (DEVICENAME field) is the first serial port under Linux
(known as COM1 under DOS/Windows). Of course if your reader is connected
to another serial port you have to adapt that.


Binary installation:
""""""""""""""""""""

Contact your distribution support.


Test procedure:
"""""""""""""""

- check the reader is supported by the driver.
  Get your reader USB identification using the lsusb(1) command:
  $ lsusb
  [...]
  Bus 001 Device 048: ID 08e6:4433 Gemplus

  Look for 08E6 (ifdVendorID) and 4433 (ifdProductID) in
  /usr/local/pcsc/drivers/ifd-ccid.bundle/Contents/Info.plist
  Of course your numbers will be different.

  If you can't find them add them (if you know what you do) and/or mail me.

- (re)start pcscd with debug on stdout. Simply do 'pcscd --debug stdout'
  (you will need to have root priviledges). And look for:
  [...]
  readerfactory.c:1319 RFInitializeReader: Attempting startup of ReaderName
  readerfactory.c:1061 RFBindFunctions: Loading IFD Handler 2.0
  ifdhandler.c:76 Entering IFDHCreateChannel (lun: 0)
  ccid_usb.c:131 Manufacturer: Ludovic Rousseau (ludovic.rousseau@free.fr)
  ccid_usb.c:139 ProductString: Generic CCID reader v0.1.0
  ccid_usb.c:143 Copyright: This driver is protected by terms of the GNU General Public License version 2, or (at your option) any later version.
  ccid_usb.c:223 Found Vendor/Product: 08E6/4433 (GemPC433 SL)
  ccid_usb.c:224 Using USB bus/device: 001/047

  If you don't see this the driver is not installed correctly or your
  reader is not yet supported. Read
  http://pcsclite.alioth.debian.org/ccid.html#CCID_compliant to know
  what to do.

$Id: INSTALL 4814 2010-03-12 15:42:07Z rousseau $
