In order to use NI-RIO on Linux, you need a Windows system to develop your LabVIEW FPGA application. You must compile a bitfile, generate headers with the FPGA Interface C API Generator or FPGA Interface Python API, and then move the application to your Linux system.
NI provides a repository add-on for all supported drivers that you can install using your Linux distribution's native package manager.
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.
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.
Complete the following steps to remotely access RIO devices on your Linux system from another system with NI-RIO installed:
[General] RpcServerPort=11296 DeviceAccess="-*;+10.0.29.54"
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="+*"
In order to create RIO aliases to local or remote RIO devices, you must edit the nirio.ini file at /var/local/natinst/nirio/etc/. Add an [Aliases] section if one does not already exist. For each alias, there must be a separate line in the [Aliases] section that follows the ="" format. The following example specifies both a local and remote alias:
[Aliases] foo="RIO0" bar="rio://mycrio/RIO0"
Note: Aliases must contain only alphanumerics, '-', and '_'.
Next, change the following version lines to 0:
[General] MajorVersion=0 MinorVersion=0
This will trigger nirio.ini to be updated the next time it is used. After running lsni, you should see that the [Aliases] section is removed and instead there will be a new section for each new alias.
NI-RIO for Linux works with all PXI and PXI Express controllers and chassis.
Some features discussed in the NI-RIO documentation are unavailable on Linux.