Automatically connecting USB devices at virtual machine power on
search cancel

Automatically connecting USB devices at virtual machine power on

book

Article ID: 343950

calendar_today

Updated On:

Products

VMware VMware Desktop Hypervisor

Issue/Introduction

This article provides steps to configure a particular USB device to automatically connect to a virtual machine while the virtual machine starts.

Environment

VMware Fusion 1.x
VMware Fusion 5.x
VMware Workstation Player 14.x (Windows)
VMware Workstation Player 15.x (Windows)
VMware Player 7.x (Linux)
VMware Player 5.x (Linux)
VMware Fusion 7.x
VMware Workstation Pro 15.x (Linux)
VMware Server 1.0.x (Linux)
VMware Player 6.x (Linux)
VMware Player Pro 7.x (Linux)
VMware Workstation 8.x (Linux)
VMware Player 7.x (Windows)
VMware Player 3.x (Linux)
VMware Player 4.x (Windows)
VMware Workstation Player 12.x (Linux)
VMware Fusion 2.x
VMware Workstation 6.x (Windows)
VMware Workstation 7.x (Linux)
VMware Workstation Pro 15.x (Windows)
VMware Workstation Pro 14.x (for Windows)
VMware Player 2.x (Linux)
VMware Player Pro 7.x (Windows)
VMware Fusion 8.x
VMware Workstation Player 15.x (Linux)
VMware Workstation 8.x (Windows)
VMware Player 3.x (Windows )
VMware Workstation 7.x (Windows)
VMware Fusion 3.x
VMware Server 1.0.x (Windows)
VMware Player 1.x (Windows)
VMware Fusion 6.x
VMware Workstation 11.x (for Windows)
VMware Workstation 10.x (Linux)
VMware Workstation 10.x (Windows)
VMware Fusion Pro 8.x
VMware Fusion 4.x
VMware Fusion 10.x
VMware Workstation 5.x (Linux)
VMware Workstation 9.x (Windows)
VMware Workstation Player 12.x (Windows)
VMware Workstation Pro 14.x (for Linux)
VMware Player 2.x (Windows)
VMware Player 4.x (Linux)
VMware Workstation 5.x (Windows)
VMware Fusion 11.x
VMware Player 5.x (Windows)
VMware Workstation 11.x (for Linux)
VMware Player 6.x (Windows)
VMware Workstation 9.x (Linux)
VMware Fusion Pro 10.x
VMware Workstation 6.x (Linux)
VMware Player 1.x (Linux)
VMware Fusion Pro 11.x
VMware Workstation Player 14.x (Linux)

Resolution

This article provides a workaround that lets you automatically connect a USB device if you do not have access to the host that runs the guest operating system, and therefore cannot manually connect the device using the VM > Removable Devices menu. For more information about the preferred way to connect USB devices through the menu, see Connecting USB Devices to Virtual Machine section in the Using VMware Workstation Guide.

Note:

  • Workstation 5.5 and later enhances the auto connect feature to include support for name, path, and new PID/VID syntax. See the last section in this article, New Autoconnect Options for Workstation 5.5.
  • For a USB device that has configured with the autoconnect option in a specific VM 's configuration file (.vmx), it is not recommended to connect the device to other virtual machines.

To automatically connect a particular USB device:

  1. Identify and obtain the USB device's vendor ID and product ID as reported by the host operating system.
  2. Edit the virtual machine's configuration file (.vmx) to contain an autoConnect entry for the USB device.


    Caution: Be aware that you may break the USB functionality for your virtual machine if you configure conflicting autoconnect settings.

Identifying and Obtaining the USB Device's Vendor ID and Product ID

On a Linux host, after you connect the USB device, you can find the vendor and product ID in the /proc/bus/usb/devices file.

For example:

more /proc/bus/usb/devices
T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 3 Spd=1.5 MxCh= 0
D: Ver= 2.00 Cls=ff(vend.) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=0529 ProdID=0001 Rev= 2.15
S: Manufacturer=AKS
S: Product=HASP HL 2.15

Here, 529 is the vendor ID and 1 is the product ID for the HASP HL device.

On a Windows host, you may find the vendor and product IDs in the registry.

Note: This procedure involves accessing the registry. Incorrect changes to the registry can leave your system unstable or unable to run. Always back up the registry before you edit it, and exercise caution in making changes to the registry. VMware takes no responsibility for problems that may arise.

  1. Select Start > Run and type regedit, and click OK. The Registry Editor window opens.
  2. Search for your USB device's name or brand in this registry path:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\

    For example: This output is a result of searching for a Cruzer Mini USB key:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\Vid_0781&Pid_7101\00526174
    HardwareID: USB\Vid_0781&Pid_7101&Rev_0102
    USB\Vid_0781&Pid_7101
    LocationInformation: Cruzer Mini
    Mfg: Compatible USB storage device


    Here, the vendor ID is 781 and the product ID is 7101.

