Back: A. Installation Forward: A.1.1 GPIB support   FastBack: A. Installation Up: A. Installation FastForward: B. Device Reference         Top: fsc2 Contents: Table of Contents Index: Index About: About This Document

A.1 Requirements

The following tools and libraries are needed to compile, install and run fsc2:


GNU version of make


GNU C compiler, but other C compilers probably will also do)


Fast Lexical Analyzer


GNU general purpose parser generator


from the GNU coreutils package


(GNU version of) stream editor

`XForms library'

(version 1.0 or higher) with development package, i.e. the header files, see

`GPIB library'

fsc2 can also be compiled and run without a GPIB library but with restricted functionality, i.e. without support for devices controlled via GPIB.

While optional you better should have:

`mail and sendmail'

(or a sendmail replacement) or, if you want to use the built-in mail agent, the library


from the GNU binutils package


(version 5.6 or higher) with the pTk (Perl-Tk support) package


PNM image to PNG converter


PNM inage to JPEG converter

If some of these are missing the basic functionality is still there (without mail and addr2line no automatic bug reports can be sent and without Perl you won't be able to wrap a GUI around EDL scripts and the built-in web server (which also requires the next two utilities) and the utility for displaying pulse settings graphically won't work.

If you want to compile the module for Fast Fourier Transformation you will need the FFTaW library. Make sure to install version 3 of the library!

To create the complete documentation beside Perl you also need:

`makeinfo and install-info'

the GNU texinfo documentation format


The TeX typesetting system - if missing no PostScript and PDF documentation can be created

`convert and identify'

from the ImageMagick package - or no PostScript and PDF documentation will be created


the TeX DVI output to PostScript converter - if missing no PostScript documentation will be created


TeX package for creating PDF output - if missing no PDF documentation will be created


GNU data compression program

Back: A.1 Requirements Forward: A.1.2 Support for other devices   FastBack: A. Installation Up: A.1 Requirements FastForward: B. Device Reference         Top: fsc2 Contents: Table of Contents Index: Index About: About This Document

A.1.1 GPIB support

GPIB support requires a library and a driver to interface GPIB cards to installed in your machine (if you don't have a GPIB card fsc2 can also compiled without GPIB support, but many of the devices will then be not usable). You can choose between the following ones:

`SourceForge driver and library'

This is the successor to the Linux Lab Project library and drivers. It exists in versions for 2.4 and 2.6 kernels and supports an impressive number of different GPIB cards and I would recommend youtry this first. You can download it from

`National Instruments driver and library'

There exist two versions of the library if have been trying. The older, beta driver and library (version 0.86) works fine, but only with 2.4 kernels. The newer driver and library (version 2.xx, supposed to work also with 2.6 kernels) hasn't been tested, I didn't even get the driver to compile and linking against the library led to the program aborting immediately. I haven't any idea yet how to resolve that problem. If you want the older beta-driver but can't find it on the National Instruments web site anymore send me an email, I still have a copy of it around somewhere. You can download the newer version from the National Instruments web site.

`Linux Lab Project driver and library'

This is a very old driver (only working with 2.0 kernels) and library, so you probably don't really want to use it anymore. I don't even know if it can still be downloaded...

`my own driver and library'

This driver and library should work for 2.0 to 2.6 kernels and supports National Instruments ISA GPIB cards (but I was told that also cards by some other manufacturers can be used with the driver). You can download it from

From the documentations of the Linux Lab Project and SourceForge libraries and the one I have written it should already be clear that a GPIB configuration file (that is typically `/etc/gpib.conf') is required for the accompanying libraries to work correctly. In this configuration file all devices to be used with must be listed with their respective properties.

For the National Instruments libraries itself such a configuration file isn't needed, but fsc2 does require it to find out about the available devices. So you have to create one, following the conventions used in the configuration files for the Linux Lab Project library, which I also (mostly) used for my library. A typical entry in this file looks like the following

device {
        name        = "TDS744A"   /* symbolic name */
        pad         = 26          /* primary address */
        timeout     = 3s          /* device timeout */
        eos         = 0x0a        /* EOS character */
        set-reos    = no
        set-xeos    = no
        set-bin     = no
        set-eot     = yes

It specifies a symbolic name for the device, the primary GPIB address (you may also specify a secondary GPIB address, following the keyword 'sad'), the timeout to be used for communication with the device and a few more settings controlling the determination of the end of messages send to and read from the device. 'eos' is the character to be used as the end of transmission (EOS) character (none has to be set when no such character is to be used). When 'set-reos' is set he driver stops reading from a device whenever the EOS character is encountered in the message, even when the EOI line did not get raised while receiving the EOS character. When 'set-xeos' is set the EOI line is automatically raised when the EOS character is found in a message send to the device (even when there are more characters in the message). Setting 'set-bin' will make the driver check all 8 bits of each character for identity with the EOS character, while, when unset, only the lower 7 bits are tested (the top-most bit is excluded from the comparison). Finally, setting 'set-eot' makes the driver raise the EOI line automatically with the last byte of a message send to a device (which is also the default), while unsetting it will keep the driver from doing so.

Beside the entries for the devices another one for the GPIB board itself is required as an interface entry:

interface {
        name        = "gpib"        /* symbolic name */
        pad         = 0             /* primary address */
        sad         = 0             /* secondary address */
        master                      /* flag for controller */
        file        = "/dev/gpib"   /* device file */

Here a symbolic name and the primary and secondary GPIB address are set for the board. The 'master' flag tells the driver that the board is the device controlling the GPIB bus and 'file' sets the name of the device file used for the board.

Please make sure that the GPIB library you want to use is already compiled and installed before trying to compile fsc2 (unless you don't need GPIB support built into fsc2).

Back: A.1.1 GPIB support Forward: A.2 Security issues   FastBack: A. Installation Up: A.1 Requirements FastForward: B. Device Reference         Top: fsc2 Contents: Table of Contents Index: Index About: About This Document

A.1.2 Support for other devices

Devices that are controlled via the serial port are always supported (at least as long as the variable WITHOUT_SERIAL_PORTS isn't set in the configuration for fsc2).

Devices using USB-serial converters can be used as far there's support in kernel for them (in that case they can be used like a normal serial port device).

Other USB-controlled devices can be used via the libusb package, either verson 0.1 or 1.0 (which has to be installed on your machine).

Devices controlled via LAN can be used if you have a network card and networking support enabled in the kernel (which it usually is).

Also devices that are ISA or PCI cards (or connected to dedicated ISA or PCI card) or that are controlled via the Rulbus (Rijksuniversiteit Leiden BUS) can be used. All of those require additional libraries and kernel drivers to be installed prior to building fsc2. If these come from the makers of the device (e.g. Roper Scientific Spec-10 CCD camera) please see the documentation coming with the device on how to do that (and make sure that they are available for your kernel version and CPU architecture). For others the sources for the required libraries and kernel drivers are part of fsc2, see the subdirectories `me6x00', `ni6601', ni_daq, `rulbus' and `witio_48'). If you need any of them you must create and install the libraries and kernel drivers before you can create fsc2. Typically it's as easy as going into the subdirectory, typing ./INSTALL and answering a few questions. Please refer to the documentation (`README' files) in these subdirectories for more details. After a successful installation fsc2 should be able to find the libraries and include support for the devices.

Back: A.1.1 GPIB support Forward: A.2 Security issues   FastBack: A. Installation Up: A.1 Requirements FastForward: B. Device Reference

This document was generated by Jens Thoms Toerring on September 6, 2017 using texi2html 1.82.