SoftwareExchange:LinuxDrivers
Contents |
Linux Device Drivers
An important amount of instrumentation is shared among large research facilities. In the same way, many people use GNU/Linux to control the hardware. Linux is a mature kernel that provides powerful hardware access mechanisms with good soft real-time response and in a very reliable environment. This page is oriented to share the code and experience developed at different institutes in Linux kernel device drivers for instrumentation control.
Rules
- Everyone can create an account and start adding information to this area.
- All code listed here must be available under some form of free licence: GPL, BSD etc., as source code.
- For each entry the following information must be provided:
- Title
- A description of the supported hardware:
- Manufacturer and model (if applicable)
- Instrumentation category (Digital/Analog I/O, Counter/timer, communication)
- Physical bus (VME, PCI, SCSI)
- Supported Linux operating system (distributions, kernel version)
- A link or information where to get the source from. You may leave sources directly on this site if nothing else is available.
- Information on the licence under which the plugin is released.
- The author(s) of the software, with e-mail address.
- The NOBUGS International Advisory Committee reserves itself the right to remove entries from this page when these rules are not abided too and the problem cannot be fixed in consultation with the author.
VME Device Drivers for Linux 2.6
VME is still used in the synchrotron and neutron communities for instrumentation control. Two different alternatives are available to control the system: using a VME CPU board, or through PCI/VME bus coupler that maps the VME hardware in a PC or workstation. In both cases, Linux can run on the control CPU and directly access the VME devices. This is the situation at the ESRF, where a control system was developed based on Linux 2.4 as a part of a modernization campaign to migrate from OS/9.
In a second evolution phase, the VME drivers were ported to Linux 2.6, implementing the bus/device mechanism provided by the kernel. The VME susbystem differentiates between bus controllers (hosts) and VME boards (devices), with independent interfaces. The former group provides access to the bus resources (I/O, IRQs, DMA), and the latter group uses those resources in a generic way.
Supported hardware
- Bus controllers:
- SBS Bit-3 PCI/VME bus coupers (Model 618/620)
- Tundra Universe chip, used in the Concurrent Technologies' VP101
- VME devices:
- ESRF VCT6 Counter/Timer
- ESRF VPAP Motor Controller
- CompControl CC133 Incremental Encoder
- ADAS ICV150 Analog Input (ADC)
- ADAS ICV196 Digital Input/Output
- ADAS ICV712 Analog Output (DAC)
Supported Linux operating system
- Distribution: Red Hat Enterprise Linux (EL) 4
- Linux kernel: 2.6.9 [releases 22.0.1, 42.0.3, 67]
Source code
The driver codes are available for download from the LinuxDrivers project at the BlissGarden Site
The code has been uploaded as source tar.gz balls. It is expected to have an SVN repository in the near future.
Notes
- The bus controller codes are not published yet; need license verification.
- Basic documentation is expected soon.
- Create an account in BlissGarden and monitor the LinuxDrivers project news and files.
License
The code developed at the ESRF is released under the GPL.
Authors
- Current developers: Alejandro Homs Puron (ahoms at esrf dot fr), Marie-Christine Dominguez, Manuel Perez, Franc Sever
- Previous developers: Richard Hirst, Integrated Real Time Systems (IRTS), Petri Makijarvi, Bernard Regad, Stephan Marguet, David Kimdon, David Beltran, Antonia Beteva, Andy Gotz, Pablo Fajardo, Jorg Klora