Copyright © 2004 REINER SCT GmbH
$Date$
This driver for the REINER SCT cyberJack pinpad/e-com USB family of chipcard readers implements the CT-API 1.1 interface, as well as the PC/SC interface of pcsc-lite.
It is implemented 100% in userspace. This means no trouble with different kernel versions, compiling/patching the kernel etc.
All accesses are done via the usb devfs in /proc/bus/usb (or /dev/bus/usb for udev-based systems).
Permission handling is done only via udev. The cyberjack.rules if installed to /etc/udev/rules.d is automatically called by udev when a reader is plugged in. This scripts dynamically updates the permissions of the respective device, so users in the group cyberjack are able to access it.
For more information about the smart card reader itself please visit http://www.reiner-sct.com/. There is also a shop where the the readers can be ordered online.
The following Reiner-SCT readers are supported:
| Product | ProductID |
|---|---|
| REINER SCT cyberJack pinpad USB | 0x100 |
| REINER SCT cyberJack e-com USB | 0x100 |
| REINER SCT cyberJack pinpad_a USB | 0x300 |
Bus Nr Device Nr VeID:PrID Bus 002 Device 002: ID 0451:1446 Texas Instruments, Inc. TUSB2040/2070 Hub Bus 002 Device 006: ID 0c4b:0300
The REINER SCT VendorID is 0c4b. ProductID's can be looked up in the table above.
You find all packages at http://www.reiner-sct.com/content/view/32/43/#linux.
Most packages need you to add the user which is to access the card reader to be added to the group cyberjack. This can be done by using the tool kuser or the system's administration tool (e.g. yast on SuSE).
You should reboot your machine after installing the driver package and adding the user to the group cyberjack in order for the changes to take effect.
Reiner-SCT provides RPM packages for the following distributions:
SuSE 10.2
SuSE 10.1
SuSE 10.0
SuSE 9.3
Fedora Core 5
Fedora Core 4
Just install the package corresponding to your system like this: rpm -i <package file>
If you already have one of Reiner-SCT's previous RPM packages installed you must update that existing package instead, like in: rpm -U <package file>
Reiner-SCT provides RPM packages for the following distributions:
Debian unstable
Ubuntu 6.06
Ubuntu 6.10
Just install the package corresponding to your system like this: dpkg -i <package file>
There is currently no experience with other Linux distributions. It should work in most cases as described above. If you get any problems with the RPM package, you can try to rebuild it on your system with rpm --rebuild <source package file> or rpmbuild --rebuild <source package file>
If you want to compile the source yourself just go into the main directory of the extracted archive and type ./configure make
The include file ctapi.h and the resulting library libctapi-cyberjack.so from the directory ctapi/ can then be copied to convenient places. For ctapi.h this would normally be /usr/include and for the library /usr/lib. The command make install can do that for you.
The name scheme libctapi-cyberjack.* has been choosen to make it possible to install more than one CT-API library on your system.
The latest driver contains the tool "cjflash" which can be used to update the firmware of the reader.
The current version of this tool only supports flashing newer Cyberjack devices (USB product id 0x400).
To update the firmware just use the following command: cjflash 1 Kernel_V30_07.bin Kernel_V30_07.bin.ecoma.sgn
The first argument is the number of the device (starting with "1", the second reader would be "2"). The next argument is the name of the file containing the new firmware, followed by the name of the file containing the signature of the new firmware.
After this command has been issued the reader asks you to confirm the operation (press "OK" on the reader's keypad to confirm or "CANCEL" to abort).
If the reader hangs after you pressed "OK" then it has an old firmware. In that case you'll have to use a slightly modified version of the command above: CJ_USB_MODE=1 cjflash 1 Kernel_V30_07.bin Kernel_V30_07.bin.ecoma.sgn
This sets the environment variable "CJ_USB_MODE" to the value "1" prior to executing the command. This tells the driver (which is used by cjflash) that another approach to the reader is needed.
Please only set that variable if the tool doesn't work otherwise!
Support of this driver is provided by REINER SCT. E-mail: support@reiner-sct.com Postal address: Schwabacher Str. 34, 90762 Fürth, GERMANY
In your problem description, please include as far as possible:
Any error messages you get.
Which Linux distribution you use including version, e.g. SuSE 10.1, Debian 3.0r1 testing, ...
CPU type, e.g. on Linux the content of the file /proc/cpuinfo.
Kernel version, e.g. on Linux the output from the command uname -r.
List of attached USB devices, e.g. on Linux the output of the lsusb command.
You can determine the version of the currently running kernel by executing uname -r
The version of the installed kernel sources, which are normally located below /usr/src, can be determined by looking at the source directory name or by looking into the main Makefile, where it is in the first three lines.
The cyberJack has been tested with up to 52 devices attached simultaneously to a single PC via 7-port hubs. Some notes regarding this configuration:
Linux at least up to 2.4.19 does result in a kernel panic, when too many devices are attached. Known to work is 2.4.20.
Sometimes timeouts occur resulting in a shift of the T=1 blocks resulting in bad performance and sooner or later a failure of communcation. The problem seems to lie somewhere in the usb-uhci part and vanishes with a faster PC. (Try >2GHz)
If there are still some problems try other hubs and other USB host controller cards. There seems to be a great difference in quality in these parts.
The performance does not degrade, when going from 1 up to 50 readers, even when doing constant I/O with cards. (Select and Read Binary)
Linux supports hotplugging with USB devices. This is implemented via the udev-system.
You can find some udev scripts for the REINER SCT cyberjack reader family in the etc/udev directory of this archive.
Since udev-related scripts are highly distribution specific, REINER SCT can only provide