To run Tracealyzer 4 on Linux, the first thing you will need to install is Mono. For most distributions there’s a package called “mono-complete”, though some distributions and package systems may instead use simply “mono”. There may be additional requirements, in particular for Debian/Ubuntu and Fedora based systems. See below for distribution specific instructions.

Mono version 5.14 (or newer) is required for Tracealyzer.

Once installed, you will need to unpack the Tracealyzer tarball into a suitable location (replace <version> to match the archive filename).

$ tar xvf Tracealyzer-<version>-linux64.tgz

Your installation is complete! You can now run Tracealyzer using the launch-tz.sh script.

$ cd Tracealyzer-<version>-linux64
$ ./launch-tz.sh

Note that Tracealyzer is currently only available for 64-bit Linux.

== Distribution-specific instructions ==

On some distributions you need to install additional libraries.
Below is a list of instructions for the distributions we have tested on.

=== Fedora 34 ===

The packages required to run Tracealyzer can be installed by the following commands.

$ sudo yum install GConf2
$ sudo yum install mono-complete

Note that the distribution maintained package for Mono might be outdated. The Mono team provides official packages that are up to date, see https://www.mono-project.com/download/stable/ for instructions.

=== Fedora 32 ===

The packages required to run Tracealyzer can installed by the following commands.

$ sudo yum install gtk2-devel
$ sudo yum install mono-complete

Note that the distribution maintained package for Mono might be outdated. The Mono team provides official packages that are up to date, see https://www.mono-project.com/download/stable/ for instructions.

=== Ubuntu 20.04 ===

The packages required to run Tracealyzer can be installed by the following commands.

$ sudo apt-get install libcanberra-gtk-module
$ sudo apt-get install mono-complete

You also need to make a symbolic link to a versionless libdl.so, using the following commands.
NOTE! If you have modified your installation, the path can potentially be different, which is why we first verify that the path is there with ls, then do the link with ln.

$ sudo ls -l /usr/lib/x86_64-linux-gnu/libdl.so.2
$ sudo ln -s /usr/lib/x86_64-linux-gnu/libdl.so.2 /usr/lib/x86_64-linux-gnu/libdl.so

Note that the distribution maintained package for Mono might be outdated. The Mono team provides official packages that are up to date, see https://www.mono-project.com/download/stable/ for instructions.

=== Ubuntu 18.04 ===

The packages required to run Tracealyzer can be installed by the following commands.

$ sudo apt-get install libcanberra-gtk-module
$ sudo apt-get install mono-complete

Note that the distribution maintained package for Mono might be outdated. The Mono team provides official packages that are up to date, see https://www.mono-project.com/download/stable/ for instructions.

=== Manjaro XFCE Edition 20.1 ===

The packages required to run Tracealyzer can be installed by the following commands.

$ sudo pacman -S gconf
$ sudo pacman -S mono-complete

Note that the distribution maintained package for Mono might be outdated, in which case you may need to build Mono yourself as the Mono team does not provide official packages. See https://github.com/mono/mono for source code and build instructions.

=== OpenSUSE Leap 15.4 ===

The packages required to run Tracealyzer can be installed by the following commands.

$ sudo zypper install gconf2
$ sudo pacman -S mono-complete

Note that the distribution maintained package for Mono might be outdated, in which case you may need to build Mono yourself as the Mono team does not provide official packages. See https://github.com/mono/mono for source code and build instructions.

=== OpenSUSE Leap 15.2 ===

The packages required to run Tracealyzer can be installed by the following commands.

$ sudo zypper install gconf2
$ sudo zypper install cairo-devel
$ sudo zypper install libpng12-0
$ sudo zypper install mono-complete

Note that the distribution maintained package for Mono might be outdated, in which case you may need to build Mono yourself as the Mono team does not provide official packages. See https://github.com/mono/mono for source code and build instructions.

=== CentOS 8 Stream ===

The packages required to run Tracealyzer can be installed by the following commands.

$ sudo yum install libXScrnSaver
$ sudo yum install mono-complete

Note that the distribution maintained package for Mono might be outdated. The Mono team provides official packages that are up to date, see https://www.mono-project.com/download/stable/ for instructions.

=== Other distributions ===

We are currently developing and testing Tracealyzer 4 on all distributions listed above.
Tracealyzer is not guaranteed to work on other distributions or versions, but we always strive for maximum compatibility with other distributions and versions.

To run Tracealyzer, you will need an up to date version of Mono with full WinForms and libgdiplus support. For most distributions, you can simply install “mono-complete” using your package manager. If no such package is available, you’ll need to manually build and install it, see https://mono-project.com/ for source downloads and instructions.

We bundle a web browser in Tracealyzer 4 based on CEF, the Chromium Embedded Framework, that has its own dependencies. In particular, it depends on libgconf 2.4 and libXss that may not be included in a fresh distribution installation. Packages for these are commonly named libgconf-2-4 and libXScrnSaver respectively.

Some distributions, including versions of Linux Mint, may not ship with a versionless libdl.so, but only libdl.so.2, causing Tracealyzer to fail to start with a Failed To Initialize CEF message. A workaround for this is to create a symlink in the Tracealyzer application directory called libdl.so and point it to /path/to/libdl.so.2:

$ ln -s /path/to/libdl.so.2 libdl.so

In case you have problems getting started, please contact support@percepio.com.

== Licenses ==

By default, Tracealyzer 4 on Linux will install the license for the current user. If the machine is shared between multiple users, it may be desireable to install the license machine wide instead. To do so, copy License.xml (node locked license) or LMConfig.xml (floating license) from ~/.config/Tracealyzer Data to /usr/share/Tracealyzer Data.

If you have questions about Tracealyzer licensing, please contact sales@percepio.com.

== SEGGER J-Link support ==

To use the built-in support for SEGGER J-Link debuggers, you’ll first need to download and install the J-Link Software and Documentation Pack from SEGGER’s website. When starting Tracealyzer, the default path to SEGGER J-Link debugger libraries is included (/opt/SEGGER/JLink). If Tracealyzer still fails to find it, you may also need to create a link to libjlinkarm.so in your Tracealyzer application directory.

$ ln -s /path/to/JLink_Linux_<version>/libjlinkarm.so /path/to/Tracealyzer-<version>-linux64/libjlinkarm.so