Wiki
Wiki
This is an old revision of the document!
Comedi provides a common Linux interface to certain DAQ hardware,
typical PCI digital and analog I/O cards and is actively developed since 1998.
It consists of
The newest sources for the Comedi and driver modules
are available from the official Git repository.
git clone git://comedi.org/git/comedi/comedilib.git
Use autotools to generate the configure script
./autogen.sh
To display all available options
./configure --help
Assembling the Makefile for 64-bit Linux 3.10.82-rt89 with RT preempt patch
./configure --with-rtlinuxdir=/usr/src/kernels/3.10.82-rt89 --with-kernel-release=3.10.82-rt89 --with-rpm-target=x86_64
Compiling
make
Installing
make install
Comedi and available drivers are integrated into the Linux kernel since 2.6.30
located in the experimental staging tree.
To enable Comedi and build the comedi module, setup the
kernel configuration as follows:
Device Drivers [*] Staging drivers [*] Data acquisition support <M>
This ensures the built of the comedi module only.
To actually make use of the supported hardware,
the comedi driver(s) need to be set to build.
Taking the ADDI-DATA I/O PCI card 1648 for example,
activate the Comedi PCI drivers section and set the appropriate driver.
Comedi PCI drivers [*] ADDI-DATA APCI_16xx support <M>
This will built the driver module addi_apci_16xx,
which depends on the comedi module.
When loaded, lsmod shows something like:
comedi 46649 1 addi_apci_16xx
Every device gets a separate comedi[0-9]+ node in the device tree.
Assuming only one card in this example
crw-rw---- 1 root root 98, 0 Aug 4 2015 /dev/comedi0
To access the device, use the library Comedilib for user-space applications
or Kcomedilib for real-time kernel modules making use of Comedi hardware.
Comedilib needs to be installed manually either via Git
git clone git://comedi.org/git/comedi/comedi.git
or by getting the latest stable release tarball from the Comedi page
wget http://www.comedi.org/download/comedilib-0.10.2.tar.gz
At time of writing 0.10.2 was the latest stable release.
> comedi_board_info
overall info: version code: 0x00074c driver name: addi_apci_16xx board name: apci1696 number of subdevices: 3 subdevice 0: type: 5 (digital I/O) flags: 0x00030000 number of channels: 32 max data value: 1 ranges: all chans: [0,5] command: not supported subdevice 1: type: 5 (digital I/O) flags: 0x00030000 number of channels: 32 max data value: 1 ranges: all chans: [0,5] command: not supported subdevice 2: type: 5 (digital I/O) flags: 0x00030000 number of channels: 32 max data value: 1 ranges: all chans: [0,5] command: not supported
Kcomedilib provides the Comedilib interface to the kernel space.
This is useful when writing real-time kernel modules that need
access to Comedi devices.