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.