Google Coral and ESXI 7

I use proxmox and run my dockers in ubuntu based lxc containers. It’s trivial to allow these containers direct access to any host devices. With the lxc containers having almost no overhead and direct access to the coral (usb), I easily run 5 cameras with inference speed of 8ms, plus these lxc containers have access to the Intel based gpu acceleration to take some load off of the cpu.

1 Like

Thanks everyone!

So it looks like my options are:

  1. Abandon ESX and start over without virtualization
  2. Replace my m.2 NVME SSD drive with the m.2 coral, and just live with a SATA SSD for storage.
  3. Replace my m.2 NVME SSD drive with an m.2 to PCIE converter, install a PCIE usb controller and plug the coral into that. And just live with a SATA SSD for storage.
  4. Abandon the Opltiplex 9020 micro and start over with something similar that has PCIE slots.

dual TPU m.2

I tried all possible variations in the last few days.
to summarize:

  1. couldn’t make ESXi to work with the TPU. it’s not being detected by the HA VM. (I suspect it has to do with the fact that even the ESXi doesn’t recognize the TPU, and just shows “unknown VGA”
  2. on Proxmox, it worked flawlessly, but only 1 TPU is working due to the channels seperate issue.

As much as I love ESXi, I have to switch to Proxmox :confused:

2 Likes

Thanks. I think I will give this a shot. It sounds like it must be done as a proxmox “LXC” right?
…man…not looking forward to recreating my entire host from scratch… :grimacing:

OK,… I hope Im not speaking too soon,. but I think I have it working. Appears to be getting 10ms inference speed, whereas I normally see 60ms when running off the CPU.
(Google Coral USB, Frigate running inside of Home Assistant (running in docker in the usual way), which is running as a VM inside of proxmox.)

1 Like

Running it on proxmox was never the issue :slight_smile: this thread is about making it work on ESXi if anyone was able to.
Glad that you figured it out on proxmox though.

1 Like

Thanks again for pointing me at PROXMOX. I had no idea that was even an option until you mentioned it.
I have created a new thread here to continue the discussion now that were talking PROXMOX.
If you have a chance could you take a look and confirm if I am on the right track?
Thanks again!

If anyone is wondering.
It is possible to get the coral AI working with ESXI.
This process worked with ESX 7… I am yet to try ESX 8

  1. disable vmkusb on the esxi host
    esxcli system module set -m=vmkusb -e=FALSE
  2. reboot host
  3. mount the USB to the VM.

if the usb still shows up as globalchip then do the following.

  1. git clone --recurse-submodules GitHub - google-coral/webcoral
  2. cd webcoral
  3. make reset
    This will re-flash the Coral USB and it should show up
    Bus 001 Device 003: ID 18d1:9302 Google Inc

If this process should fail then share USB Host controller from the host and attach it to the VM.
Follow the process above if it shows up as globalchip.

1 Like

@Tiernan23 thanks for the above - Tried on esxi8 and after rebooting the option to add USB Device is missing - any clues on where to start troubleshooting this one ?
edit: I can set to TRUE which restores the globalchip issue - but looking for passthrough to Frigate VM

I have tried ESX 8 and so far have failed to get the coral USB to work. It seems the USB disappears completely if you use the process i specified. I had to revert to ESX 7 to get the USB to work again.

Unfortunately i think for now ESX 7 or ESX 6.7 will need to be used for a Coral USB device.

Thanks for getting back to me.

Annoyingly I had been on ESXI 7 for ages and not found this fix for Coral so went to ProxMox 3 days before you posted the above

I also use iGPU pass through which is super easy on ESXI but just could not get it to work on ProxMox and came back to ESXI late January as a result

Another rebuild I guess :man_shrugging:

@Tiernan23 could you confirm the version of ESXI 7 you were using - so far i have tried 7.0U3g and 7.0U1c and both of them are behaving the same as ESXI 8 (USB disappearing)

I was using 7.0U1c as it is the first version to support systemMediaSize=min (so i can install direct to SSD instead of running off USB like i used to)

@Kingy444 My ESXI version is VMware ESXi, 7.0.3, 20036589. Have you enabled passthrough for your usb host controllers to the Virtual Machine ? If you have any other USB devices plugged into this esxi host then it will get picked up by your Virtual Machine.

This is a picture of my virtual machine with the USB controllers attached.

Hi Tiernan23, i have flashed the Coral USB using another linux computer but upon unplugging it will revert back to globalchip. Did you flash the Coral USB from within the Esxi?

I have also tried disabling vmkusb but then the add USB Device is missing. I also couldn’t find any usb host controller on the host so that i can enable passthrough.

Any advise will be appreciated. Thank you.

Hi Reesion,

My Coral is connected to a ubuntu vm running in esxi which i flash the coral usb.
This ubuntu vm then runs frigate.

I disabled vmkusb and then i passed through the usb controller like the picture in my previous comment.
This effectively passes all the usb devices on that host to that linux machine.
Just note this will pass through any other usb’s you have connected to this virtual machine.

Hope this helps

I’m having similar issues but with exsi 8. Frigate comes bundled with, I guess, the drivers for Coral USB because it detects the coral and changes the vendor ID once you run frigate. My issue is that processing is very slow even the though inference is 20 on a usb 3.1 my cpu with an inference of ~400 will do a better job of detecting on an 8 camera system. Is it just exsi?

1 Like

I didn’t know it was possible to love ESXI :slight_smile:

You actually helped me when you stated that Frigate came with the drivers etc. I forgot to uncheck protection mode in Frigate full access but noticed when I went to restart the addon. Inference speed is 17 ms but CPU usage is low and that is my main concern as Blue Iris was maxing that out all the time with DeepStack.
Now I’m getting “error transfer event TRB DMA ptr not part of current TD ep_index 2 comp_code 1” on the VM log every few seconds. Also “INFO : Detection appears to be stuck. Restarting detection process…
INFO : Waiting for detection process to exit gracefully…” in the Frigate log and also hearing the “ding” the computer makes when a USB device is plugged/unplugged like it’s disconnecting the Coral for a split second every few minutes (on average). But at least VM sees the Coral as a Google device and so does Frigate. Maybe a USB bus problem? Will try different locations???

Guys, also started with Frigate, i’m runnin an HP Microserver Gen 8, with Xeox 1265cpu (no quicksync)

As you can see in sceenshot, i have already an USB Host controller in passtrough to HassOS, its used for an USB Canable, this controller has 2 ports, so 1 extra free port for maybe a coral

Only with 1 camera added to Frigate, and my cpu was acting 10-20% more

WIll an google coral help me? is it sufficiant to buy the USB version?

I’m new to coral, will it work on my ESX , it still runs 6.7

thnx for feedback

image

Hey All,

I tried esx8 again and i had the same issue with the USB dying after 1-2 days and having to be unplugged/replugged in.
I was using the method from this site …

I attempted to get this working again with esx 8 but unfortunately no luck as there is no way to pass through the usb controller and get the coral AI device showing up on the VM.

I have a temporary work around but it requires another device that is always switched on.
Download this application https://www.virtualhere.com/
Get the server edition for the usb and the client edition for the vm.

1. start the server edition (i had issues with usb 3.1 so had to use usb 3.0 port)
2. start the client edition
3. ./vhclientx86_64 -t list   (this should show the devices.. you should see  --> 0x089a hostname.1)
4. ./vhclientx86_64 -t use,hostname.1 (where hostname is your computer name and the usb address)
5. use the coral software https://github.com/google-coral/webcoral with make reset
6. ./vhclientx86_64 -t "STOP USING ALL LOCAL"
7. Run step 3 and 4 again but you should see --> 0x9302.. 
8. lsusb should now show Google Inc.

The inference speed is a little slower unfortunately … it went from 10ms to 25 ms… which isn’t too bad for sharing over the network.

@pergola.fabio The Coral is great to use if you have alot of motion on your camera, It will take a big load off the cpu for this (but the CPU still does a little detection before it passes it off to the coral)

1 Like