HAL Online-Homepage      up

HAL (Hardware Access Library)

A library developed for the CMS data aquisition system at CERN.

Last update: 7th November 2012

A high level interface which allows for user friendly hardware access to VME or PCI modules.

The up-to-date HAL version with the supported drivers and BusAdapters is contained in the worksuite of the CMS online software. The download links below are only for those which want to use the HAL stand-alone (i.e. not in the CMS online context).

The library contains a software layer between the user program and the driver software to access hardware. A class called "BusAdapter" implements the interface to the various hardware drivers. Several BusAdapters are contained in the distribution. It is easy for the user to extend this collection by writing his own BusAdapter.

For PCI access on linux PCs you find a suitable driver in the xdaq framework.

For VME access from a Linux PC there exist BusAdapters for CAEN VME bridges:

If you use XML support to read in AddressTables in XML format you need the schema against which your address table will be checked. It is contained in the root directory of the distribution (HardwareAddressTable-ver-2-1.xsd).

In order to compile the package you need the xerces packages to browse XML-documents. The cms online software contains a consistent set of rpms.



It is strongly recommended to install the HAL software via the yum repository of the CMS online software. Like this you get a consistent set of libraries which has been tested. To learn how to install the cms online software look at the relevant doruments listed on the xdaq site:


The software is available via the CMS online software. You can download it via yum or you can download the single RPMs from the yum repository by hand. You find the yum repository of the online softwarte here:


Relevant RPMs are called (names given wo version numbers):

You also find the kernel drivers for the caen vme bridges and for PCI modules in this repository.

Contact : Christoph.Schwick@cern.ch