rti800: fix straight-binary/2's-complement option for DAC channel 1
[comedi.git] / INSTALL
diff --git a/INSTALL b/INSTALL
index 8b3f0411284588959c965c08beaa51bd556d7f44..c85b02558ef9be5b831915792919f6a76b0802c4 100644 (file)
--- a/INSTALL
+++ b/INSTALL
 
 
-Prerequisites:
-       - a machine capable of compiling Linux modules
-       - a correctly installed kernel source tree.  Specifically,
-         you need to have the file /usr/src/linux/.config and
-         /usr/src/linux/include/linux/autoconf.h.  If these are
-         not present, you can create them by compiling a new
-         kernel.  Some distributions don't provide these by
-         default.
-       - a 2.2 or 2.4 series kernel.  2.0.38 may also work, but
-         it's not actively maintained.  (But feel free to try it
-         and report problems.)
-
-Configure using 'make'.  The first time you run make, it will take
-you through configuration options similar to compiling a linux
-kernel.  If you need to run the configuration again, use 'make config'.
-Red Hat users note: Red Hat does not ship with kernel headers
-capable of compiling Comedi.  You either need to install the
-kernel source RPMs, or download a kernel tarball and build a
-new kernel.
-
-Make the dependency list by running 'make' again.
-
-Compile using 'make'.  If this doesn't work, make sure you have the
-basic tools installed to compile.  If you can successfully compile
-other things, consult the author, as he has probably made a mistake.
+* Linux source:
+
+In order to compile the Comedi modules, you will need to have
+a correctly configured Linux kernel source tree.  The best
+way to get one is to download a tarball from kernel.org and
+compile your own kernel.  Comedi should work with most 2.2, 
+2.4, and 2.6 Linux kernels.  2.6.x kernels older than 2.6.6 are
+not supported.  Support for 2.0.3x is not actively maintained,
+but it should work and bugs will be fixed as they are reported.
+
+You can also prepare a kernel source tree that matches
+the kernel you are currently running if you have its config file (in
+the Debian distibution the config files for the kernel-image packages
+are installed into the /boot directory).  The following steps will
+(almost) set up your kernel sources correctly.  You will also need
+write permission to the kernel source directory the first time you
+run comedi's configure script, so you might want to unpack the kernel
+source into a directory you own.
+
+1) Get a copy of the kernel source that matches the kernel you are
+       running.  Unpack it and copy your kernel config file to '.config'
+       in the top directory of your kernel source.
+2) You might need to edit the file 'Makefile' in the kernel source.
+       At the top of the Makefile, the variable EXTRAVERSION is defined.
+       If necessary, change it to match your kernel (for example, if the command
+       'uname -r' produces "2.4.16-386" then your EXTRAVERSION should be
+       set as 'EXTRAVERSION=-386'.
+3) Run 'make oldconfig' in your kernel source directory.
+4) Run 'make dep' (for 2.6 kernels, do a 'make modules_prepare' instead 
+       or even better a full 'make') in the kernel source directory and 
+       you are done.
+
+Red Hat users note: Kernel sources that are distributed with Red
+Hat Linux are not supported, because they are too heavily
+modified.  However, there is some information in
+Documentation/comedi/redhat-notes on how to use Red Hat kernels.
+
+* RTAI support:
+
+If you want to use the real-time capabilities of Comedi with
+RTAI, you need to compile and install RTAI first.  If you
+don't install the rtai kernel modules, you may get unresolved
+symbols when installing the comedi kernel modules.
+
+* RTLinux support:
+
+If you want to use the real-time capabilities of Comedi with
+RTLinux, you need to compile RTLinux (both the kernel and the
+modules) first.  Known working versions are 2.x and 3.0.
+
+* Configuration:
+
+Configure with './configure'.  './configure --help' will give the
+configuration options.  If the configure script does not exist
+(if you checked comedi out from git for example), it can
+be generated by running './autogen.sh'.  The autoconf, automake,
+autoheader, etc. tools are required to generate the configure
+script (automake version >= 1.7 recommended).  The --with-linuxdir
+option is particularly useful, as it allows you to specify
+the location of your Linux kernel source directory.  If
+you are using an RT-patched kernel, the --with-rtaidir or
+--with-rtlinuxdir options allow you to specify
+the location of your RTAI or RTLinux source directory.
+
+* Compiling:
+
+Compile using 'make'.  If this fails for some reason, send the
+_entire_ build log to the mailing list.  Without the build
+log, it is impossible to find problems.
+
+* Installation:
 
 Install using 'make install' as root.  This installs the files:
 
 Install using 'make install' as root.  This installs the files:
-       /lib/modules/<<kernel version>>/misc/comedi.o
-       /lib/modules/<<kernel version>>/misc/kcomedilib.o
-       /lib/modules/<<kernel version>>/misc/<<driver files>>.o
 
 
-You need to create device files to access the hardware from a
-user process.  These can be created using 'make dev'.  The following
-special files will be created:
-       /dev/comedi0
-       /dev/comedi1
-       /dev/comedi2
-       /dev/comedi3
+  /lib/modules/<<kernel version>>/comedi/comedi.ko
+  /lib/modules/<<kernel version>>/comedi/kcomedilib.ko
+  /lib/modules/<<kernel version>>/comedi/<<driver files>>.ko
 
 
-To use comedi, the driver module must be loaded into the kernel.
-In general, this is done by a command similar to
+Comedi communicates with userspace via device files (/dev/comedi*).
+If you have devices which are able to auto-configure themselves and
+you've got udev support these devices are created automatically.  You
+can disable this mechanism by setting the module parameter
+comedi_autoconfig to zero of the module "comedi_fops". In case you
+have got an old ISA card or no udev support (embedded systems) you can
+create static devices with the module parameter
+comedi_num_legacy_minors by setting it to the number of desired static
+/dev/comedi* devices. You can then configure your device from the
+userspace with comedi_config. In this case you need to create device
+files to access the hardware by hand from a user process.  These can
+be created using 'make dev'.  The following special files will be
+created:
 
 
-       /sbin/modprobe <<driver>>
+  /dev/comedi0
+  /dev/comedi1
+  /dev/comedi2
+  ...
+  /dev/comedi15
+
+* Comedilib:
+
+Now would be a good time to compile and install Comedilib.  Comedi
+and Comedilib are completely independent, so it doesn't matter
+which is installed first.
+
+* Running Comedi:
+
+To use comedi, the driver module and the core Comedi modules must
+be loaded into the kernel.  This is done by a command similar to
+
+  /sbin/modprobe <<driver>>
 
 If your module dependencies are set up correctly, this will load
 
 If your module dependencies are set up correctly, this will load
