225 lines
5.9 KiB
Plaintext
225 lines
5.9 KiB
Plaintext
|
EUTRON SPA
|
||
|
INFORMATION SECURITY SOLUTION
|
||
|
|
||
|
Phone +39-(0)35-697011
|
||
|
Fax +39-(0)35-697092
|
||
|
|
||
|
Internet : http://www.smartkey.eutron.com
|
||
|
Technical support : helpdesk@eutron.com
|
||
|
Commercial info : info@eutron.com
|
||
|
|
||
|
|
||
|
SmartKey Parallel and USB driver for Linux
|
||
|
------------------------------------------
|
||
|
|
||
|
This driver works for kernel from 2.4.10 to 2.4.19 compiled with gcc-3.2.2
|
||
|
|
||
|
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 OF THE APPLICATION
|
||
|
---------------------------
|
||
|
|
||
|
The application contains the following files:
|
||
|
|
||
|
README This contains information about the application.
|
||
|
It's the file you are reading now.
|
||
|
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
|
||
|
|