Is it possible to get the samples compiled with OpenVINO R5 on 64-bit ARM? By following the tutorial for Raspbian and modifying the CMake files with the correct paths, I was able to produce the relevant makefiles for the samples on OrangePi 2. However, compilation didn't succeed for any of the samples, as linking the inference engine shared library fails as follows:
/armv7l/libinference_engine.so: error adding symbols: File in wrong format.
I also tried to add the extra armhf architecture (dpkg --add-architecture armhf), and installed some common libraries along with it (e.g. libc++-dev:armhf), but to no avail.
the step you did in the last paragraph may be sufficient to get the samples (which are compiled on armhf architecture) to be executed on arm64 user space. But it's not enough to cross compile them on arm64 user space for armhf arch.
Is your arm64 gcc toolchain able to produce armhf binaries?
I meant the first step to try is: compile samples on armhf (e.g. Raspberry), copy binaries to arm64 board and run there. The next (more complex) step is to cross-compile samples on arm64 board for armhf.
And for the first step your "extensions" of arm64 user space should be enough.
After passing my "first" step (from previous comment) you will get a full list of dependency (e.g. by issuing on armhf board ldd command for final binary). So if libraries from this list are not from OpenVINO package, you need to check if these libraries of armhf architecture are installed on arm64 user space. Next you need to install cross compiling toolchain (containing gcc arm64 binary which is able to produce armhf binaries). Finally you need to configure cmake of OpenVINO to use just installed cross compiling toolchain.
P.S. The error which you get "/armv7l/libinference_engine.so: error adding symbols: File in wrong format." means that you're trying to link different elfs: arm64 and armhf. And /armv7l/libinference_engine.so is obvoiusly armhf one. This means that you currently use arm64 gcc which is incorrect.
I got the object detection sample compiled in this way, but now get the following runtime error when actually trying to run the sample on the NCS2, even though I added the USB rules:
E: [ncAPI] [ 211820] ncDeviceOpen:870 failed to find device
[ ERROR ] Can not init USB device: NC_DEVICE_NOT_FOUND
is it noted in lsusb output? If yes, try to run it with root permissions. I guess you installed libusb1.0 of armhf architecture on arm64.
Actually I did the similar thing to get it working on Tegra TX1 arm64 board which only present here, just Movidius 1 stick is used.
Hi Sootla, have you succeeded to run on ARM? I can run openvino samples on Raspberry 3B, but I am trying to transfer to an ARM board based on CPU RK3399.
First, how do you modify those CMake files?
I'm documenting how to resolve some ARM64 issues with a schroot workaround for those interested:
Feel free to file an issue or make a PR if you'd like anything to be added.