Ni mate stalls at “Loading Configurations”


#1

I am trying to run Ni mate 1.20 on Ubuntu 17.10. When I use the command:
./Delicode_NI_mate.sh
the program stalls at “Loading Configurations”
These are the messages that I get on the terminal:

Warning: USB events thread - failed to set priority. This might cause loss of data…
libpng warning: iCCP: known incorrect sRGB profile
Warning: USB events thread - failed to set priority. This might cause loss of data…
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile

It took me a while to get this far, note my previous post:

The 2 possible thoughts I had were:

  1. In the Documentation
    V1.X Documentation
    it says:
    Please note that in order to use the connected sensor NI mate needs to stop the default sensor driver in the Ubuntu kernel from being used. This will stop the sensor from working as a webcam.

Is there a command I need to run to do this or is it automatically done by Ni mate?

  1. When getting the program to boot up, I needed to change some dependencies and I eliminated the libqt4-core file dependency. Possibly this is a problem, but I don’t think so as this file doesn’t actually contain any code:
    https://askubuntu.com/questions/766615/how-to-install-libqt4-core-and-libqt4-gui-on-ubuntu-16-04-lts

Is there a debugging command I could run to see where the program is stalling?

Thanks for any help.


#2

Is there a command I need to run to do this or is it automatically done by Ni mate?

This is done by the postinstall scripts of the .deb package, namely:

cp /opt/NI_mate/55-primesense-usb.rules /etc/udev/rules.d
rm /opt/NI_mate/55-primesense-usb.rules

cp /opt/NI_mate/83-hmd.rules /etc/udev/rules.d
rm /opt/NI_mate/83-hmd.rules

cp /opt/NI_mate/blacklist-gspca-kinect.conf /etc/modprobe.d
rm /opt/NI_mate/blacklist-gspca-kinect.conf

udevadm control --reload-rules

It blacklists the gspca_kinect kernel module and sets the udev USB rules for all devices. I don’t think this matters for the XTion.

Is there a debugging command I could run to see where the program is stalling?

You could do an strace and record the syscalls NI mate makes. This might give an idea on where the hang is. However, I just installed this version of NI mate on my Debian 8 laptop, and although I got the sensor working, strace hangs during loading. This might simply be a problem with my laptop not being too beefy.

The strace works like so:

cd /opt/NI_mate/
LD_LIBRARY_PATH=./ strace ./Delicode_NI_mate > out.txt 2>&1
ctrl+C to exit NI mate

out.txt now has a record of every syscall NI mate made. This log file could then give a hint what’s the last syscall that properly returned.


#3

I couldn’t get the command to link to a out.txt file, but here is what I got on my terminal when I ran “strace Delicode_NI_mate”.
It’s pretty incomprehensible to me. It seems to just be waiting.
Thanks for caring enough to try and help.

dennis@dennis-ThinkPad-T410:/opt/NI_mate$ strace Delicode_NI_mate
execve("/usr/bin/Delicode_NI_mate", [“Delicode_NI_mate”], [/* 44 vars */]) = 0
brk(NULL) = 0x55b42cc89000
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, “/etc/ld.so.cache”, O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=96735, …}) = 0
mmap(NULL, 96735, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fab85d6c000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, “/lib/x86_64-linux-gnu/libc.so.6”, O_RDONLY|O_CLOEXEC) = 3
read(3, “\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\340\22\2\0\0\0\0\0”…, 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1960656, …}) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fab85d6a000
mmap(NULL, 4061792, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fab8577d000
mprotect(0x7fab85953000, 2097152, PROT_NONE) = 0
mmap(0x7fab85b53000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1d6000) = 0x7fab85b53000
mmap(0x7fab85b59000, 14944, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fab85b59000
close(3) = 0
arch_prctl(ARCH_SET_FS, 0x7fab85d6b540) = 0
mprotect(0x7fab85b53000, 16384, PROT_READ) = 0
mprotect(0x55b42c8ea000, 8192, PROT_READ) = 0
mprotect(0x7fab85d84000, 4096, PROT_READ) = 0
munmap(0x7fab85d6c000, 96735) = 0
getuid() = 1000
getgid() = 1000
getpid() = 1955
rt_sigaction(SIGCHLD, {sa_handler=0x55b42c6de5a0, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER, sa_restorer=0x7fab857b4140}, NULL, 8) = 0
geteuid() = 1000
brk(NULL) = 0x55b42cc89000
brk(0x55b42ccaa000) = 0x55b42ccaa000
getppid() = 1953
stat("/opt/NI_mate", {st_mode=S_IFDIR|0775, st_size=4096, …}) = 0
stat(".", {st_mode=S_IFDIR|0775, st_size=4096, …}) = 0
openat(AT_FDCWD, “/usr/bin/Delicode_NI_mate”, O_RDONLY) = 3
fcntl(3, F_DUPFD, 10) = 10
close(3) = 0
fcntl(10, F_SETFD, FD_CLOEXEC) = 0
geteuid() = 1000
getegid() = 1000
rt_sigaction(SIGINT, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGINT, {sa_handler=0x55b42c6de5a0, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER, sa_restorer=0x7fab857b4140}, NULL, 8) = 0
rt_sigaction(SIGQUIT, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGQUIT, {sa_handler=SIG_DFL, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER, sa_restorer=0x7fab857b4140}, NULL, 8) = 0
rt_sigaction(SIGTERM, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGTERM, {sa_handler=SIG_DFL, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER, sa_restorer=0x7fab857b4140}, NULL, 8) = 0
read(10, “#!/bin/sh\n\nLD_LIBRARY_PATH=/opt/”…, 8192) = 98
clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7fab85d6b810) = 1956
wait4(-1, Warning: USB events thread - failed to set priority. This might cause loss of data…
libpng warning: iCCP: known incorrect sRGB profile
Warning: USB events thread - failed to set priority. This might cause loss of data…
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
0x7ffef3b97a6c, 0, NULL) = ? ERESTARTSYS (To be restarted if SA_RESTART is set)
— SIGWINCH {si_signo=SIGWINCH, si_code=SI_KERNEL} —
wait4(-1,


#4

Apparently I needed to run the command in a shell to get it to redirect to a file:
sudo -s
LD_LIBRARY_PATH=./ strace ./Delicode_NI_mate > out.txt 2>&1

The forum says that txt files aren’t authorized to be uploaded. Is there a way I can send the file out.txt to you for you to look at?

I can’t make much sense of the file. But am I supposed to have a file at
home/dennis/Delicode.conf
It doesn’t seem to be there.
Thanks again.


#5

Could you upload it to https://pastebin.com/?


#6

Pastebin has a file size limit of .5mb and my file is 2.5mb. I sent it to your email address listed on your blog that I found in the Nimate forum profiles. I hope that’s okay.


#7

I think the email was also blocked due to file size limit. Does zipping the file reduce its size? There are also other services such as https://wetransfer.com/.


#8

I’m going through the strace. The hang happens after most of the NI mate initialization is done with some socket’s data receiving hanging. This could be some request to the NI mate server, although I don’t think there’s anything like this in NI mate v1. Another possibility could be some request to the XTion being a problem - have you successfully used the XTion on this Thinkpad with some other software?

Some XTions can have a USB3 firmware patch applied to them that makes them work in USB3 ports and less in USB2 ports.


#9

The Xtion Prolive comes with a CD that installs OpenNI. This runs fine without NiMate as far as I can tell. But one thing, my sensor output doesn’t show any “skeleton structure” like in the picture on their website:
https://www.asus.com/us/3D-Sensor/Xtion_PRO_LIVE/
I don’t know if it’s supposed to or not. Possibly the picture is applicable only to the install on Windows (which uses different drivers?)?

I think the USB port 2.0 is okay, as the website specifically says for USB port 2.0.

I thought about trying to install the original
Delicode-NI-mate_1.20-ubuntu_amd64.deb
without changing the dependencies and trying to install libqt4-core from this website:
https://debian.pkgs.org/7/debian-backports-main-amd64/libqt4-core_4.8.6+git64-g5dc8b2b+dfsg-3~bpo70+1_amd64.deb.html
but I’m afraid to try this, in that I really don’t know what I’m doing.

There isn’t a problem because my chip is Intel and the file specifically says AMD is there?

The other 2 options are to purchase a laptop with windows10 already installed and use NiMate version 2.0, or just wait, in the hopes that eventually NiMate might port version 2.0 to Ubuntu.

Other than that, it looks like I’m not going to get the program running. Computers can be frustrating. Thanks for trying to help me.


#10

We looked into a Linux release of NI mate 2. Unfortunately the cost of developing and maintaining that was too high for the limited number of users we expected to have on Linux. I’m a Linux user myself too.