Install and Recompile

Hi, I tried to install via Docker, and it worked fine, except that my lab PC doesn’t do SSE4 instructions. This is on an Ubuntu 20.04 computer.

So NodeODM wouldn’t process the images, it uploads and then says incompatible CPU. I saw that it is best to recompile, which I have tried, but I am fairly new to Docker. If I tried to build it from what was existing, it would error when it ran, just exited with code 0.

What I did was, and this was after I had tried running it through docker, I cloned the NodeODM to my local machine, then ran “docker build -t opendronemap/nodeodm .” in that directory, and tried to start it. which it did not start, seemed to be a docker issue. So I moved the NodeODM directory under the WebODM directory and renamed it nodeodm to match what was there previously. Tried to start it and I am still getting the exited with Code 0.

I am probably doing something wrong here. I have a new “server” ordered, but it will take about a week to get here, and I would really like to run a couple maps before that.

Any suggestions I could try? Am I building it incorrectly? I know that it is recommended to recompile ODM as well, but I haven’t actually had any issues, just NodeODM that keeps exiting.

Thanks in advance.
Smash

1 Like

Hey @SmashSE :hand: you also need to rebuild the opendronemap/odm image before you build the NodeODM image (since the latter depends on the former).

2 Likes

OK, I think I did the wrong order last time then, I am rebuilding now, starting with ODM first. I think I had tried that, but possibly in the wrong order last time, and I wasn’t cloning the repo. When I tried compiling ODM previously, it would work, but finish in like 30 seconds.

So I deleted everything, cleaned out all containers, deleted all volumes, should be a fairly clean docker install. Then cloned the repo for ODM and tried to compile, it takes like 8 hours, and then exits with “The command ‘/bin/sh -c bash configure.sh install’ returned a non-zero code: 2”

I’ll download the other sources as well and see if that helps, but if I haven’t compiled nodeODM, and it isn’t in the same directory, I don’t see how it can fix this. Any thoughts?

1 Like

The only seemingly relevant result I get for Error Number 2 is maybe you lack the right permissions? Is your user part of the docker group?

This is actually a testing machine, so I am running it under root permissions.

I am trying to recompile everything, so I cleared out all of it, git clone webodm, odm and nodeodm, and I am compiling ODM now. Then I plan on compiling NodeODM, then webodm.

The command is just “docker build -t opendronemap/odm .” and for the others, change odm to nodeodm then webodm, changing directories. I did find that NodeODM failed if it wasn’t under the Webodm folder, so the hierarchy is literally /webodm, /webodm/nodeodm, and /webodm/odm.

Thanks for the quick response. I could try dropping out of root permissions and running it just as the user. that’s actually a good idea, if you think it matters I will cancel the current build and try that.

1 Like

Maybe not drop out of root user, but maybe add root to the Docker group if it isn’t already? I’m a bit out of my depth here, so forgive me if this doesn’t help.

Well it is still erroring out even in the docker group. I am thinking since this is just to make a few maps while I wait for my newer server to show up, I might just get a trial of Pix4d in the mean time. Its just because my current spare hardware doesn’t support SSE4, all the others, just not 4 so I had to recompile, but it isn’t working out. Here’s more of the error. This is trying to compile ODM, in a directory inside the Webodm folder, with a folder for nodeodm next to it.

Thanks for the ideas

[ 61%] Completed 'opencv' [ 61%] Built target opencv c++: fatal error: Killed signal terminated program cc1plus compilation terminated. make[5]: *** [surface/CMakeFiles/pcl_surface.dir/build.make:167: surface/CMakeFiles/pcl_surface.dir/src/mls.cpp.o] Error 1 make[4]: *** [CMakeFiles/Makefile2:967: surface/CMakeFiles/pcl_surface.dir/all] Error 2 make[3]: *** [Makefile:152: all] Error 2 make[2]: *** [CMakeFiles/pcl.dir/build.make:115: pcl/stamp/pcl-build] Error 2 make[1]: *** [CMakeFiles/Makefile2:302: CMakeFiles/pcl.dir/all] Error 2 make: *** [Makefile:84: all] Error 2 The command '/bin/sh -c bash configure.sh install' returned a non-zero code: 2
**Edit spelling error…

1 Like

Do you have all the build-tools packages?

I’m at a loss here.

There really isn’t a whole lot on pre-req’s for this, so I can’t say yes, Can you point me to where any pre-reqs for a custom build are?

1 Like

You ran out of memory; add more RAM.

1 Like

Yep, I bet that’s going to be it. Checked memory and seems I have a bad stick or 2, was only reporting 4 of the 12 in it. Replaced the sticks that weren’t reporting. I’ll post back if that didn’t fix it. I know 12GB is low, but I am only using it to get used to the program and processing low image sets, until the unit gets here with 64GB of RAM.

Thanks again, wasn’t even looking at the memory until you mentioned it.

1 Like