Multifunction DAQ

cancel
Showing results for 
Search instead for 
Did you mean: 

Linux DAQmx base and dlopen

Hi,

I want to use DAQmx base on Linux inside a plugin which is loaded with dlopen().
But when loading the plugin with the DAQmx base libraries
(-lnidaqmxbase -lnidaqmxbaselv -llvrtdark) it hangs inside dlopen. When running
the examples coming with DAQmx base everything works (I am using the USB-6009 device).
When I remove the DAQmx base libraries, dlopen() does not hang.

When looking with strace what happens, the "hang" happens at the following point:
[... a lot of function calls, some DAQmx base libraries are loaded without problems ]
access("/usr/local/lib/liblvrt.so", R_OK) = 0
lstat64("/usr", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat64("/usr/local", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0
lstat64("/usr/local/lib", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat64("/usr/local/lib/liblvrt.so", {st_mode=S_IFLNK|0777, st_size=14, ...}) = 0
readlink("/usr/local/lib/liblvrt.so", "liblvrt.so.7.0", 4096) = 14
lstat64("/usr/local/lib/liblvrt.so.7.0", {st_mode=S_IFLNK|0777, st_size=26, ...}) = 0
readlink("/usr/local/lib/liblvrt.so.7.0", "LabVIEW-7.0/liblvrt.so.7.0", 4096) = 26
lstat64("/usr/local/lib/LabVIEW-7.0", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat64("/usr/local/lib/LabVIEW-7.0/liblvrt.so.7.0", {st_mode=S_IFREG|0644, st_size=7328464, ...}) = 0
clone(child_stack=0xb6651b48, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID|CLONE_DETACHED, parent_tidptr=0xb6651bf8, {entry_number:6, base_addr:0xb6651bb0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}, child_tidptr=0xb6651bf8) = 18452
futex(0x80d4750, FUTEX_WAKE, 1) = 1
futex(0x80d4740, FUTEX_WAKE, 1) = 1
futex(0x80d1e1c, FUTEX_WAKE, 1) = 1
nanosleep({0, 30000000}, NULL) = 0
[... and then a lot of nanosleep() calls ]

Does anyone has an idea what is not working? Is the problem inside DAQmx base
or is it inside of Linux?

System information:
Debian unstable (kernel 2.6.10)
DAQmx base 1.4.0f2

Thanks for every help
Raphael
0 Kudos
Message 1 of 2
(3,140 Views)
The first thing I would recommend is to upgrade to DAQmx Base 1.5 for linux. You can download it from http://search.ni.com/nisearch/nisearchservlet?nistype=default&filter=+%2BProductLine%3A41+%2BDownloadType%3A%22NI-DAQmx+Base%22+%2BVersion%3A%221.5%22+%2BOSType%3A%22Linux%22+%2Bcontentformat%3Asoftwarelib&ddown=2
0 Kudos
Message 2 of 2
(3,080 Views)