How-To: Setting Up a Linux Box

Intended usage: E-Release

For older releases please check-out the history of this Wiki page.


This how-to describes setting up a Linux Box.

This how-to does not describe building and deployment of the timing system for various platforms. This is covered by a dedicated how-to.


In order to have a test setup you need
  • PC with network connection
  • Linux OS - this has been tested with Ubuntu 12.04 and above, Debian Wheezy and above, Mint 19.1 and on the ASL CLuster (RH6)
  • Important: Make sure that at least the LC_NUMERIC environment variable in locales is set for English-US (i.e., LC_NUMERIC=en_US.UTF-8) to avoid an HDL compilation issue when using Quartus Prime
Required software packages, testet on Ubuntu 16.04 / Debian 8 / Mint 19.1:

  > apt-get update
  > apt-get install git        
  > apt-get install build-essential --install-suggests
  Debian : > apt-get install docbook-to-man
  Ubuntu : > apt-get install docbook-utils
  > apt-get install libreadline-dev
  > apt-get install zlib1g:i386 
  > apt-get install linux-headers-$(uname -r)    # optional: to built VME PCI driver
  > apt-get install sdcc fxload                  # optional: to built firmware/USB/etc for the Pexaria 
  > apt-get install autotools-dev
  > apt-get install automake                     # on Linux Mint 19.1 (kernel 4.15)
  > apt-get install libtool                      # on Linux Mint 19.1 (kernel 4.15)
  > apt-get install libglibmm-2.4                # optional: to build saftlib on Linux Mint 19.1 (kernel 4.15)
  > apt-get install libglib2.0                   # optional: to build saftlib on Linux Mint 19.1 (kernel 4.15)
  > apt-get install xsltproc                     # optional: to build saftlib on Linux Mint 19.1 (kernel 4.15)
  > apt-get install libboost-all-dev             # optional: to build saftlib on Linux Mint 20.0 (kernel 5.4.0)
  > apt-get install libsigc++-2.0-dev            # optional: to build saftlib on Linux Mint 19.2 (kernel 4.15)

Setting Up Quartus

See dedicated how-to



In case you get eb-ls <protocol/host/port> does not work: failed to open Etherbone device: system failure : This is due to missing privileges.
  • check /dev/ttyUSB0, /dev/wbm0: The user must be member of the wishbone group.
  • in case of a standard local GSI desktop machine administered by the IT department, becoming a member of the wishbone group requires contacting the IT department.
  • hack
    • (not boot-safe) change permissions of the relevant file such as /dev/wbm0
    • use sudo


Saftlib does inter process communication (IPC) using a UNIX socket. On startup saftd creates the socket to which all other saft-tools will connect.
  • The default location for the socket is /var/run/saftbus/saftbus. When using the default location saftd must be started with root privileges.
  • The default location can be changed with an environment variable, e.g. export SAFTBUS_SOCKET_PATH=/tmp/saftbus.
  • If the environment variable is used, make sure that the environment variable is visible to the the saft-tools (e.g. saft-ctl).
  • It is possible to run multiple saftd processes in parallel on the same system if they are started with different SAFTBUS_SOCKET_PATH.
-- MartinSkorsky - 22 Dec 2020
Topic revision: r5 - 22 Dec 2020, DietrichBeck
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback