How to Switch between NI-DAQmx Base and NI-DAQmx on Linux

Updated Oct 16, 2019

Reported In

Driver

  • NI-DAQmx
  • NI-DAQmx Base 3.0
  • NI-DAQmx Base 2.2
  • NI-DAQmx Base 3.5
  • NI-DAQmx Base 1.4

Issue Details

My Linux machine has DAQmx and DAQmx Base. How do I specify which driver my DAQ board will use?

Solution

DAQmx 8.0.2

If DAQmx 8.0.2 and DAQmx Base are both installed on a Linux machine, your DAQ boards will always be operated by the DAQmx driver. This is because of the order in which the drivers are loaded. DAQmx is loaded first, so it will control the board. You can make a board usable in DAQmx Base by editing the DAQmx INF files. 

Basically, when the DAQmx driver loads, if the board is found in a DAQmx INF file then the board will be used by DAQmx. If the board is not found in a DAQmx INF file, then the DAQmx Base driver can operate it. This means that if you want a board to be found in DAQmx Base, you need to comment it out of the DAQmx INF file.

There are several DAQmx INF files for the various boards. These INF files are found in/usr/local/natinst/nidaqmx/etc/ . Once you find the board you would like to use in DAQmx Base, you must comment out its three lines in the [DeviceList] section. Use the semicolon ( ; ) to comment out lines. Once you have saved the edited INF file, you must reboot the computer so that the changes can take effect. If you want the board to be usable in DAQmx again, simply edit the INF file to un-comment those lines and reboot.

Devices that are not supported in DAQmx 8.0 for Linux (USB, PCMCIA, etc...) do not need to be commented out in the DAQmx INF files. These devices will work in DAQmx Base automatically.

List of INF files found in /usr/local/natinst/nidaqmx/etc/ :
  • nidaqmx_nidaq2.inf—E Series Multifunction DAQ
  • nidaqmx_nidaq3.inf—E Series Multifunction DAQ
  • nidaqmx_NIES9x.inf—E Series Multifunction DAQ
  • nidaqmx_NIXs9x.inf—M Series Multifunction DAQ
  • nidaqmx_NIDSA9x.inf—Dynamic Signal Acquisition (DSA)
  • nidaqmx_NISS9x.inf—S Series Multifunction DAQ
  • nidaqmx_NITIO9x.inf—TIO Counter/Timer
  • nidaqmx_NIWF9x.inf—Waveform Generation
  • nidaqmx_NIDS9x.inf—High Speed Digital

Sample code for making the PCI-6251 available for DAQmx Base: 
[Device List]
%PCIe-6251.dDesc0%=PCIe-6251.Cfg,PCI\VEN_1093&DEV_717D
%PCIe-6251.dDesc1%=PCIe-6251.Cfg,PCI\VEN_1093&DEV_717D&SUBSYS_00000000&REV_00
%PCIe-6251.dDesc2%=PCIe-6251.Cfg,PCI\VEN_1093&DEV_717D&SUBSYS_717D1093
;%PCI-6251.dDesc0%=PCI-6251.Cfg,PCI\VEN_1093&DEV_70B8
;%PCI-6251.dDesc1%=PCI-6251.Cfg,PCI\VEN_1093&DEV_70B8&SUBSYS_00000000&REV_00
;%PCI-6251.dDesc2%=PCI-6251.Cfg,PCI\VEN_1093&DEV_70B8&SUBSYS_70B81093

%PCI-6224.dDesc0%=PCI-6224.Cfg,PCI\VEN_1093&DEV_70F2
%PCI-6224.dDesc1%=PCI-6224.Cfg,PCI\VEN_1093&DEV_70F2&SUBSYS_00000000&REV_00
%PCI-6224.dDesc2%=PCI-6224.Cfg,PCI\VEN_1093&DEV_70F2&SUBSYS_70F21093

DAQmx 18.1 and newer

If DAQmx 18.1 or newer and DAQmx Base are both installed on a Linux machine, your DAQ boards will always be operated by the DAQmx driver.  The listed above 8.0.2 workaround will work for PXI/PCI devices, but will not work for USB devices.  If you wish to use USB devices with DAQmx Base do not install DAQmx 18.1 or newer.

Additional Information

Note:  The last version of the NI-DAQmx Base driver available for download is 15.0. Please check compatibility for Windows , Linux, and macOS for supported versions of this driver. Starting 2018, NI-DAQmx for Linux is included with the NI Linux Device Drivers . For more information, please read the End-of-Life Announcement for DAQmx Base Driver .

WAS THIS ARTICLE HELPFUL?

Not Helpful