2

我正在尝试NCSDK在 macOS 上运行 Movidius。在 macOS 上使用 NCSDK 需要 VirtualBox 和 docker,因为这个 U 盘必须在 Ubuntu16.04 上运行并且它支持TensorflowCaffe. 我已经使用这个 Dockerfile 在 docker 上成功编译了 NCSDK。然后我docker-machine像往常一样创建了一个并附加到 virtualbox:

$ docker-machine create --driver virtualbox linux
$ eval $(docker-machine env linux)
$ docker-machine ls
NAME    ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER        ERRORS
linux   *        virtualbox   Running   tcp://192.168.99.100:2376           v17.12.1-ce 
$ docker-machine env linux
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.100:2376"
export DOCKER_CERT_PATH="/Users/loretoparisi/.docker/machine/machines/linux"
export DOCKER_MACHINE_NAME="linux"
# Run this command to configure your shell: 
# eval $(docker-machine env linux)

我已将设备插入 VirtualBox,因此在运行docker图像时

docker run --rm -it movidius bash

我可以看到连接的设备:

movidius@macos:~/ncsdk/examples/apps/hello_ncs_cpp$ lsusb
Bus 001 Device 005: ID 03e7:2150  
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

其中 03e7 是此处的 linux 设备 ID 列表中预期的英特尔设备:

03e7  Intel
    2150  Myriad VPU [Movidius Neural Compute Stick]

所以我应该制作并运行:

cd examples/apps/hello_ncs_cpp/ \
make hello_ncs_cpp \ 
make run

但我明白了

cd cpp; ./hello_ncs_cpp; cd ..
Error - Could not open NCS device.
    mvncStatus value: -6

尝试python示例时出现相同的错误

movidius@macos:~/ncsdk/examples/apps/hello_ncs_py$ python hello_ncs.py 
Error - Could not open NCS device.

查看 python 代码,我可以看到设备已被正确枚举:

     # get a list of names for all the devices plugged into the system
    ncs_names = fx.EnumerateDevices()
    if (len(ncs_names) < 1):
        print("Error - no NCS devices detected, verify an NCS device is connected.")
        quit()


    # get the first NCS device by its name.  For this program we will always open the first NCS device.
    dev = fx.Device(ncs_names[0])

    print(ncs_names[0])

因为我可以看到1设备名称。dev.OpenDevice()打印我得到的 api 的错误堆栈跟踪:

mvncStatus.ERROR
Traceback (most recent call last):
  File "hello_ncs.py", line 43, in <module>
    dev.OpenDevice()
  File "/usr/local/lib/python2.7/dist-packages/mvnc/mvncapi.py", line 147, in OpenDevice
    raise Exception(Status(status))
Exception: mvncStatus.ERROR
Error - Could not open NCS device.

我还尝试使用该docker选项连接设备但--device没有成功,例如:

docker run --rm -it --net=host --privileged --device=/dev/usb/hiddev4

如此处所述。

[更新] 我知道最新版本的 Microsoft Windows 和 Microsoft Surface 笔记本电脑上存在相同的驱动程序问题。

4

2 回答 2

3

在 Docker 容器中,您必须make run以 root 用户身份运行,而不是普通用户。原因是 Docker 不支持udev/udevadm服务,所以只有 root 可以访问 USB 设备。

于 2018-04-27T11:35:32.933 回答
-1

看看您是否可以通过以下线程解决问题: https ://ncsforum.movi​​dius.com/discussion/140/mac-os-x

请参考 Ramana.rachakonda 的第 8 点:“棒仅在连接到我拥有的 USB 集线器上的 USB2 端口时才有效,而在连接到 USB3 端口时无效。如果您只有 USB3 端口,请尝试使用 USB2 延长线连接棒”。

于 2018-04-23T05:16:59.493 回答