Editing the Virtual Machine's Configuration File

The configuration (.vmx) file is located in the same directory in which the virtual machine was created. Ensure that the virtual machine is powered off before you edit this file.

To autoconnect the HASP HL device from the previous example, add this line in the .vmx file of the virtual machine:

usb.autoConnect.device0 = "0x529:0x1"

Or, for the Cruzer Mini device, add:

usb.autoConnect.device0 = "0x781:0x7101"

Note: Prepend 0x to each value — it must be in hex format.

You can specify multiple devices for autoconnect, provided that there are not more than two USB devices available to the host at the same time. You can see multiple entries for autoConnect in this example. An ellipsis [...] indicates the omission of an actual vendor or product ID. You need to include a specific value, as shown for device0 and device1.

usb.autoConnect.device0 = "0x529:0x1"
usb.autoConnect.device1 = "0x781:0x7101"
usb.autoConnect.device2 = ....
usb.autoConnect.device3 = ....

You can use the auto clean option in usb.autoconnect:

  • autoclean:1 - autoconnect if a device matches the pattern, removed if the VM is powered on and no device matches the pattern, removed if disconnected through the UI.
  • autoclean:0, no autoclean - autoconnect if a device matches the pattern, not removed if the VM is powered on and no device matches the pattern, not removed if disconnected through UI. Although the autoconnect entries are not removed, the device will not autoconnect again after the user disconnects the device using the UI for that session of the VM. The same device will autoconnect when the VM is restarted or when the device is physically unplugged and replugged into the same port on the host.
For example, you may enter this option at the end of the autoconnect line:
 
usb.autoConnect.device0 = "vid:0x781 pid:0x7101 autoclean:1"
 
For more information about using USB devices in Workstation, see Using Removable Devices in Virtual Machines section in the Using VMware Workstation Guide.

Autoconnect Options for Workstation 5.5, Fusion 3.x and later

The parameters for autoconnecting USB devices are expanded to include the USB device name and path, in addition to the already supported PID and VID syntax. Workstation also makes extra information available in the vmware.log file, located in the virtual machine directory, to make entering these parameters easier.

When a device is connected to the host, the virtual machine discovers the device and adds an entry to vmware.log. The virtual machine also discovers all devices attached to the host when the virtual machine is powered on, resumed, or reverted, and adds an entry for each device. For example, consider this vmware.log entry:
XXX XX XX:XX:XX: vmx| USB: Found device [name:SomeCompany\ USB device vid:0123 pid:abcd path:1/2/1]

There are four space-separated parameters available: name, vid, pid, and path.

The name Parameter

The name parameter is the string that describes the USB device. You may add the complete string of the USB device as a parameter, or a partial string if you want to match multiple USB devices for a specific word. Note that the string is not case sensitive and that spaces must be escaped with a backslash [ \ ] as they are in the vmware.log string.

To match the whole string from the example, use:

usb.autoConnect.device0 = "name:SomeCompany\ USB device"

To match all USB devices with SomeCompany in their names, use:

usb.autoConnect.device0 = "name:SomeCompany"

The vid and pid Parameters

The vid and pid parameters do the same thing as the previous autoconnect entry. To match the SomeCompany USB device in the preceding example, use:

usb.autoConnect.device0 = "vid:0123 pid:abcd"

To match any device that has the Vendor ID (VID) of SomeCompany, use:

usb.autoConnect.device0 = "vid:0123"

The path Parameter

The path parameter in vmware.log provides the path to the specific port on the host where the USB device is attached. Using autoconnect with the path entry binds a specific host port to that virtual machine. If the path parameter is used exclusively, any device that is attached to that host port automatically connects to that virtual machine.

To always connect any device attached to the host port in the above example, use:

usb.autoConnect.device0 = "path:1/2/1"

You can use the name, vid, pid, and path parameters in any combination. For the autoconnect to succeed, each parameter you enter must match.

To autoconnect the USB device in the example when connected to the same host port, use:

usb.autoConnect.device0 = "name:SomeCompany\ USB\ device vid:0123 pid:abcd path:1/2/1"

To autoconnect the USB device in the example, regardless of the host port to which it is connected, use:

usb.autoConnect.device0 = "name:SomeCompany\ USB\ device vid:0123 pid:abcd"

Additional Information

For translated versions of this article, see: