49352a0ff7
git-svn-id: svn://10.65.10.50/trunk@12224 c028cbd2-c16b-5b4b-a496-9718f37d4682
EUTRON Internet : http://www.smartkey.eutron.com Helpdesk email : helpdesk@eutron.com Commercial email : info@eutron.com Commercial phone : +39-035697080 Fax : +39-035697092 SmartKey Parallel and USB driver for Linux ------------------------------------------ This driver works for kernel from 2.4.21-144 (Suse 9) compiled with gcc-3.2.3 The application provides an interface between the C language and the driver of the SMARTKEY key. The application is totally compatible with the one available under MS-DOS. This makes it easy to port programs written for the MS-DOS operating system to the Unix environment. CONTENTS -------- The package contains the following files: clink.o This is the interface between C programs and the SMARTKEY driver. clink.h This outlines the structure of the clink.o interface. It has to be used in the C files that use the SMARTKEY key. smartdem.c An example, written in C, of how to use the SMARTKEY key. smartdem Executable of the sample program. skey*.o Drivers of the key skinstall Script for automatic installation skuninstall Script for automatic uninstalling skeyver Utility for setting the version of the kernel in the skey.o module USB SUPPORT ----------- The Smarkey driver, like any other USB driver, requires that the USB modules of the kernel are active and running. Generally you can obtain this running these commands : insmod usbcore insmod usb-uhci for PCs with an USB controller UHCI by Intel, VIA, ... insmod usbcore insmod usb-ohci for PCs with an USB controller OHCI by Compaq, iMacs, OPTi, SiS, ALi... UPGRADING --------- To upgrade from the previous version of the SmartKey driver you need to relink your application with the new clink.o object. If you don't relink, your application will work only with the first USB key inserted and with the parallel port addresses 0x3BC and 0x378. You will lose the access at the parallel port at address 0x278 substituted with the first USB key. AUTOMATIC INSTALLATION PROCEDURE -------------------------------- Start the skinstall script with root rights using the commands: chmod a+x skinstall ./skinstall The installation will configure the system for the automatic loading of the SmartKey module the first time it is run. To uninstall the driver use the commands: chmod a+x skuninstall ./skuninstall Every time the version of the kernel changes, you will have to perform the installation again. To start the demo application use the commands: chmod a+x smartdem ./smartdem MANUAL INSTALLATION PROCEDURE ----------------------------- To install the driver follow this procedure: 1) Access the system as a super-user. 2) Go to the /dev directory using the command: cd /dev create the file for accessing the key using the commands: mknod skey0 c 59 0 mknod skey1 c 59 1 mknod skey2 c 59 2 mknod skey3 c 59 3 mknod skey4 c 59 4 mknod skey5 c 59 5 and change the properties and the group of files using the commands: chmod 666 skey? chgrp daemon skey? 3) Identify the correct driver for your particular configuration. There are three alternatives: skey_R.o Kernel mono-processor with version information skey_Rsmp_.o Kernel multi-processor with version information skey_Rsmp.o Kernel multi-processor with version information for RedHad skey.o Kernel mono-processor without version information A simple test can be carried out using the command: grep printk /proc/ksyms on receiving the output : ... printk_R1b7d4074 driver skey_R.o ... printk_Rsmp_1b7d4074 driver skey_Rsmp_.o ... printk_Rsmp1b7d4074 driver skey_Rsmp.o other driver skey.o Re-name the driver identified with the name skey.o 4) Configure the skey.o module with the current version of the kernel: chmod a+x skeyver ./skeyver skey.o 5) The driver skey.o is in the form of a dynamically loadable module. Therefore before it can be used, it has to be loaded with the command: insmod skey 6) To configure the driver for automatic loading the first time it is run, do the following: 6.1) Add the line: alias char-major-59 skey at the end of the file /etc/conf.modules 6.2) Copy the file skey.o to the directory /lib/modules/KERNELVERSION/misc, where KERNELVERSION is the version of the kernel. The version of the kernel can be viewed using the command: uname -r 6.3) Update the dependencies of the modules using the command: depmod -a 6.4) Remove any copies of the driver that might be in memory by using the command: rmmod skey and check automatic loading of the module using the command: modprobe skey If there are no error messages it means that loading was successful. USE --- In order to use the clink.o interface you have to copy the file to the working directory and link it to the other object files which make up the program to protect. You will have to include the file clink.h in the program files that use the clink.o module. If the C compiler you are using isn't ANSI-C, you will have to use the compile option -DNO_ANSI_C. CONFIGURATION ------------- If you are using a PCI Parallel port which doesn't use a standard IO address you need to specify the effective address of the IO port with the "port" module argument. The argument accept up to 3 values separated by commas. The default values are 0x378, 0x278, 0x3bc. For example : insmod skey port=0x800 or insmod skey port=0x800,0x810,0x820 If you are using an OHCI (Open Host Controller Interface) USB bus, generally present in all the additional PCI USB port, you need to specify the module argument "fastusb=0". For example : insmod skey fastusb=0