# Linux Installation

{% hint style="info" %}
**NOTE:**  The following instructions are specific to **Ubuntu 18.04**.  Installation on other Linux distributions will have the same dependency requirements but possibly with different commands (e.g. package managers, etc.).
{% endhint %}

## libstdc++.so.6 (required)

[Symbol version GLIBCXX\_3.4.26](https://gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html) is required, which is packaged with GCC 9.1 (or a newer version if you prefer).  GCC 9 can be installed on Ubuntu 18.04 using:

```bash
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update
sudo apt install g++-9
```

## TurboJPEG 3.x (optional)

This dependency is for retrieving JPEG compressed data transmitted from the Ethernet DAQ or loaded from a saved data file.  It is not needed when capturing data via the PCIe interface, because this interface does not support JPEG compression.  Download the latest version (64 bit) of *libjpeg-turbo* from <https://sourceforge.net/projects/libjpeg-turbo/files/> and build from source or install using the package manager.  For example, on x64 Debian/Ubuntu-based distributions:

```bash
wget https://sourceforge.net/projects/libjpeg-turbo/files/3.0.1/libjpeg-turbo-official_3.0.1_amd64.deb
sudo dpkg -i libjpeg-turbo-official_3.0.1_amd64.deb
```

This will copy files to `/opt/libjpeg-turbo/`.  The library file *libturbojpeg.so* must be in your linker search path, so create a symlink using:

```bash
sudo ln -s /opt/libjpeg-turbo/lib64/libturbojpeg.so /usr/lib/x86_64-linux-gnu/
```

## libpcap (optional)

This dependency is for data capture from the DAQ via Gigabit Ethernet interface.  It is not needed when capturing via the PCIe interface.

```bash
sudo apt-get install libpcap-dev
```

{% hint style="info" %}
**NOTE:**  Remember to [configure the network adapter](/axsun-knowledge-base/guides/integrated-engine/making-connections.md#communication-and-data-interfaces) which is connected to your Ethernet DAQ using a static (Manual) IPv4 Address of **192.168.10.1** and a Netmask of 255.255.255.0
{% endhint %}

![](/files/-MjB51Drjeo-hkUdkh9L)

{% hint style="info" %}
**NOTE:**  libpcap requires elevated privileges to the socket for capturing network traffic.  Run applications as root using **`sudo ./<application_name>`** or [set the file capabilities](https://unix.stackexchange.com/questions/189750/how-can-i-run-script-without-root-to-sniff-network-libpcap) for the application using **`sudo setcap cap_net_raw,cap_net_admin=eip <application_name>`** Otherwise you will get an error *"Failed to setup packet capture. (socket: Operation no permitted)"*  when selecting the Ethernet interface.
{% endhint %}

## Windriver PCIe driver (optional)

This dependency is for data capture from the DAQ via PCIe interface.  It is not needed when capturing via the Ethernet interface.  An additional license is required to use the PCIe interface on Linux OS.  Please [contact us](/axsun-knowledge-base/other/getting-help.md) to inquire about pricing.  These instructions are for [Windriver version 1600](https://www.jungo.com/st/support/documentation/windriver/16.0.0/html/index.html).

**Prerequisite**:  you must have **GCC** and **make** installed on your system.  If you installed GCC 9 via the ppa according to the instructions above, you may need to "update-alternatives":&#x20;

```bash
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 100 --slave /usr/bin/g++ g++ /usr/bin/g++-9 --slave /usr/bin/gcov gcov /usr/bin/gcov-9
sudo apt install make
```

Copy the [downloaded ](/axsun-knowledge-base/other/downloads.md#pcie-device-driver)archive (e.g. *WD1600LNX86\_64.tar.gz*) to your desired installation directory and execute the following commands to extract, build, and install the kernel driver and associated shared library:

```bash
tar xvzf WD1600LNX86_64.tar.gz    # extract archive
cd WD1600LNX86_64/redist/         # change to 'redist' directory
./configure                       # configure makefile
sudo make install                 # build and install    
```

Create a symlink from the library file (*libwdapi1600.so*) to a location in the linker's search path.  Use an absolute path to the library file:

```bash
sudo ln -s /<abs_path>/WD1600LNX86_64/lib/libwdapi1600.so /usr/lib/x86_64-linux-gnu/
```

Load the kernel driver module and change its permissions:

```bash
cd ../util                        # change to 'util' directory
sudo ./wdreg windrvr1600          # load the kernel module with wdreg script
sudo chmod go+w /dev/windrvr1600  # change permissions on the loaded device
```

{% hint style="info" %}
**NOTE:**  Loading the kernel module and changing permissions needs to be repeated after every system reboot.  If desired, this process can be scripted to execute automatically using the **systemd** utility as discussed [here](https://unix.stackexchange.com/questions/47695/how-to-write-startup-script-for-systemd/47715#47715).&#x20;
{% endhint %}

Copy the license file *windrvrlicense.txt* (provided by Excelitas-Axsun) to `/etc/axsun/`

```bash
# from a directory containing the license file...
sudo mkdir /etc/axsun                    # create 'axsun' directory in /etc
sudo cp windrvrlicense.txt /etc/axsun/   # copy license file
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.axsun.com/axsun-knowledge-base/api-references/axsunoctcapture.dll/linux-installation.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
