From Saturday, Nov 23rd 7:00 PM CST - Sunday, Nov 24th 7:45 AM CST, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

NI-RIO for Linux/x86 64-bit Architecture 2023 Q3 Readme

July 2023

This file contains installation instructions and compatibility information for NI-RIO 2023 Q2.

You can find more release information on ni.com.


System Requirements

Supported Hardware

Installation Instructions

Using the NI-RIO Driver and FPGA Interface LabVIEW API

Using the NI-RIO Driver and FPGA Interface C API

Using the NI-RIO Driver and FPGA Interface Python API

Using the NI-RIO Driver and FPGA Interface Python API

Using the NI-RIO Server

Using RIO Aliases

Linux Limitations


System Requirements

NI-RIO for Linux/x86 64-bit Architecture has been tested on the following distributions:

  • openSUSE Leap 15.4
  • openSUSE Leap 15.3
  • Red Hat Enterprise Linux 9
  • Red Hat Enterprise Linux 8
  • Ubuntu 22.04
  • Ubuntu 20.04

Supported Hardware

Visit NI Hardware and Operating System Compatibility to view driver, desktop operating system, and real-time operating system support for individual hardware devices.

To view information for your device:

  • Select your hardware model in the dropdown list on the page to view compatibility information for your device.
  • Type your hardware model number in the dropdown list on the web page to filter the list of available devices.

Note: Some compatibility information may only be available in the archive attached to the NI Hardware and Operating System Compatibility page. For historic driver and OS support information, refer to the readme for the relevant driver version.

Installation Instructions

NI provides a repository add-on for all supported drivers that you can install using your Linux distribution's native package manager.

  1. Visit ni.com/info and enter the Info Code LinuxRepository.
  2. Download the installer for the repository add-on for your Linux distribution.
  3. Install the repository add-on using the rpm command.
  4. Select and install the following packages through your Linux distribution's package manager:
    • For R Series support, install ni-rseries
    • For CompactRIO MXIe Support, install ni-rio-mxie
    • For remote FPGA access to CompactRIO targets, install ni-compactrio
  5. If you are using a PXI or MXI system, install ni-pxiplatformservices.

Using the NI-RIO Driver and FPGA Interface LabVIEW API

Currently the LabVIEW Interface supports R Series RIO devices on Linux Desktop. You must begin development on a computer that runs Windows. Use LabVIEW FPGA to develop and build an FPGA VI that runs on a RIO device. Next, copy the resulting bitfile and host VI from Windows to your Linux desktop. On your Linux Desktop, open the block diagram of the host VI, change the configuration of Open VI Reference to Bitfile, and select the corresponding bitfile. Run the host VI to deploy the bitfile and interact with the FPGA application.

When you open the examples for NI-RIO in LabVIEW, they might appear to be broken and search for missing files. This is expected until the configuration of Open VI Reference is changed to Bitfile.

To find the RIO devices present on your system that can be used in your application, use the command lsni -v.

Using the NI-RIO Driver and FPGA Interface C API

You must begin development on a computer running Windows. Use LabVIEW FPGA to develop and build an FPGA VI that runs on a RIO device. Use the FPGA Interface C API Generator to create the C source files for your application. Visit ni.com/r/fpgainterfacecapi to get the latest version of the FPGA Interface C API Generator. Then copy the generated files to the Linux machine to begin development of C/C++ code for your application. For information about using the FPGA Interface C API, visit the NI Documentation Portal.

To find the RIO device you are using in your application, use the command lsni -v to list information on all NI devices in the system.

Using the NI-RIO Driver and FPGA Interface Python API

You must begin development on a computer running Windows. Use LabVIEW FPGA to develop and build an FPGA VI that runs on a RIO device. Copy the compiled bitfile (.lvbitx) over to your Linux machine and follow the steps at github.com/ni/nifpga-python to get started.

Using the NI-RIO Server

Complete the following steps to remotely access RIO devices on your Linux system from another system with NI-RIO installed:

  1. Select a port for the NI-RIO server to use. The default port is 11296.
  2. Configure the system firewall to allow TCP connections through the selected port.
  3. Edit the nirio.ini file at /var/lib/nirio/ini/ to specify both the selected port and the users allowed to access the device. The following example specifies the default port, 11296, and allows only users at the IP address 10.0.29.54 to have access to the device:
       [General]
       RpcServerPort=11296
       DeviceAccess="-*;+10.0.29.54"
    
  4. Execute NiRioRpcServer at /usr/bin/nirioserver/.

Note that the DeviceAccess variable is defined by a semicolon-delimited list of qualifiers, IP addresses, DNS hostnames, and wildcard patterns. To determine whether a remote system has access to RIO devices on this system, the RIO server looks for an entry in the list that matches the remote system. The "+" qualifier allows access, and the "-" qualifier denies access. The RIO server uses the last matching entry in the list to determine whether to allow or deny access. If no entry matches the remote system, the RIO server denies access. For example, if the list is empty, all remote systems are denied access. The first argument in the example above explicitly denies remote access from any IP address. The second argument allows access from the IP address 10.0.29.54. To allow access from multiple IP addresses, define DeviceAccess as follows:

DeviceAccess="+10.0.29.54;+10.0.35.42"

To allow access from any IP address on the network, define DeviceAccess as follows:

DeviceAccess="+*"

Using RIO Aliases

The nisyscfg python API can be used to rename the RIO devices. To install the nisyscfg python API, use your package manager to install ni-syscfg-runtime and follow the instructions at tkrebes/nisyscfg-python. Once installed, modify and run the following script in python to rename your device.

      import nisyscfg
with nisyscfg.Session() as session:
filter = session.create_filter()
filter.expert_name = "ni-rio"
for resource in session.find_hardware(filter):
print(resource.expert_user_alias[0])
if [is the correct device to rename]:
resource.rename("MyDeviceName")
print(resource)
The RIO aliases must contain only alphanumerics, '-', and '_'.

Linux Limitations

Some features discussed in the NI-RIO documentation are unavailable on Linux.

  • NI-RIO supports two application development environments:
    • LabVIEW 2023 Q1 and later
    • Python 3.7+
    • C and C++ (gcc)
  • NI-RIO does not support other ADEs, such as the LabVIEW Real-Time Module, LabWindows/CVI, Microsoft Visual C/C++, or Microsoft Visual Basic.
  • While NI-RIO includes LabVIEW VIs, it does not provide other graphical utilities that are available for other operating systems:
    • LabVIEW Express VIs
    • The Measurement and Automation Explorer (MAX) graphical configuration utility. Refer to DEVICE CONFIGURATION in the Installation section for information about configuring your device in Linux.
    • Soft front panels.
  • When using NI-RIO in a PXI system:
    • Control through MXI-4 is supported
    • Control through MXI-3 is not supported
  • External calibration functions are not supported. Refer to your hardware documentation for information about external calibration, and refer to ni.com/calibration. If your NI-RIO requires external calibration, either perform the calibration on a Windows system, or hire NI or an independent calibration laboratory to perform the calibration.