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

Updated Jan 8, 2018

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

If DAQmx 8.0 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

 

WAS THIS ARTICLE HELPFUL?

Not Helpful