google-coral / edgetpu

Coral issue tracker (and legacy Edge TPU API source)
https://coral.ai
Apache License 2.0
426 stars 125 forks source link

MPCIe TPU works on dual boot Ubuntu 20.04 but not Windows 10 #361

Closed wb666greene closed 3 years ago

wb666greene commented 3 years ago

Title pretty much says it all. I've a i3-4025 "Mini PC" with MPCIe setup for dual boot. I've ported my Python edgetpu code tp pycoral and it runs fine on Ubuntu 20.04.

Moving the code to Windows 10 it seems the Coral MPCIe driver doesn't start. If I plug in a USB3 TPU, the Windows code runs correctly.

I'm not much of a Windows user getting totally off the bus after Windows 7, this system was given to me specifically to get my Linux TPU Python code to run on Windows, which was actually quite simple to do.

Device Manager->Device Status says: `Windows cannot initialize the device driver for this hardware. (Code 37)

{Wrong Type} There is a mismatch between the type of object required by the requested operation and the type of object that is specified in the request. Under Events-> Information: Device PCI\VEN_1AC1&DEV_089A&SUBSYS_089A1AC1&REV_00\4&2bccc9c4&0&00E3 was configured.

Driver Name: oem15.inf`

Any suggestions as to what I've failed to do for the Windows installation?

wb666greene commented 3 years ago

After repeating the Ubuntu 16.04 pycoral installation and duplicating the apt-get install python3-pycoral issue and fixing it with the pip3 install of the tflite & pycoral wheels. I verified my TPU code ported from edgetpu_api to pycoral worked correctly.

This i5 system also had Windows 10 dual boot so I tried installing PyCoral API to it using the instructions here: https://coral.ai/docs/m2/get-started/

On initial boot (not been booted in about a year) an error dialog popped up for coral.sys -- a digitally signed driver is required. A Coral PCIe Accelerator shows in Device Manager -- No digital signature error code 52.

I plugged in a USB3 TPU and verified that my old edgetpu_api (v2.14.0) code worked.

I ejected the USB3 TPU and ran edgetpu20200629\uninstall.bat as admin. Which didn't seem to work until I did: pip uninstall edgetpu and then the python code failed at import edgetpu.

I downloaded and re-installed the x86 and x64 Visual VC++ 2019 runtimes. I then down loaded the 20210119 runtime and ran its install.bat as admin. Finally I did the pip install of pycoral: pip3 install --extra-index-url https://google-coral.github.io/py-repo/ pycoral

I rebooted and checked Device Manager. The coral PCIe Accelerator is fubar -- Windows cannot initialize the device driver for this hardware Code 37. (Wrong type) There is a mismatch between the type of object required by the requested operation and the type of object specified in the request.

I gave up on Windows a long time ago, so I've no idea on how to attempt to fix it. All I can say is these instructions for installing on Windows 10 do not appear to work.

Plugging in a USB3 TPU my ported code does run with PyCoral, but the MPCIe device driver is not working. Basically I have duplicated the issue I reported to start this issue, hopefully providing more detail so someone can offer a solution.