Skip to content

Adding YARR and NetIO functionality

Alex Toldaiev requested to merge otoldaie/powertools:add-yarr into activeTB

Implemented the EndeavourRaw interface in the EndeavourRawGBT class that interfaces to YARR's HwControllers, one of which is Netio.

An example of using the EndeavourRawGBT is implemented in the pbv3/tools/endeavour.cpp utility.

Also there are a couple corrections in the CMakeFiles to compile it with YARR. For now the paths to all dependencies are passed by command line options, nothing is found automatically. The dependencies are:

  • YARR's headers
  • the libYarr.a library
  • the netio library
  • and the tbb library that netio depends on.

The build commands are recorded in the notes file. A compilation with YARR looks like this:

export TBB_DIR=/cvmfs/sft.cern.ch/lcg/releases/LCG_94/tbb/2018_U1/x86_64-centos7-gcc8-opt/
export FELIX_DIR=/home/atlas/itk/tdaq/installed/
export YARR_SOURCE=/home/atlas/itk/YARR/src/
export YARR_LIB=/home/atlas/itk/YARR/src/build/lib/

mkdir -p build/
cmake3 -S . -B build/ \
    -D ENABLE_YARR_NETIO:BOOL=ON \
    -D YARR_SOURCE:PATH=${YARR_SOURCE} \
    -D YARR_LIB:PATH=${YARR_LIB} \
    -D NETIO_DIR:PATH=${FELIX_DIR}/x86_64-centos7-gcc8-opt \
    -D TBB_DIR:PATH=${TBB_DIR}

cd build/
make -j 5

It compiles with the TDAQ setup.sh script, which uses gcc 8.2:

#!/bin/bash

version=x86_64-centos7-gcc8-opt

source tdaq/cmake_tdaq/bin/setup.sh $version
source /cvmfs/sft.cern.ch/lcg/releases/gcc/8.2.0/x86_64-centos7/setup.sh

export NETIO_DIR=`pwd`/tdaq/installed
export LD_LIBRARY_PATH=`pwd`/tdaq/installed/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/cvmfs/sft.cern.ch/lcg/releases/LCG_94/tbb/2018_U1/x86_64-centos7-gcc8-opt/lib:$LD_LIBRARY_PATH

During the tests, I tried using a more general Centos' devtoolset-8, but ran into some unclear issues. If needed I can check what is the difference between the devtools and the tdaq setup.

Edited by Alex Toldaiev

Merge request reports