-both comedi.o and your driver.  See the man pages for modprobe
-and insmod for more details.
-
-The default behavior when the module is loaded is to _not_ configure
-it automatically, i.e., you have a device file (/dev/comedi0) associated
-with a driver, but the driver is not associated with a device.  To
-associate a device file/driver with a device, you need to run the
-command /usr/sbin/comedi_config, which is part of the comedilib
-distribution.  This is also used to supply additional information,
-such as I/O address, IRQ, and possibly DMA channels.  The following
-commands are examples:
-
-       /usr/sbin/comedi_config /dev/comedi0 dt282x 0x240,3
-       /usr/sbin/comedi_config /dev/comedi1 ni_atmio 0x260,4
-       /usr/sbin/comedi_config /dev/comedi2 dt2817 0x228
-       /usr/sbin/comedi_config /dev/comedi0 ni_pcimio
+both comedi.ko and your driver.  If you get unresolved symbols, check
+the FAQ or the mailing list archives.  Also look at the man pages
+for modprobe and insmod.
+
+In order to configure a driver module to use a particular device
+file (/dev/comediN) and a particular device, you need to use the
+command 'comedi_config', which is part of the comedilib
+distribution.  Comedi_config is invoked using
+
+  comedi_config /dev/comedi0 <device name> <option list>
+
+The device name may or may not be the same as the module name.  In
+general, if the device type can be autoprobed (as with ISA PnP or
+PCI devices), the device name will be the same as the module name.
+Otherwise, you will need to check Documentation/comedi/drivers.txt
+for information about what device name is appropriate for your
+hardware.  The option list is to supply additional information,
+such as I/O address, IRQ, DMA channels, and other jumper settings.
+Information about option lists appropriate for a driver is in
+drivers.txt.  The following commands are examples:
+
+  comedi_config /dev/comedi0 dt2821 0x240,3
+  comedi_config /dev/comedi1 ni_atmio 0x260,4
+  comedi_config /dev/comedi2 dt2817 0x228
+  comedi_config /dev/comedi3 ni_pcimio
 
 Try a 'man comedi_config' for information on how to use
 
 Try a 'man comedi_config' for information on how to use
-this utility.  The options (numbers at the end, above) have
-different meanings for different drivers, and you should consult
-the file Documentation/comedi/drivers.txt for details about
-each driver.  Scripts have been written for a few of the drivers
+this utility.  Scripts have been written for a few of the drivers
 with very complicated option lists -- these are found in the etc
 directory.
 
 with very complicated option lists -- these are found in the etc
 directory.
 
-If you like to autoload your modules, put the lines
+* Module Autoloading:
+
+For recent kernels, module autoloading is handled by udev.  The
+following is only applicable to older kernels.
 
 
-       alias char-major-98 comedi
-       alias char-major-98-0 your_driver
-       post-install your_driver /usr/sbin/comedi_config /dev/comedi0 your_driver <<options>>
+If you like to autoload your modules, put the following lines
+into /etc/modules.conf (this does not apply for PCMCIA cards):
+
+  alias char-major-98 comedi
+  alias char-major-98-0 your_driver
+  post-install your_driver PATH=/sbin:/usr/sbin:/usr/local/sbin:$PATH;comedi_config /dev/comedi0 board_name <<options>>
 
 Alternatively, for complicated option lists, the scripts in etc
 are designed to be copied into /etc, so that you could put the
 following lines into /etc/conf.modules:
 
 
 Alternatively, for complicated option lists, the scripts in etc
 are designed to be copied into /etc, so that you could put the
 following lines into /etc/conf.modules:
 
-       alias char-major-98-0 dt282x
-       post-install dt282x /etc/dt282x.conf
+  alias char-major-98-0 dt282x
+  post-install dt282x /etc/dt282x.conf
+
+* Calibration:
 
 
-If you have a National Instruments AT-MIO or PCI-MIO board, you probably
-will want to run comedi_calibrate, an autocalibration tool that is part
-of comedilib in a bootup script.
+If your board has self-calibration capabilities,
+will want to run comedi_calibrate, an autocalibration tool that 
+is packaged in a seperate tarball, in a bootup script.
 
 
-To write programs that use comedi, there are demo programs included
-with comedilib.
+* PCMCIA:
 
 
+The PCMCIA drivers require at least a 2.6.16 kernel (at for
+unpatched mainline kernels).  You must also have pcmciautils
+and udev installed.  You can write a udev rule to automatically
+run gpib_config after the driver is loaded.
 
 
-Upgrading:
+Upgrading:
 
 From versions prior to 0.6.0, you will need to edit and recompile
 all programs that use comedi or comedilib, since the names of
 
 From versions prior to 0.6.0, you will need to edit and recompile
 all programs that use comedi or comedilib, since the names of