Intel® Distribution of OpenVINO™ Toolkit
Community assistance about the Intel® Distribution of OpenVINO™ toolkit, OpenCV, and all aspects of computer vision-related on Intel® platforms.
6403 Discussions

NCS2 in docker container on RPI results in RuntimeError: Can not init Myriad device: NC_ERROR

Hawkes__Rycharde
New Contributor I
1,061 Views

I have been using two test platforms: RPI3B+ running Ubuntu 20.04LTS and a RPI4B running Raspbian.  Both exhibit exactly the same problem.  I'm using the distribution: l_openvino_toolkit_runtime_raspbian_p_2020.3.220.tgz

I have a simple test program that runs OK on the RPI hosts but fails when run in a docker container (built FROM ubuntu:bionic):

 

 

E: [ncAPI] [     85611] [python3] ncDeviceOpen:1003     Failed to find booted device after boot
Traceback (most recent call last):
  File "debug.py", line 34, in <module>
    sys.exit(main() or 0)
  File "debug.py", line 30, in main
    exec_net = ie.load_network(network=net, device_name=device)
  File "ie_api.pyx", line 178, in openvino.inference_engine.ie_api.IECore.load_network
  File "ie_api.pyx", line 187, in openvino.inference_engine.ie_api.IECore.load_network
RuntimeError: Can not init Myriad device: NC_ERROR

 

 

lsusb output on the host is:

 

 

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 033: ID 03e7:2485 Intel Movidius MyriadX
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

 

 

In the container running on that host the lsusb output shows the device but not the associated name:

 

 

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 033: ID 03e7:2485
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

 

 

The container was adapted from the openvino instructions for building docker images.  I saw the error when running using the suggested:

 

 

docker run --privileged -v /dev:/dev --network=host openvino-debug

 

 

So I tried solution 2 in the instructions and built a libusb without UDEV support but also had the same problem.  When it crashes I was also no longer able to run the test program on the host - it would also terminate with the same error.

I noticed that despite following the instructions, the libmyriadPlugin.so was still dependent upon the shared library pointed to by /lib/arm-linux-gnueabihf/libusb-1.0.so.0 (as was lsusb).  [I also had to run libtoolize before the bootstrap.sh execution otherwise it would fail.  I wonder if those instructions are correct for all linux variants?]

I changed that link to point to the libusb built and installed into /usr/local/lib.  Now I still get the same error but if I run the test program on the host it still succeeds.  So at least it isn't crashing the NCS2 but I am unable to run in the container and don't know what to do to fix it.

0 Kudos
1 Solution
David_C_Intel
Employee
1,046 Views

Hi Hawkes__Rycharde,

Thanks for reaching out. It seems you opened other thread with the same topic, let's keep this discussion on that thread, please.

Best regards,

David C.

View solution in original post

0 Kudos
1 Reply
David_C_Intel
Employee
1,047 Views

Hi Hawkes__Rycharde,

Thanks for reaching out. It seems you opened other thread with the same topic, let's keep this discussion on that thread, please.

Best regards,

David C.

0 Kudos
Reply