Installing dune-artdaq

JCF, Sep-15-2017: The instructions below are obsolete. If you wish to install your own copy of dune-artdaq on the CERN teststand, please see the top of the TWiki at, and disregard the big red "Instructions Incomplete" at the top. Due to standalone libraries that have been added which aren't available on Fermilab's SciSoft site (WIB, uhal, etc.) it's now quite time intensive (and highly discouraged) to install dune-artdaq elsewhere. If you have any questions, please contact me at

As of Aug-7-2017, the dune-artdaq package as well as all the packages it depends on (downloaded during the installation) take up about 6 Gb of space, and the automated installation procedure on Fermilab hosts takes about 5-10 minutes (though this may take significantly longer outside of Fermilab). Installation can be done in just a few simple steps:

  • Log into your system, and cd into an empty directory where you wish to install the code; for example:
    cd $HOME ; mkdir dune-artdaq-base ; cd dune-artdaq-base
  • Get dune-artdaq's script off the web and make it executable:
    chmod +x
  • Run it, supplying it with the name of the products directory in which uhal (needed for the timing fragment generator) is installed. Then you can add none, some, or all of five possible options. E.g., calling it with no options
    ./ --uhal-products-dir <dirname>

    ...will seek the uhal package in the products directory referred to by "<dirname>" and create a "profile" build (optimized but without some of the checking of a "debug" build) of dune-artdaq from the head of its git repository develop branch; the assumption is that you have write access to the dune-artdaq repository (to figure this out, see whether you're a manager or developer of dune-artdaq by looking at the "Members" box at dune-raw-data, which dune-artdaq depends on, will be checked out as the version which dune-artdaq at the develop branch head depends on, and by default will not offer write access. This would be the way you would install and build dune-artdaq if you wanted it to run quickly (profile vs. debug build) but didn't plan to make any alterations to dune-raw-data. Also by default, during installation the artdaq-mfextensions package and the packages artdaq-mfextensions depends on will be downloaded; this means the msgviewer application will be available and auto-detectable by DAQInterface. msgviewer requires XWindows and provides a number of features which makes looking at the dune-artdaq output simpler in real time. On the other hand, if all five possible options are chosen:
    ./ --uhal-products-dir <dirname> --debug --noviewer --dune-raw-data-develop-branch --dune-raw-data-developer --not-dune-artdaq-developer

    ...then again the uhal packages will be sought in <dirname>, a debug build of dune-artdaq is performed, artdaq-mfextensions (and consequently msgviewer) isn't installed, dune-raw-data is installed from the head of its develop branch rather than installed as the version dune-artdaq expects, and the user is given write access to dune-raw-data (similar as with the case for dune-artdaq, to determine whether you're able to obtain write access, look at the "Members" box at On the other hand, the user isn't given write access to dune-artdaq, normally the default. The above would be an example of installing dune-artdaq on a host where windowing isn't available and the user plans to develop dune-raw-data but not dune-artdaq.
    Please note that as of Mar-8-2017, there's no cut release of dune-raw-data yet - meaning you have to work with it on its develop branch. In other words, whatever combination of options you choose, you'll need to include "--dune-raw-data-develop-branch".

In order to run dune-artdaq, you'll want to use DAQInterface; how to get your hands on it to install it is described at, although be aware that those installation instructions are targeted more toward existing DAQ software experts than the typical end user. If you wish to do so, however, please contact John Freeman at DAQInterface will already be installed at the CERN teststand and at the Oxford teststand; instructions for running on those teststands can be found at and . For developers of dune-artdaq who worked on 35ton, an important point to note is that dune-artdaq is based on an mrb build system. The advantage of this is that it's possible to modify multiple packages (in this case, dune-artdaq and dune-raw-data) and rebuild both of them with a single command. This will, however, require learning how to build an mrb-based system, which is actually quite simple- see for how to do this. The instructions for artdaq-demo apply in the same manner to dune-artdaq.