We experienced an issue with an Aladdin USB dongle on our VMware 4.1 U1 host where it suddenly stopped working for no reason and we were subsequently unable to re-add it back into the VM it previously resided on. We followed the below steps to try and resolve it which may help someone else experiencing the same problems
- First of all check that your device is supported by VMware
- Check that the vendor supports the VMware version and server H/W etc and whether they’ve done any in house testing
- USB Device Passthrough requires the VM to be on Windows 7
- USB Passthrough requires a USB Controller which is a virtual hardware device which you add to the VM
- USB Passthrough requires a USB Device which is a virtual hardware device which you add to the VM
- VMware ESXi 4 only supports USB1 or USB2 devices. USB3 devices are supported on VMware ESXi 5
- Check other USB Ports on your server – Are they turned on in the BIOS
- Only one USB controller of each type can be added to a virtual machineThe USB arbitrator (VMware service) can monitor a maximum of 15 USB controllers. If your system includes an additional number of controllers and you connect USB devices to these controllers, the devices are not available to be passed through to a virtual machine
Different types of USB Passthrough
Host Connected USB Passthrough
Limitations
- VMware ESXi 4 only supports USB1 or USB2 devices. USB3 devices are supported on VMware ESXi 5
- Not possible to use USB3
Client Connected USB Passthrough
The vSphere Client 5 allows Client USB Passthrough if you are connecting into vCenter, not the host directly. Both EHCI and UHCI as well as the normal HCI Controller can be chosen and are compatible with Client Connected Passthrough
Limitations
- Passthrough of a USB device using the xHCI controller with Hardware Version 8 requires that the guest O/S has a functioning xHCI driver. without one you cannot use a USB3 device
- At the current time of writing there is no xHCI driver
- Closing the vSphere client which initiated the USB Connection will disconnect the connection to the USB device
Further Troubleshooting
We checked all the above out and then contacted VMware and we tried the following
- Detach the USB device from the host.
- Reboot the host.
- Once the host comes up, attach the USB back to it.
Run the lsusb -t command. See below. You should see that your device is recognised
All of this checked out ok
The End Result
VMware Support then said to us that USB1/2 devices are much better supported by VMware ESXi 4 U2 rather than Update 1.
He did actually get this fixed by doing the following
Checking the hostd logs we could see errors similar to those below:
USBGL: Error connecting to arbitrator socket: No such file or directory
USBGL: Giving up on connecting to USB arbitrator
This indicates that the hostd process is trying to access the usbarbitrator process before it is fully initialized and as such fails. Restarting the host and management services will not resolve the issue as you will still end up in the scenario that hostd is trying to access the service before it is ready, this is a known issue and should be resolved in U2.
In the mean time the workaround is to restart the hostd service itself once the usbarbitrator service is up and running, to do this we used
/etc/init.d/usbarbitrator stop
/etc/init.d/usbarbitrator start
/etc/init.d/hostd restart.