Driver Installation
Install the Synnax Driver on a separate machine from the Synnax Core.
The Synnax Driver can also be installed as a separate binary, making it possible to integrate data acquisition hardware from multiple host machines into a single Synnax deployment.
Step 1 Installation
To get started, you’ll need to install the Synnax Driver. Choose your operating system below to see the installation instructions:
Install and Run the Driver
To install the Synnax Driver on a Linux distribution, run the following command to download the latest binary:
curl -LO github.com/synnaxlabs/synnax/releases/download/synnax-v0.47.0/synnax-driver-v0.47.0-linux We recommend you move the binary into a directory that is in your PATH. Most of our
users use /usr/local/bin:
sudo mv synnax-driver-* /usr/local/bin/synnax-driver If usr/local/bin is not in your PATH, you can temporarily add it by running the
following:
export PATH=$PATH:/usr/local/bin Or, you can add it permanently using the following one-liner for your shell:
echo 'export PATH=$PATH:/usr/local/bin' >> ~/.bashrc Or, for zsh:
echo 'export PATH=$PATH:/usr/local/bin' >> ~/.zshrc Next, give execution permissions to the binary:
chmod +x /usr/local/bin/synnax-driver You may need to use sudo to run the above command if you do not have the necessary
permissions.
To verify that the installation was successful, run:
synnax-driver --version Install and Run the Driver
To install the Synnax Driver on macOS, run the following command to download the latest binary:
curl -LO github.com/synnaxlabs/synnax/releases/download/synnax-v0.47.0/synnax-driver-v0.47.0-macos We recommend you move the binary into a directory that is in your PATH. Most of our
users use /usr/local/bin:
sudo mv synnax-driver-* /usr/local/bin/synnax-driver If usr/local/bin is not in your PATH, you can temporarily add it by running the
following:
export PATH=$PATH:/usr/local/bin Or, you can add it permanently using the following one-liner for your shell:
echo 'export PATH=$PATH:/usr/local/bin' >> ~/.zshrc Next, give execution permissions to the binary:
chmod +x /usr/local/bin/synnax-driver You may need to use sudo to run the above command if you do not have the necessary
permissions.
To verify that the installation was successful, run:
synnax-driver --version Install and Run the Driver
Download the latest Synnax Driver executable for Windows:
Invoke-WebRequest -Uri "https://github.com/synnaxlabs/synnax/releases/download/synnax-v0.47.0/synnax-driver-v0.47.0-windows.exe" -OutFile "synnax-driver.exe" After downloading, move the synnax-driver.exe file to a location on your system, such
as C:\Program Files\Synnax\.
To make the Driver accessible from any command prompt, add the directory to your
system’s PATH:
- Open the Start menu and search for “Environment Variables”
- Click “Edit the system environment variables”
- Click the “Environment Variables” button
- Under “System variables”, find and select “Path”, then click “Edit”
- Click “New” and add the directory containing
synnax-driver.exe - Click “OK” to save
To verify that the installation was successful, open a new PowerShell terminal and run:
synnax-driver --version Prerequisites
Supported Hardware & Software
The Synnax Driver supports the cRIO-904x and cRIO-905x families of controllers running NI Linux Real-Time 2024 Q1 and later.
NI-DAQmx Programming Mode
Data acquisition hardware connected to the cRIO must be configured to use the NI-DAQmx real-time programming mode.
To change the programming mode, use NI Measurement & Automation Explorer (NI MAX). For detailed instructions, see the NI CompactRIO User Manual and the NI-DAQmx on CompactRIO guide.
SSH Access
The easiest way to install the Driver is to use an SSH connection to the cRIO. Once the Driver is installed, SSH can be disabled, although we recommend keeping it enabled to install updates and manage the Driver.
Network Available Synnax Core
In order to function properly, the Driver must be able to connect to a Synnax Core running on the same network. Make sure you have a Core running and have the connection parameters on hand.
Install and Run the Driver
Installing the Driver is as simple as opening an SSH connection to the cRIO and running the following command:
curl -LO github.com/synnaxlabs/synnax/releases/download/synnax-v0.47.0/install-driver-nilinuxrt.sh && chmod +x install-driver-nilinuxrt.sh && ./install-driver-nilinuxrt.sh This will download, install, and start the Driver. Once the Driver is installed, we’ll need to configure it to connect to your Core.
Step 2 Connect to the Synnax Core
To connect to a Core, you’ll need to know the Core’s IP address, port, username, and
password. Then run the synnax-driver login command:
synnax-driver login This will prompt you to enter the Core’s connection parameters. Once you’ve entered the parameters, the Driver will automatically connect to the Core. Here’s an example of the output:
synnax-driver login
host (default: localhost): 10.0.0.45
port (default: 9090): 9090
username: synnax
password:
I20250318 04:57:06.681439 25261 login.cpp:47] connecting to Synnax at 10.0.0.45:9090
I20250318 04:57:06.792840 25261 login.cpp:53] successfully logged in!
I20250318 04:57:06.793918 25261 login.cpp:59] credentials saved successfully Step 3 Check the Driver Status
As a final step, you can check the Driver’s status by running the synnax-driver status
command:
synnax-driver status This will print the Driver’s status to the console. Here’s an example of the output:
I20250318 05:07:04.312907 5935 daemon_nilinuxrt.cpp:490] Checking service status
I20250318 05:07:04.346398 5937 version.cpp:21] Synnax Driver v0.39.0 (2025-03-16 00:08:18)
Synnax Driver is running (PID: 28191) Configuration Methods
In addition to using the synnax-driver login command, the Synnax Driver also allows
you to configure parameters for the Driver via a configuration file and/or environment
variables.
Precedence
The precedence of the different configuration methods is as follows, with earlier methods taking precedence over later ones:
- Command line arguments (Highest)
- Environment variables
- Configuration file
- Parameters passed to the
synnax-driver logincommand - Internal defaults (Lowest)
Configuration File
The Synnax Driver can optionally read connection parameters from a JSON configuration file with the following format:
{
// Connection parameters
"connection": {
// The host of the Synnax Core.
"host": "localhost",
// The port of the Synnax Core.
"port": 9090,
// The username to use when logging in to the Synnax Core.
"username": "synnax",
// The password to use when logging in to the Synnax Core.
"password": "password",
// The path to the CA certificate file to use when connecting
// to the Synnax Core. This is only required if the Core
// is configured to use TLS.
"ca_cert_file": "/path/to/ca.crt",
// The path to the client certificate file to use when connecting
// to the Synnax Core. This is only required when the Core is
// configured to use TLS and client certificates for authentication.
"client_cert_file": "/path/to/client.crt",
// The path to the client key file to use when connecting to the
// Synnax Core. This is only required when the Core is configured
// to use TLS and client certificates for authentication.
"client_key_file": "/path/to/client.key"
},
"timing": {
// Enable automatic skew correction for the Driver.
"correct_skew": true
}
} Environment Variables
The Synnax Driver also supports setting connection parameters via environment variables.
# The host of the Synnax Core.
export SYNNAX_DRIVER_HOST=localhost
# The port of the Synnax Core.
export SYNNAX_DRIVER_PORT=9090
# The username to use when logging in to the Synnax Core.
export SYNNAX_DRIVER_USERNAME=synnax
# The password to use when logging in to the Synnax Core.
export SYNNAX_DRIVER_PASSWORD=password
# The path to the CA certificate file to use when
# connecting to the Synnax Core. This is only required
# if the Core is configured to use TLS.
export SYNNAX_DRIVER_CA_CERT_FILE=/path/to/ca.crt
# The path to the client certificate file to use when
# connecting to the Synnax Core. This is only required when
# the Core is configured to use TLS and client certificates
# for authentication.
export SYNNAX_DRIVER_CLIENT_CERT_FILE=/path/to/client.crt
# The path to the client key file to use when connecting to
# the Synnax Core. This is only required when the Core is
# configured to use TLS and client certificates for authentication.
export SYNNAX_DRIVER_CLIENT_KEY_FILE=/path/to/client.key
# Enable automatic clock skew correction for the Driver.
export SYNNAX_DRIVER_CORRECT_SKEW=true CLI Reference
Start
The start command starts the Driver as a background process on the host machine.
Example Usage
synnax-driver start To start the Driver as a foreground process, use the --standalone flag:
synnax-driver start --standalone Flags
| Flag | Default | Description |
|---|---|---|
--standalone/-s | false | Run the Driver directly within the terminal process. |
--config/-c | "config.json" | The path to the configuration file to use for the Driver. |
--debug | false | Enable debug logging. |
--host | "localhost" | The host of the Synnax Core. |
--port | 9090 | The port of the Synnax Core. |
--username | "synnax" | The username to use when logging in to the Synnax Core. |
--password | "seldon" | The password to use when logging in to the Synnax Core. |
--ca-cert-file | "" | The path to the CA certificate file to use when connecting to the Synnax Core. |
--client-cert-file | "" | The path to the client certificate file to use when connecting to the Synnax Core. |
--client-key-file | "" | The path to the client key file to use when connecting to the Synnax Core. |
--correct-skew | true | Enable automatic clock skew correction for the Driver. |
Stop
The stop command stops the Driver.
Example Usage
synnax-driver stop Restart
The restart command restarts the Driver. This is equivalent to stopping and then
starting the Driver.
Example Usage
synnax-driver restart Login
The login command logs in to a Synnax Core.
Example Usage
synnax-driver login This will prompt you to enter the Core’s connection parameters. Once you’ve entered the parameters, the Driver will automatically connect to the Core. Here’s an example of the output:
synnax-driver login
host (default: localhost): 10.0.0.45
port (default: 9090): 9090
username: synnax
password: Clear
The clear command clears connection parameters configured through the login command.
Example Usage
synnax-driver clear Status
The status command prints the Driver’s status to the console.
Example Usage
synnax-driver status Uninstall
The uninstall command uninstalls the Driver.
Example Usage
synnax-driver uninstall Logs
The logs command prints the Driver’s logs to the console.
Example Usage
synnax-driver logs Version
The version command prints the Driver’s version to the console.
Example Usage
synnax-driver version