Install a standalone Driver
Install the Synnax Driver on a computer other than the Core, log it in to the Core, and start it.
Each Core includes the Driver, which connects the devices on the Core’s computer. To connect devices on a different computer, install a standalone Driver on that computer. It connects to one Core over the network.
Step 1Install the Driver
NI Linux Real-Time
Linux
Windows
macOS
Before you install:
- Set the data acquisition modules of the controller to the NI-DAQmx real-time programming mode in NI MAX. See the NI CompactRIO user manual.
- Turn on SSH on the controller. You can turn it off after you install the Driver.
Open an SSH connection to the controller and log in as admin. On NI Linux Real-Time,
admin is root, so the commands on this page need no sudo there. Run:
curl -LO https://github.com/synnaxlabs/synnax/releases/download/driver/v0.60.1/install-driver-nilinuxrt.sh && chmod +x install-driver-nilinuxrt.sh && ./install-driver-nilinuxrt.shThe script installs the Driver as a service and starts it. The service also starts each time the controller starts. The Driver runs as root.
The Driver needs a recent glibc. See Requirements for the supported Linux versions.
Download the Driver:
curl -LO https://github.com/synnaxlabs/synnax/releases/download/driver/v0.60.1/synnax-driver-v0.60.1-linuxMove it into a folder on your PATH, and make it executable:
sudo mv synnax-driver-v0.60.1-linux /usr/local/bin/synnax-driversudo chmod +x /usr/local/bin/synnax-driverInstall the systemd service:
sudo synnax-driver installThe install command creates a synnax system user, the empty environment file
/etc/synnax/driver.env, and the synnax-driver service. It copies the binary to
/var/lib/synnax-driver/bin/, which the synnax user owns, and makes
/usr/local/bin/synnax-driver a link to it. It does not start the service. It gives the
service real-time permission and writes the udev rule
/etc/udev/rules.d/99-synnax-driver-latency.rules, so Arc automations can run with
precise timing.
For EtherCAT,
it gives the service raw Ethernet access and writes the udev rule
/etc/udev/rules.d/99-synnax-driver-ethercat.rules. After you upgrade the Driver, run
sudo synnax-driver install again.
Download the Driver:
Invoke-WebRequest -Uri "https://github.com/synnaxlabs/synnax/releases/download/driver/v0.60.1/synnax-driver-v0.60.1-windows.exe" -OutFile "synnax-driver.exe"Move synnax-driver.exe to a permanent folder, such as C:\Program Files\Synnax\. Then
add that folder to the Path system environment variable, so that each terminal can run
synnax-driver.
Open a new terminal as administrator, and install the Windows service:
synnax-driver installThe install command copies the binary to C:\Program Files\Synnax Driver\ and creates
the SynnaxDriver service, which runs that copy. The service runs as LocalSystem and
starts with the computer. Windows restarts it when it stops with an error. install
does not start the service. To upgrade the Driver, replace the binary, run install
again, and start the service.
Download the Driver:
curl -LO https://github.com/synnaxlabs/synnax/releases/download/driver/v0.60.1/synnax-driver-v0.60.1-macosMove it into a folder on your PATH, and make it executable:
sudo mv synnax-driver-v0.60.1-macos /usr/local/bin/synnax-driversudo chmod +x /usr/local/bin/synnax-driverInstall the launchd service:
sudo synnax-driver installThe install command copies the binary to
/Library/Application Support/synnax-driver/bin/, creates the service
com.synnaxlabs.driver in /Library/LaunchDaemons, which runs that copy, and creates
the empty environment file /etc/synnax/driver.env. The service runs as root and starts
with the computer. launchd restarts it when it stops with an error. install does not
start the service. After you upgrade the Driver, run sudo synnax-driver install again,
and start the service.
Check the installation:
synnax-driver versionThe output ends with the version:
Synnax Driver v0.60.1Step 2Log in to the Core
You need the username and password of a user who can create racks. Run login with
admin rights, so that the service reads the login: with sudo on Linux and macOS, in an
administrator terminal on Windows, and as admin with no sudo on NI Linux Real-Time:
sudo synnax-driver loginThe command asks for the address of the Core, and checks that it can reach the Core. Then it asks for the username and the password:
Host [localhost]: 10.0.0.45
Port [9090]:
Secure (Y/N) [N]:
Username: driver
Password:The command then creates a rack for the Driver and an API key for that rack. It saves
only the API key, never the password, and the Driver logs in as its rack with the key.
When the output shows API key saved successfully!, the Driver is logged in.
An upgraded Driver that saved a username and password does this at its first start, and
keeps its rack. If that user cannot create racks, the Driver logs the warning
Failed to enroll Driver, and keeps logging in with the password. To fix it, run
login as a user that can create racks, or create an API key for the rack in the
Console and set it as api_key in the
configuration.
Log in to a Core that uses TLS
Answer Y to Secure when the Core uses TLS, and give the host name of the
certificate, not an IP address. A certificate from a public authority, such as Let’s
Encrypt, needs no more setup.
For a certificate from your own authority, or from a Core that runs with --auto-cert:
- Linux, NI Linux Real-Time, and Windows -> add the CA certificate to the trust store of the operating system. See Install certificates.
- macOS -> the Driver does not read the macOS keychain. See the macOS tab of
Install the certificate.
Set
GRPC_DEFAULT_SSL_ROOTS_FILE_PATHin/etc/synnax/driver.env, before you runlogin.
On Linux and NI Linux Real-Time, you can instead set the same variable in
/etc/synnax/driver.env, before you run login. See
Environment file. The
Driver then trusts only the certificates in that file.
Step 3Start the Driver
NI Linux Real-Time
Linux
Windows
macOS
The Driver started before you logged in, so restart it:
synnax-driver restartSet the service to start when the computer starts, then start it:
sudo systemctl enable synnax-driver
sudo synnax-driver startIn an administrator terminal, start the service:
synnax-driver startStart the service:
sudo synnax-driver startStep 4Check the Driver
NI Linux Real-Time
Linux
Windows
macOS
Check the service:
synnax-driver statusA running Driver prints:
Synnax Driver is running (PID: 28191)Check the service:
synnax-driver statusCheck the service:
synnax-driver statusA running Driver prints:
Synnax Driver is running (PID: 28191)Check the service:
sudo synnax-driver statusThe Driver shows in the devices toolbar under the host name of its computer. To connect devices to it, see Devices.