Auto-connecting a USB device to a virtual machine fails with the error: failed: 17
search cancel

Auto-connecting a USB device to a virtual machine fails with the error: failed: 17

book

Article ID: 302762

calendar_today

Updated On:

Products

VMware Desktop Hypervisor

Issue/Introduction


Symptoms:
  • A USB device connects and then disconnects
  • A USB device does not stay connected
  • Passing a HID device using the autoconnect command fails.
  • You are unable to autoconnect a HID device to a virtual machine using this line:

    usb.autoConnect.device1 = "vid:xxxx pid:xxxx"

  • You see this error in the vmware.log:

    USB: Connecting device <device identifier> failed: 17


Environment

VMware Workstation 8.x (Windows)
VMware Workstation 6.x (Windows)
VMware Workstation 8.x (Linux)
VMware Workstation 9.x (Windows)
VMware Workstation 7.x (Linux)
VMware Workstation 7.x (Windows)
VMware Workstation 9.x (Linux)
VMware Workstation 6.x (Linux)

Cause

By default, Workstation ignores USB Human Interface Devices (HIDs) such as mice and keyboards. This is done to ensure that a device is not connected to the virtual machine, taking it away from the host, and leaving you unable to control the host.

Because Workstation ignores HIDs, you cannot connect them to a virtual machine automatically.

Resolution

To work around this issue, instruct Workstation to treat the the HID as a smart card and then automatically connect the device. To implement this workaround:

  1. Allow Workstation to recognize the device by editing the virtual machine settings file:

    1. Open the .vmx file for editing.
    2. Add this line to the .vmx file:

      usb.generic.allowHID = "TRUE"

    3. Power on the virtual machine.

      When the virtual machine powers on, it detects any USB devices connected to the host, even if they do not connect to the virtual machine.

    4. After the operating system has started, power off the virtual machine.

  2. Determine how Workstation is identifying the USB device, by locating its vid and pid:

    1. Open the vmware.log file.
    2. Search for the device manufacturer's name. Find a line that looks similar to:

      vmx | USB: Found device [name:Apple\ IR\ Receiver vid:05ac pid:8240 path:13/7/2 speed:full family:hid]

      This line has the name of the USB device and its vid and pid information. Make a note of the vid and pid values.

    3. Close the vmware.log file.

  3. Configure Workstation to recognize the device:

    • Workstation 7.1.5 and later

      Add a USB quirk to your virtual machines configuration (.vmx) file. For more information, see Tips for editing a .vmx file (1714):

      1. Open your .vmx file in a text editor
      2. Add this line, replacing <vid> and <pid> with the values you found earlier:

        • usb.quirks.device0 = "0x<vid>:0x<pid> allow"

          Example: For the Apple device found in step 2, this line is:

          usb.quirks.device0 = "0x05ac:0x8240 allow"

      3. Save and close the .vmx file.

    • Workstation 7.1.4 and earlier

      1. Configure the virtual machine's USB Arbitrator settings:

        1. Open the settings.ini file. The file's location varies by host operating system:

          • Windows Vista and 7: C:\ProgramData\VMware\VMware USB Arbitration Service\
          • Windows XP: C:\Documents and Settings\All Users\Application Data\VMware\USB Arbitration Service\
          • Linux: /usr/bin/vmware-usbarbitrator.

            Note: If the settings.ini file does not exist, you must create it. To create the file:

            1. Create an empty .txt file using Notepad
            2. Save the empty txt file as settings.ini file

        2. Add this line, replacing <vid> and <pid> with the values you found earlier:

          usb.quirks.device0 = "0x<vid>:0x<pid> smart-card"

          Example: For the Apple device found in step 2, this line is:

          usb.quirks.device0 = "0x05ac:0x8240 smart-card"

        3. Add this line to the settings.ini to automatically connect the device upon boot, replacing <vid> and <pid> with the values noted in Step 2:

          usb.autoconnect.device0 = "0x<vid>:0x<pid>"

          Example: For the Apple device found in step 2, this line is:

          usb.autoconnect.device0 = "0x05ac:0x8240"

        4. Save and close the settings.ini file.

Workstation supports auto-connecting smart cards, so adding this quirk allows the USB device to be connected automatically.


Additional Information

Automatically connecting USB devices at virtual machine power on
Tips for editing a .vmx file
Problems using some USB devices in a virtual machine