Purpose
ESX/ESXi 4.1 and ESXi 5.0 supports USB device passthrough from an ESX or ESXi to a virtual machine.
This article provides information on:
- USB device passthrough requirements and limitations
- How to add a USB controller and a USB device.
Resolution
Requirements
USB device passthrough requires:
- Virtual hardware, version 7 or higher
- A USB controller
- A USB device or device hub
- Host-Connected – This has been available since vSphere 4.1, this allows a USB device plugged directly into the ESX/ESXi host to be passed through to a virtual machine
- Client-Connected – This feature became available with the release of vSphere 5.0, this allows a USB device plugged into a user’s workstation to be passed through to a virtual machine via the vSphere Client
- EHCI+UHCI controller – This is the classic USB controller allowing the usage of USB 2.0 and USB 1.1 devices
- xHCI controller – This is the newer controller type allowing the usage of faster USB 3.0 devices, virtual hardware version 8 is required to use this controller
Common Limitations
The USB Controller has these limitations:
- Minimum virtual hardware version 7 is required
- Only one USB controller of each type can be added to a virtual machine
- The USB arbitrator 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
- You must add a USB controller to a virtual machine before you can add a USB device
- You must remove all USB devices from a virtual machine before you can remove the controller
USB devices have these limitations:
- A virtual machine may have up to 20 USB devices attached to it, however each unique USB device can only be attached to one virtual machine at a time
- Unsupported USB devices may not interact as expected with other ESX/ESXi features. For a list of supported USB devices, see Supported USB device models for passthrough from an ESX or ESXi host to a virtual machine (1021345)
- Before you hot add memory, CPU, or PCI devices, you must remove any USB devices. Hot adding these resources disconnects USB devices, which may result in data loss
- When you suspend and resume a virtual machine, USB devices behave as if they have been disconnected, then reconnected
- The virtual machine cannot boot from the attached USB device.
Limitations:
- USB controller hardware and modules that support USB 2.0 and USB 1.1 devices must be present on the physical host
- It is not possible to utilise a USB 3.0 device connected to the physical host, the device will be ignored (Use client-connected USB passthrough instead)
- The vSphere Client 5.0+ allows the usage of this type of passthrough. As a result, it is possible to use this feature with virtual machines running on an ESX/ESXi 4.1 host as long as the host is present in the inventory of vCenter Server 5.0 or newer and you are connecting the vSphere Client to the vCenter Server, not the host directly
- Both EHCI+UHCI as well as the xHCI USB controller are compatible with client-connected USB passthrough
- Passthrough of a USB 3.0 device using an xHCI controller (with virtual hardware version 8) requires that the guest operating system have a functioning xHCI driver. Without a driver installed in the guest operating system, you cannot use USB 3.0 devices. For more details on USB 3.0 support, please reference the VMware vSphere 5.0 Release Notes
- At the time of writing of this article, currently there is no known working xHCI driver for Windows
- Closing the vSphere Client which initiated the client-side USB connection will disconnect the USB device from the virtual machine
Note: Please see the table below for a summary of compatible configurations:
Version | ESX/ESXi 4.1 | ESXi 5.0 |
USB 2.0/1.1 Host-Connected | Yes | Yes |
USB 2.0/1.1 Client-Connected | Yes (vCenter 5.0+ only) | Yes |
USB 3.0 Host-Connected | No | No |
USB 3.0 Client-Connected | No | Yes (with xHCI driver) |
Adding a USB controller and a USB device
To add a USB controller in a virtual machine running Windows:
- Right-click the virtual machine and click Edit Settings.
- Click Add.
- Select USB Controller and click Next.
- Click OK.
- Right-click the virtual machine and click Edit Settings
- Click Add
- Select the desired USB Device and click Next
Note: To support vMotion for Host-Connected devices, select Support vMotion while device is connected. For more information, see the Configuring USB Passthrough Devices for vMotion section of the vSphere Virtual Machine Administration Guide.
To add a Client-Connected USB device:
- Click (or open a console to) the virtual machine using the vSphere Client (5.0 or newer)
- Click the icon of a USB device next to a wrench (this is beside the CD-ROM icon)
- Select the desired USB Device to connect
Note: vMotion is supported by default for Client-Connected USB devices.
To add a USB device:
- Right-click the virtual machine and click Edit Settings.
- Click Add.
- Select USB Device and click Next.
Note: To support vMotion, select Support vMotion while device is connected. For more information, see the Configuring USB Passthrough Devices for vMotion section of the vSphere Virtual Machine Administration Guide.
- Click OK.
Based on VMware KB 1022290