Skip to content

Installation

Thomas King edited this page Jun 1, 2021 · 43 revisions

The following page provides information about how to install PAASS on a new system. This guide will cover installation of the PLX SDK, XIA Pixie API, and the PAASS software itself. The system has been tested with CentOS 7 as the recommended operating system. Both the PLX SDK, simply called PLX from here onward, and the XIA Pixie API, simply called XIA from here onward, need to be provided as they are proprietary software. UT group members can find the PLX software at kqxhc:/opt/plx and the XIA software at kqxhc:/opt/xia/firmwares. If issues are encountered that are not explained here see Installation Troubleshooting.

The installation is broken down into the following sections

The following commands expect to be in the super user environment. Start by typing the following command to log in as the root user.

su

Third-Party Package Configuration

PAASS has depends on a number of third party packages. For the standard packages available in most package manager the details are outlined below. The PLX and XIA Pixe16 APIs, will be discussed later. For more details about the specific packages read about third party packages. These packages can be installed with any of the package managers (apt-get, yum, dnf, ...). We have used yum in the example below as it is the default manager in CentOS 7.

Required Packages

Some standard packages that are not installed by default but that are required include the following:

You can install all of the required packages, with the exception of ROOT, with the following command:

yum install gcc gcc-c++ kernel-devel git cmake3 ncurses-devel 

Users are encouraged to compile root from source or use the CERN provided packages. As of ROOT version 6.14.00 the standard compilation parameters generated by cmake provide all of the functionality needed for PAASS.

Highly Recommended Packages

These are packages that are not explicitly necessary to build and run PAASS, but provided a significant reduction in difficulty or provide enhanced features.

You can install all of the required packages at once with the following command:

yum install git ccmake environment-modules postfix

postfix requires some extra setup, but is only used with the alarm mode in poll2 ( -a / --alarm ) as such it can be omitted.


PLX SDK

The Pixie16 system makes use of PLX 9054 chips for communication. A driver and SDK need to be built and installed for PAASS implementation. The current version of the PLX SDK as of this writing is 8.2.3. If using a 3.x.x series kernel then 7.1.1 will work, otherwise grab the 8.x.x source from the Downloads tab on the manufacturer's website (https://www.broadcom.com/products/pcie-switches-bridges/software-dev-kits).

First we need to install the PlxSdk assuming that the PLX_SDK_Linux_v7_11_final_2014-03-04.zip has been provided.

mkdir -p /opt/plx/7.1.1
ln -s 7.1.1 /opt/plx/current
cd /opt/plx/7.1.1
unzip PLX_SDK_Linux_v7_11_final_2014-03-04.zip
tar xf PlxSdk.tar

We then need to compile and build the sdk.

cd PlxSdk
export PLX_SDK_DIR=$PWD
make all

PLX API Library Symbolic Link

A symbolic link to the library will need to be created using the following command.

ln -s PlxApi.a PlxApi/Library/libPlxApi.a

PLX 9054 Chip Set Driver

We need a specific driver for the PLX 9054 chip set. We can now build the driver with the following commands.

cd Driver
./builddriver 9054

Load / Unload the PLX Driver

The following section describes how to load or unload the PLX driver. This does not need to be done during installation, but is required prior to attempting to communicate with a Pixie16 system. Instead of performing the following procedure we suggest you setup a startup service which will handle loading the driver at boot time as described in the next section.

The PLX driver can be loaded / unloaded by using the Bin/Plx_load or Bin/Plx_unload commands. The PLX_SDK_DIR environment variable must be set. We can use the following command to set the variable for one time use and run the command.

PLX_SDK_DIR=/opt/plx/current/ /opt/plx/current/Bin/Plx_load 9054

Startup Service

It is suggested that loading of the driver is installed as a service that runs at boot. There are two options for a boot time installation, init.d and systemd, only one is necessary. We currently support either, but recommend systemd. Note: Be aware that the crate needs to be connected to the computer and powered on prior to booting the computer to guarantee proper communication. Users have reported that due to changes in the order by which systemd loads targets that this script does not work on certain computers. As of dev branch commit 9f7314 we believe that this has been fixed. We are providing, for your convenience, two bash aliases which will load or unload the PLX driver. These aliases go into the .bashrc of the root user. The paths might need to be updated if your plx install dir is different.

