Multifunction DAQ

cancel
Showing results for 
Search instead for 
Did you mean: 

DAQmx Driver Issues With Linux

There are several outstanding DAQmx driver issues (using the C Library API - NOT LabView) that exist for Linux users. One of the issues is that there were changes made to real-time scheduling with the release of the 5.10 Linux kernel that was problematic for all DAQ's (not just National Instruments). For example, I use a Measurement Computing board that experienced an interrupt issue starting with the 5.10 kernel that could only be resolved by setting 'sysctl -w kernel.sched_rt_runtime_us=-1' but this does not work with the NI board and the closed-source API. This is documented on these boards via this post:

 

https://forums.ni.com/t5/Multifunction-DAQ/NI-6361-Linux/td-p/4185863

 

So the DAQmx driver does not work on kernels 5.10 and higher. This is obviously an issue for Linux users, since as of the time posting this the current Linux kernel is 6.7. Does anyone working for NI plan on addressing this issue?

 

In addition, there is another issue with the DAQmx driver that does not allow the user to run fork/exec within a process where an NI board is initialized via the API. If a task is started, any calls to fork or system basically seg faults. This is not documented on these boards (as far as I can find), but it is documented on a GitHub page for a Python API for interacting with NI-DAQmx:

 

https://github.com/ni/nidaqmx-python/issues/161

 

There one of the developers states: "It appears that some internal implementation detail is doing "too much" between the fork and the exec which is causing issues." Is anyone at NI aware of this issue and is a fix or patch going to be implemented?

 

Both of these issues are problematic for me as an NI customer using DAQmx in a Linux environment and it would be appreciated if someone that has access to the driver API could determine the issues with both of these problems and patch them.

0 Kudos
Message 1 of 2
(1,188 Views)

In addition, for anyone needing to know what happens with the driver with a Linux kernel of 5.10 or higher, it is this:

 

DAQmx Error: Onboard device memory overflow. Because of system and/or bus-bandwidth limitations, the driver could not read data from the device fast enough to keep up with the device throughput.
Reduce your sample rate. If your data transfer method is interrupts, try using DMA or USB Bulk. You can also use a product with more onboard memory or reduce the number of programs your computer is executing concurrently.


Task Name: Analog Input Task

 

Status Code: -200010

 

SOLUTION - Need to downgrade to below Linux Kernel 5.10, as the driver does not work with that kernel or any higher yet.

0 Kudos
Message 2 of 2
(1,134 Views)