USB-ускоритель Coral / Google Edge TPU не распознается, обходной путь Virtualbox - PullRequest
0 голосов
/ 17 июня 2019

У меня новый USB-ускоритель Coral / Google Edge TPU.В течение нескольких дней у меня не было большой удачи в этом деле.Я попробовал его на

  • Ubuntu 18.04 на голом металле Intel, AMD и RaspberryPi3 +
  • Ubuntu 18.04 в качестве гостя KVM с виртуализированным устройством Global Unichip
  • Ubuntu 18.04в качестве гостя Virtualbox с виртуализированным устройством Global Unichip

Во всех случаях приложение-образец обнаружения птиц не работало с различными сообщениями об ошибках, все сводились к тому, что устройство не распознается.Обратите внимание, что согласно тому, что я читаю, устройство должно быть в 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

Я уже подозревал устройство DOA, когда натолкнулся на эту статью Koji: [https://dev.to/kojikanao/coral-edgetpu-usb-with-virtualbox-57e1][1]

Все сводится к использованию Ubuntu в Virtualbox и к созданиюДВА устройства фильтров для записи Global Unichip Corp.Затем вторую запись Global Unichip необходимо превратить в фальшивое устройство Google, изменив идентификатор поставщика USB на 18d1 и идентификатор продукта на 9302. Как только я это сделал, устройство было распознано, и образец приложения успешно классифицировал попугаев.Это приводит к нескольким вопросам:

  1. Можно ли достичь вышеупомянутого fakeroo на голой железной установке Ubuntu и / или на одной, работающей в качестве гостя KVM?И как?
  2. Есть ли способ БЫСТРО (в отличие от запуска приложения python и увидеть его сбой) установить, что устройство USB Edge TPU работает?

Все мои виртуальные машинызапустить на KVM с хостом Centos 7, используя ядро ​​5.1.VirtualBox не ладит с KVM, и я не собираюсь переносить все свои виртуальные машины в Virtualbox и выполнять лоботомию KVM в ядре для запуска Virtualbox, просто чтобы заставить работать usb Edge TPU.Идеи?

PS: Пожалуйста, будьте осторожны, я FNG в Stackoverflow.

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

Ответы [ 2 ]

0 голосов
/ 19 июня 2019

Domo!

У меня тоже получилось без Virtualbox и подделка. Как ни странно, он работает на Jetson Nano .... Я уже начинал писать собственное правило udev, когда нашел в /etc/udev/rules.d/99-edgetpu-accelerator.rules:

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 => /usr/local/lib/python3.5/dist-packages/edgetpu/swig_edgetpu_cpp_wrapper.cpython-36m-aarch64-linux-gnu.so

... и т. Д. Для всех 3 * .so файлов в этом каталоге.

0 голосов
/ 18 июня 2019

Я думаю, что был неправ. На самом деле подделка не нужна, так как я удалил все из них, чтобы снова работать с USB-интерфейсом (после того, как в первый раз идентификатор поставщика и идентификатор продукта были изменены чем-то, чего я не знаю, поскольку этого не произошло на Raspberry Pi и еще одну машину с убунту.) и добавил только одну. Затем это снова заработало.

Я также обновил свой пост.

...