alias ,PLX_LOAD='export PLX_SDK_DIR=/opt/plx/current && /opt/plx/current/Bin/Plx_load 9054'
alias ,PLX_UNLOAD='export PLX_SDK_DIR=/opt/plx/current && /opt/plx/current/Bin/Plx_unload 9054'

systemd

We have provided a short boot time systemd script. To use this script simply follow the steps below to install the file to /etc/systemd/system and enable it for use at boot.

cd /etc/systemd/system
wget https://raw.githubusercontent.com/pixie16/paass/dev/Share/plx/systemd/plx.service
systemctl enable plx

init.d

We have provided a short boot time init.d script. To use this script simply follow the steps below to install the file to /etc/init.d and enable it for use at boot.

cd /etc/init.d
wget https://raw.githubusercontent.com/pixie16/paass/master/share/plx/init.d/plxload
ln -s /etc/init.d/plxload /etc/rc5.d/S91plx

XIA Pixi16 API

The XIA Pixie16 API software and firmware typically comes packaged in a gzipped tarball (extension tgz) name with the following format: YYYY-MM-DD-BBbMMMm-*.tgz. Where YYYY is the year, MM is the month and DD is the date of release. The BB and MMM signify the intended module's ADC resolution in bits and the frequency respectively. Finally, the wild card * is a description of the feature set in that firmware version, for example vandle or general. Once this file has been obtained the following set of commands will extract the files to the typical destination of /opt/xia.

mkdir /opt/xia
cd /opt/xia
tar xzf *-*-*-*b*m-*.tgz
ln -s *-*-*-*b*m-* current

The software can now be built using the following:

cd current/software
make

PAASS

Finally, we can construct the PAASS package. We typically make a clone of this git-repository and store it in /root/paass. This is the location of the source code and build files.

git clone https://github.com/pixie16/paass /root/paass

Build Environment

We first need to make a build directory to keep the build files separate from the source code.

mkdir /root/paass/build
cd /root/paass/build

PAASS CMake

PAASS Can be configured in a number of different ways using various CMake options. There are two choices for cmake interface either the standard command line cmake or the optional curses cmake gui ccmake. We recommend the optional ccmake package as it reduces the chance of making mistakes. Choose the appropriate section below to compile PAASS with cmake or ccmake.

cmake

CMake requires that all chosen options be typed following a '-D' then an '=' followed by the value of the option. For example the typical install location would read -DCMAKE_INSTALL_PREFIX=/opt/paass. For a full list of these options see the Cmake Flags page. For a standard compilation one would type the following in the build directory.

cmake .. -DCMAKE_INSTALL_PREFIX=/opt/paass

ccmake

Alternatively, one can use ccmake as a GUI front end which indicates the chosen values for all options and provides description about those options. This is an optional package as described above. Using CCMake we can simply invoke it with ccmake .. from the build directory, but we prefer the following command which sets the install prefix.

ccmake .. -DCMAKE_INSTALL_PREFIX=/opt/paass

If issues are encountered that are not explained here see Installation Troubleshooting.

Compiling PAASS

After CMake has completed generating the make file used for compilation we simply need to compile the package using the command make. To speed things up we can specify to use multiple threads for compilation with the optional argument -j [numberOfThreads]. We indicate that we would like to install the package to the specified install prefix by adding the option install.

make install

Autoconfigure PAASS

The CMake files are capable of producing a guess at the configuration files need to run the poll2 and associated programs. These files are installed to ${CMAKE_INSTALL_PREFIX}/share/config and can be created by typing the following in the paass/build directory.

make config

Adding PAASS to the Environment

Finally, after configuration and installation is complete PAASS needs to be added to the path. Traditionally this has been done by modifying your environment via a .bash_profile for example. We suggest instead you make use of environment-modules. Be sure to log out and log back in after installation of environment-modules.

After compilation is completed a module file has been created in /opt/paass/share/modulesfiles/pixieSuite and we need to create a symbolic link to the module search path.

ln -s /opt/paass/share/modulefiles/pixieSuite ${MODULESHOME}/modulefiles

We can then use the following command to source the PAASS environment

module load pixieSuite

To install the module at load time add the previous line to your .bash_profile file or if already using modules simply use:

module initadd pixieSuite

Clone this wiki locally