diff -r 000000000000 -r c9b8efdb5369 README --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/README Wed Jan 16 14:01:55 2002 +0100 @@ -0,0 +1,180 @@ +README file for the Meilhaus ME8100 driver. + + +1) What you should have got: +============================ +These files should be in your directory: + - me8100.c the source code of the device driver + - me8100.h a header file included from me8100.c + - Makefile the makefile to compile the driver + - me8100-driver a shell script to load and unload the driver + - sysdep.h compatibility file down to kernel 2.0 + - pci-compat.h compatibility file for pci stuff down to 2.0 + - me8100_test_counter.c test program for counters + - me8100_test_dio.c test program for digital I/O + - me8100_test_int.c test program for interrupts + - GNU_GPL a file containing the General Public License + - README this file :-) + +2) How to compile the driver +=========================== +Be sure to have installed the kernel sources on your system. +Normally you simply type + make +at your command prompt. If you have got a file me8100.o +the make process worked. :-) + + +3) How to install the driver: +============================= +3.1) Automatic installation +--------------------------- +Make sure you are root and run +./me8100-driver start + +To get rid of the driver use +./me8100-driver stop + +A look at the me8100-driver shell script will give you +closer informations about using it. + +3.2) Do it yourself installation +-------------------------------- +Make sure you are root and type + insmod me8100.o +A + lsmod +should print the modules loaded, including me8100. + +You must make a node for your driver e.g. +mknod /dev/me8100 c + +The major number has to be unique! The standard configuration is +to automatically choose the major number. Type + cat /proc/devices | grep me8100 +you will get a line like this: +254 me8100 + +In this example 254 is your major number. + +Now make a node in your file system: +mknod /dev/me8100 c + +The major number you already know. is the board number. +Your first board is minor=0, second board minor=1 .... +If you have only one board and the major number given in the example +you would type: +(make sure you are root !) +mknod /dev/me8100 c 254 0 + + +That's it! --> Enjoy + + +4) How to use the driver +======================== +4.1) Open the device +-------------------- +If you have used the install script described in 3.1), you have four nodes +for your me8100 board in the /dev directroy, named me8100_0 to me8100_3. +Before you can use the board, you have to open a path to the board: + +int file_handle; + +. +. + +main(void){ + +. +. + +file_handle = open("/dev/me8100_0", 0_RDWR, 0); + +. +. + +} + +When the device is opend, the board is reset. This means, that the outputs are +set to "0" and the interrupt logic is disabled. + +4.2) IOCTL's of the board +------------------------ +Now the board is ready to use. In order to work with the board, you have +to use the ioctl systemcall. You can find the defined ioctl's in the end of +the headerfile me8100.h. + +In order to use this definitions you have to include the file me8100.h in +your program. The ioctl systemcall will look something like this: + + +#include "me8100.h" + +unsigned short mask; + +. +. + +main(void){ + +. +. + +ioctl(file_handle, ME8100_WRITE_MASK_A, &mask); + +. +. + +} + + +You have to pass the address of a variable to the driver. What type is +necessary, you can get from the definitions of the ioctl's in +the headerfile me8100.h. Please look at the source code to get closer +information about the purpose of the diffrent ioctl's. + +4.3) Interrupt +-------------- +In order to get information about, how to handle the interrupt +functionality of the driver refer to the source code of the test +program. + + +4.3) Close the device +--------------------- +If the work is done, you have to close the device. You have to use the +systemcall close for this purpose: + +close(file_handle); + +When the device is closed, the board is reset. + + +=============================================================================== +Because live is never as simple as this you can read on if you got any problem. +=============================================================================== + +The driver has been developed and tested under SuSE-Linux 7.1 kernel 2.4.0. +If you want to know what your kernel version is, type + cat /proc/version +It will not run on older Linux versions then 2.4 down to 2.0. +It should work with newer kernels, +provided Linus did not change the interface for modules again. + +If you want to get closer informations about how to use the driver, +please refer to the source code of the test programs. + +The handbook is also a good source to get informations, about the behavior +of the board. + +- Meilhaus Electronic + + + + + + + + +