Hop Bines in the sun

Completely unrelated to brewing - but running on the same hardware, I have virtual machines set up to monitor emergency communications (police, fire) as well as aircraft tracking, which feed to FlightAware and Planefinder.  These use USB RTL-SDR dongles, ahich are not supported under VMWare esxi/Vsphere.  Recently while combining these machines onto one host I started having trouble.

I came up with a couple theories. First, I had the dongles run through a cheap USB hub.  Maybe I was losing power.  Second, the dongles had identical vendor and hardware ID's - plus identical serial numbers. Maybe that was causing trouble.   I changed the serial numbers but it continued.  I also ran one through the hub and one by extension cable.  Oh, and when they started to flake out, I would sometimes lose my BrewPi USB connection.   I don't mind losing communications, but when by beer temperature is uncontrolled we have problems! It would happen at a seemingly random time (but almost always just after I left the house) and would take out random devices.  The only way to recover was to do a full power down and reboot on the VMware host.

VMware only supports certain USB devices, and these certainly are not on the list.  I made a few changes. First, a new hub, one with multiple "high power" ports.  The RTL dongles push the power limits already.  Next, I built an extra VM to share the USB devices - and then set up passthrough of the USB controller, so that the dongles never interact with VMWare.  Essentially, the USB root hub is passed direct to the VM, the USB powered hub plugs into that, and my USB devices connect through that. Since there are multiple USB controllers we are able to leave some open for locally plugged USB devices as well. While I was at it I also configured a VM Network that was only between the VM's that need USB access - I don't expect the traffic to be very big but just to make sure that USB and general network traffic don't interefere with each other I set it up this way.   The USBServer VM is running DHCP on the "usb" network. Essentially the USB network traffic is isolated from the rest.

Next, I started seeking USB redirection software. USBIP looked promising but I struggled to get it working.   Finally I came across incentivespro.com and their USB redirector software. Conveniently, the linux version is free - all of my VM's are linux based.  Installed on the server, quickly configured and shared the devices.  Installed on each client, and connected to the shared devices.  To the OS they look just like a locally connected USB device.  To VMWare they don't exist. And to the USB Server VM they also look like local devices, since the root hub is passed through.  I went from randomly losing one (or some, or all) USB connections multiple times a day to having a solid connection.

When I started researching this it took me forever to find one tiny post mentioning passing through the USB controller. Hopefully having another one out there will save someone half the time I took doing research before stumbling onto it.   Granted the reason I needed it is very specific, I imagine it would work for many unsupported USB situations if you are running VMWare.   Is it overkill? Very possibly.   But it works, and was really simple to set up!