【问题标题】:Coral/Google Edge TPU USB accelerator not recognized, Virtualbox workaround无法识别 Coral/Google Edge TPU USB 加速器,Virtualbox 解决方法
【发布时间】:2019-10-31 02:48:01
【问题描述】:

我有一个新的 Coral/Google Edge TPU USB 加速器。几天来,我没有太多运气让它继续下去。我试过了

  • 裸机 Intel、AMD 和 RaspberryPi3+ 上的 Ubuntu 18.04
  • Ubuntu 18.04 作为具有虚拟化 Global Unichip 设备的 KVM 来宾
  • Ubuntu 18.04 作为带有虚拟化 Global Unichip 设备的 Virtualbox 来宾

在所有情况下,鸟类检测示例应用程序都失败并显示各种错误消息,所有这些都归结为设备未被识别。 请注意,根据我正在阅读的内容,该设备应该在 lsusb 中作为 Google Inc. 之一出现,但在上述所有情况下,我得到的只是这个(各种变化,取决于机器):

# lsusb Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 005 Device 003: ID 046d:c05a Logitech, Inc. M90/M100 Optical Mouse Bus 005 Device 002: ID 04f3:0103 Elan Microelectronics Corp. ActiveJet K-2024 Multimedia Keyboard Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 002: ID 1a6e:089a Global Unichip Corp. <<<<<<<<<<<<<<<<<<< Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

当我看到 Koji 的这篇文章时,我已经怀疑是 DOA 设备: [https://dev.to/kojikanao/coral-edgetpu-usb-with-virtualbox-57e1][1]

归结为在 Virtualbox 上使用 Ubuntu,并为 Global Unichip Corp. 条目创建两个设备过滤器。然后,需要通过将 USB Vendor ID 更改为 18d1 并将产品 ID 更改为 9302 来将第二个 Global Unichip 条目变成伪造的 Google 设备。 一旦我这样做了,设备就被识别出来了,示例应用程序愉快地对鹦鹉进行了分类。 这就引出了几个问题:

  1. 能否在裸机 Ubuntu 安装和/或作为 KVM 来宾运行的设备上实现上述 fakeroo?怎么做?
  2. 有没有办法快速确定 USB Edge TPU 设备是否正常工作(而不是启动 python 应用程序并看到它失败)?

我所有的虚拟机都在使用 5.1 内核的 Centos 7 主机的 KVM 上运行。 VirtualBox 无法与 KVM 相处,我不期待将我所有的 VM 迁移到 Virtualbox,并且不期待对内核执行 KVM 脑叶切除术以启动 Virtualbox,只是为了让 USB Edge TPU 工作。 想法?

P.S.:请放轻松,我是 Stackoverflow 上的 FNG。

https://dev.to/kojikanao/coral-edgetpu-usb-with-virtualbox-57e1

【问题讨论】:

    标签: python usb tpu google-coral


    【解决方案1】:

    多摩!

    我也让它在没有 Virtualbox 的情况下运行并伪造它。奇怪的是,它在 Jetson Nano 上运行……当我在 /etc/udev/rules.d/99-edgetpu-accelerator.rules 中找到时,我已经开始编写自定义 udev 规则:

    SUBSYSTEM=="usb",ATTRS{idVendor}=="1a6e",GROUP="plugdev" SUBSYSTEM=="usb",ATTRS{idVendor}=="18d1",GROUP="plugdev"

    这样,之前将设备列为的 lsusb

    Bus 002 Device 004: ID 125f:dd4a A-DATA Technology Co., Ltd. Bus 002 Device 003: ID 1a6e:089a Global Unichip Corp

    ... 现在将其列为

    Bus 002 Device 004: ID 125f:dd4a A-DATA Technology Co., Ltd. Bus 002 Device 005: ID 18d1:9302 Google Inc.

    但是,它被列为 18d1:9302 Google Inc. 只有在classify_image.py 成功运行之后。不知道为什么。

    因为安装程序认为 Jetson 是 Raspberry Pi ,所以我必须创建如下链接:

    /usr/local/lib/python3.6/dist-packages/edgetpu/swig/_edgetpu_cpp_wrapper.cpython-36m-aarch64-linux-gnu.so =&gt; /usr/local/lib/python3.5/dist-packages/edgetpu/swig_edgetpu_cpp_wrapper.cpython-36m-aarch64-linux-gnu.so

    ...对于该目录中的所有 3 个 *.so 文件,依此类推。

    【讨论】:

      【解决方案2】:

      我想我错了。实际上不需要假的,因为我删除了所有这些以使边缘 tpu usb 再次工作(在第一次之后,供应商 ID 和产品 ID 被我不知道的东西改变了,因为这在树莓派上没有发生和另一台ubuntu机器。)并且只添加了一个。然后它又工作了。

      我也更新了我的帖子。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-08-06
        • 2019-10-30
        • 2019-11-14
        • 2020-01-18
        • 2022-11-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多