VMware Communities
ajuniper
Contributor
Contributor

Win10 Workstation USB won't work

I am trying to get Workstation / Player (tried both, no different) working on a Win 10 Enterprise build 1607 host with the ability to bind USB devices to the guest.  (Ignoring USB devices, everything else works fine).

I am using 12.5.6 - didn't try so much with 12.5.5  but

I've read loads of different posts, and tried loads of things (over and over again) including:

  • uninstall and reinstall
  • uninstall, reboot, remove vmnet* network adapters, uninstall /clean, prevent vmware services from starting, reboot, run the vmware full uninstall steps, remove registry entries, delete files, reboot, reinstall (I knew those old Win95 experiences would come in useful again some day!)
  • repair install, and repair install again

I've got past the failure to install vmusb and hcmon, and the usb arbitration service not starting.

I am now stuck with it simply saying 'the connection for the usb device "xxx" was unsuccessful' with a reason of "driver error".

The logs for the vmware USB arbitration service have this to say:

2017-06-12T21:45:16.048+01:00| vthread-4| I125: VTHREAD initialize thread 4 "vthread-4" host id 3856

2017-06-12T21:45:16.049+01:00| vthread-4| I125: USBArb: Starting VMUSBArbService args:'VMUSBArbService'

2017-06-12T21:45:16.053+01:00| vthread-4| I125: USBGW: Host controller #0 hc= "\\?\HCD0"

2017-06-12T21:45:16.053+01:00| vthread-4| I125: USBGW: Host controller #0 rootHubName="USB#ROOT_HUB30#4&2138960&0&0#{f18a0e88-c30c-11d0-8815-00a0c906bed8}"

2017-06-12T21:45:16.053+01:00| vthread-4| I125: USBGW: Host controller #0 rootHubDevInst="USB\ROOT_HUB30\4&2138960&0&0"

2017-06-12T21:45:16.054+01:00| vthread-4| I125: USBArbW: Connected to HCMON version 3.12

2017-06-12T21:45:16.135+01:00| vthread-5| I125: VTHREAD initialize thread 5 "vthread-5" host id 3892

2017-06-12T21:45:16.152+01:00| vthread-4| I125: VTHREAD initialize thread 4 "vthread-4" host id 3980

2017-06-12T21:45:16.152+01:00| vthread-4| I125: USBArb-BT: Beginning inquiry thread

2017-06-12T21:45:16.212+01:00| vthread-5| I125: USBArb: VMUSBArbService Started.

2017-06-12T21:45:18.184+01:00| vthread-5| W115: USBGW: WMIWin32_Wake failed for USB\VID_05C8&PID_0383\5&A6A6D4&1&9:1

2017-06-12T21:45:30.387+01:00| vthread-5| I125: USBArb: Num instances:2, user:SYSTEM client:vmware-hostd.exe

2017-06-12T21:45:30.387+01:00| vthread-5| I125: USBArb: Client 4488 connected (version: 7)

2017-06-12T21:46:12.542+01:00| vthread-5| I125: USBArb: Num instances:3, user:USER client:vmplayer.exe

2017-06-12T21:46:12.542+01:00| vthread-5| I125: USBArb: Client 9912 connected (version: 7)

2017-06-12T21:46:19.224+01:00| vthread-5| I125: USBArb: Num instances:4, user:USER client:vmware-vmx.exe

2017-06-12T21:46:19.224+01:00| vthread-5| I125: USBArb: Client 3556 connected (version: 7)

2017-06-12T21:46:19.224+01:00| vthread-5| I125: USBArb: Registered target 'vmware-vmx:C:\Users\USER\Documents\Virtual Machines\Ubuntu 64-bit\Ubuntu 64-bit.vmx' for client 3556.

2017-06-12T21:47:19.148+01:00| vthread-5| I125: USBArb: Connecting device 0x305c80383 to client 3556

2017-06-12T21:47:26.523+01:00| usbArb| I125: USBArb: Service being interrogated....

2017-06-12T21:47:27.274+01:00| usbArb| I125: USBArb: Service being interrogated....

2017-06-12T21:47:27.677+01:00| usbArb| I125: USBArb: Service being interrogated....

2017-06-12T21:47:35.116+01:00| vthread-5| W115: USBArbW: Connect failed: The semaphore timeout period has expired 0x(79)

2017-06-12T21:47:35.116+01:00| vthread-5| W115: USBArbW: Failed to connect device:305c80383 to 'dummy', status:4

2017-06-12T21:47:35.151+01:00| vthread-5| I125: USBArb: Client 3556 trying to close id 305c80383 it doesn't own.

It is on a laptop so there are loads of different USB devices to play with, and all of them fail the same way.

If I run the arbitration service manually (as listed in the first post below) I see this in the debug output when I try binding a new device:

C:\WINDOWS\system32>"C:\Program Files (x86)\Common Files\VMware\USB\vmware-usbarbitrator64" -f --verbose --debug 10

...

USBArb: USBArb_SendMsg op:4 len:4

USBArb: USBArb_SendMsg2 op:5 len:188

USBArb: USBArb_SendMsg2 op:5 len:227

USBArb: USBArb_SendMsg2 op:5 len:190

USBArb: USBArb_SendMsg op:4 len:4

USBArb: USBArb_SendMsg2 op:5 len:188

USBArb: USBArb_SendMsg2 op:5 len:227

USBArb: USBArb_SendMsg2 op:5 len:190

USBArb: USBArbCompletePipeRead: Asyncrhonously read the message from client:2C59970 len:8 readPos:8 isHeader:1

USBArb: USBArbInferMsg: Client 2C59970 wants to perform op:7 len:8

USBArb: USBArbPipeRead: Received request to read from client:2C59970 len:8 readPos:0 isHeader:0

USBArb: USBArbPipeRead: Synchronously read the message from client:2C59970 len:8 readPos:8 isHeader:0

USBArb: client:2C59970 op:7 len:8

USBArb: Client 1076 trying to close id 305c80383 it doesn't own.

USBArb: USBArbPipeRead: Received request to read from client:2C59970 len:8 readPos:0 isHeader:1

(Before I tried workstation, I was seeing the arbitrator fail with "error 31 a device attached to the system is not functioning" although all devices were correctly running in device manager - but I can't recreate that situation now).

What to try next?  I've spent many hours to get to this point and still no joy with something that should work out of the box like it has done for many years until now..

(One remaining question - I have vsphere client and client integration plugin installed - do they make a difference here?)

Some useful topics I've followed to no avail:

VMWare Workstation 12.5.5 / VMWare USB Arbitration Service

VM Removable Devices does not detect all USB devices under Workstation 12.5

The VMware USB Arbitrator returned error code 4(9)

VMware USB Arbitration service fails to start in VMware Workstation (2043656) | VMware KB

Error 31: A device attached to the system is not functioning, Windows 7 host, v. 7.1.4

Cleaning up after an incomplete uninstallation on a Windows host (1308) | VMware KB

Remove WorkStation Completly & Reinstall

Can't install Workstation Pro 12 because of virtual network driver

sanbarrow.com ~ Index

Reply
0 Kudos
18 Replies
bluefirestorm
Champion
Champion

You don't say what is the guest OS and the USB compatibility settings for the VM.

Based on the log, it looks like you are trying to connect a webcam device to the VM. Make sure you have the appropriate drivers for the VM OS (or at least it is able to find it online if the guest OS is Windows).

If your VM USB compatibility setting is set to USB 3.0, try setting it to USB 2.0 as the webcam (assuming built in to the laptop) might still be wired internally through a USB 2.0 controller. You can check this via Device Manager, selecting the webcam device and then View By Connections and see which USB Controller it is connected to. USB 3.0 controllers usually have the name eXtensible Host Controller or sometimes explicitly stated USB 3.0 while USB 2.0 controller tend to have a name such as "Enhanced Host Controller Interface".

ajuniper
Contributor
Contributor

I'm running a Linux guest and was using USB 2.0 compatability (don't recall actively setting it to anything).

Inside the guest, nothing is seen, no kernel messages, no entries in the USB connection list.  It feels like the host fails to unbind the USB device and never even tries handing it off to the guest.

The host is a very recent laptop and all internal USB devices connect via USB 3.0.

I hadn't thought to change the guest USB compatability settings and having changed it to USB 3.0, it works fine.

I tried this with a Win 7 VM that I also have, the same behaviour is observed there too - USB2.0 compatability, cannot bind devices, same error.  But because it's Win 7, I can't add a USB3 controller...  (Is there a KB for how to overcome this?)

My previous Win 8 laptop had mixed ports and nothing worked when connected to the USB3 port, and I had to bind all the VMs with USB2 controllers.  Seems like the reverse is now true.

Reply
0 Kudos
bluefirestorm
Champion
Champion

You should be able to set the USB compatibility to 3.0 for a Windows 7 VM. Just make sure the VM is powered off and not powered on nor suspended. Windows 7 doesn't have USB 3.0 drivers out-of-the-box. There is a VMware KB that will help address this.

https://kb.vmware.com/kb/2128105

Reply
0 Kudos
ajuniper
Contributor
Contributor

Hmm, spoke too soon on that one.

The machine I was testing with originally - created on this host - works fine if I set the controller to USB 3.0.  This shows as "Workstation 12.x virtual machine" in the inventory.

But other Linux machines (Ubuntu 14.04 and 16.04, created elsewhere and copied here, "Workstation 10.x virtual machine"), still suffer the same problem even if the controller is set to USB 3.0.

And the Win7 VM is "Workstation 8.x virtual machine".

I thought that I see a pattern here...

I tried updating the other Linux guests to Workstation 12.x (edit .vmx file) in the expectation it would address the issue and this did not fix the problem.  Same behaviour, the VM does not see any message and the same error appears.

Where to look next?

Reply
0 Kudos
bluefirestorm
Champion
Champion

It would be best to change the Hardware Compatibility via the VMware Workstation interface rather than editing the vmx manually as it is likely doing more than just changing that one dictionary entry line in the vmx file.

You can do this either:

(1) from the VM menu, Manage - Change Hardware Compatibility

(2) usually there is an upgrade hardware compatibility at the upper left corner of the tab of the open VM if the hardware compatibility is not current to the Workstation version

I think in both cases, the VMs have to be powered off.

Reply
0 Kudos
ajuniper
Contributor
Contributor

Spoke too soon on that one again.

The machine which worked - created on this workstation install - now doesn't work and is behaving the same.  Went for a reboot and it's still bust.

On the older machines, I tried changing the hardware compatability thru workstation (set it back to 10.x, saved, then back to 12.x, saved) and it still doesn't work either.

When running, it tries to do something in the guest as I see two new "VMware Inc. Virtual USB Hub" entries appear in lsusb output, but then the error appears and they disappear.

Reply
0 Kudos
bluefirestorm
Champion
Champion

Did you upgrade the VMware Tools as well?

FWIW, I have one Ubuntu 16.04 Desktop VM on Workstation 12.5.5.

I installed the tools using the sudo ./vmware-install.pl (not the open-vm-tools method). I leave out the -d option otherwise it will abort as the default is "No" on the very first question to continue. Just have to accept a lot of default yes/no questions and default target directory paths. These are what looks to be processes related to VMware running within the Ubuntu VM. Note that there is another vmware-usbarbitrator is in the list.

/usr/bin/vmware-usbarbitrator

/usr/sbin/vmware-vmblock-fuse -o subtype=vmware-vmblock,default_permissions,allow_other /var/run/vmblock-fuse

/usr/sbin/vmtoolsd

/usr/lib/vmware-vgauth/VGAuthService -s

//usr/lib/vmware-caf/pme/bin/ManagementAgentHost

/usr/sbin/vmware-authdlauncher

/usr/lib/vmware-tools/sbin64/vmtoolsd -n vmusr --blockFd 3

This is the output of the lsusb tree with a USB 3.0 thumb drive attached the xhci controller.

/:  Bus 04.Port 1: Dev 1, class="root_hub", Driver=xhci_hcd/4p, 5000M

    |__ Port 1: Dev 2, If 0, class="Mass" Storage, Driver=usb-storage, 5000M

/:  Bus 03.Port 1: Dev 1, class="root_hub", Driver=xhci_hcd/4p, 480M

    |__ Port 1: Dev 2, If 0, class="Human" Interface Device, Driver=usbhid, 12M

/:  Bus 02.Port 1: Dev 1, class="root_hub", Driver=uhci_hcd/2p, 12M

    |__ Port 2: Dev 2, If 0, class="Hub", Driver=hub/7p, 12M

/:  Bus 01.Port 1: Dev 1, class="root_hub", Driver=ehci-pci/6p, 480M

Reply
0 Kudos
ajuniper
Contributor
Contributor

The only machine which (briefly) worked is actually running Ubuntu mini remix - a live boot machine running from RAM.

By default it doesn't actually fire up any tools package - and that is the situation the only time it worked.

I tried installing both VMware-Tools from the workstation install, and open-vm-tools (seperate boot) and neither made any difference.

(which I guess is expected, I've never found a need before to install tools to get USB devices to show up).

When I ran the tools from VMware, I didn't see any sign of a vmware-usbarbitrator process (or even file on disk).  The term "usbarb" does not appear (case insensitive grep) anywhere in the unpack of the VMware tools tarball.

FWIW, this VM is running kernel 4.4.0-21.

Will experiment a little more tonight with the other VMs.

Thanks for your help...

Reply
0 Kudos
Skyward
Contributor
Contributor

Real Longshot - Please Forgive if I am in Left Field:

On your Windows 10 Host, have you moved your pagefile off of the system partition?

If so, on your Windows 10 Host, as a test, temporarily disable your dumpfile and reboot.

WINKEY+BREAK > Advanced System Properties > Advanced Tab >

Under Startup and Recovery, Click <Settings>

Under Write debugging information - Set pulldown to (none)

Click <OK> and reboot.

I had a similar problem.  Win10 1703 Host w/VMware Workstation 12.5.6

I moved my pagefile off of my system drive to save wear and tear on my SSD.  Soon thereafter I was unable to connect USB devices to my guest OSes.  I took a look at the errors in Event Viewer and found VMware Workstation Server and VMware USB Arbitration Service were failing on start.  But just preceding their failure Windows was complaining that the crashdump file could not be created.  I disabled debugging altogether, rebooted, and the services started launching normally.  Naturally this solves nothing, but it may help shine some light on the issue assuming it is applicable to you.

Reply
0 Kudos
ajuniper
Contributor
Contributor

OK, did a load more playing.

Having updated my Win7 VM to H/W ver 12, changed the USB controller to USB3, installed the Intel XHCI driver - I get exactly the same response in the Win7 VM as with Linux - it tries to connect to the VM then gives up with the same driver error message as when connecting the USB device to a Linux VM.

I uninstalled everything from VMware - vSphere client, vsphere remote client, workstation - then followed the KB1308 steps for cleaning up afterwards, along with numerous others including removing files and everything from the registry.  Re-ran the install which went smoothly - even had a USB arbitration service running once it completed.

Still no joy however, USB arb no longer hangs but still no way to get USB devices to appear in the VM.

The VM logs (still) say this:

2017-06-18T22:08:22.846+01:00| vmx| W115: USBGA: Failed to connect device 1000000305c80383, error (4)

2017-06-18T22:08:22.846+01:00| vmx| I125: Msg_Post: Warning

2017-06-18T22:08:22.846+01:00| vmx| I125: [msg.usb.connectFailedErr] The connection for the USB device 'Cheng Uei Precision HP HD Camera' was unsuccessful. Driver error.

The usbarb logs say this:

2017-06-18T22:08:07.677+01:00| vthread-5| I125: USBArb: Connecting device 0x305c80383 to client 11128

2017-06-18T22:08:22.846+01:00| vthread-5| W115: USBArbW: Connect failed: The semaphore timeout period has expired 0x(79)

2017-06-18T22:08:22.846+01:00| vthread-5| W115: USBArbW: Failed to connect device:305c80383 to 'ajw7', status:4

2017-06-18T22:08:22.874+01:00| vthread-5| I125: USBArb: Client 11128 trying to close id 305c80383 it doesn't own.

2017-06-18T22:08:55.352+01:00| vthread-5| I125: USBArb: USBArbCompletePipeRead: Failed to get overlapped result for read. client:E37DD0 len:8 readPos:0 isHeader:1 with error The pipe has been ended (109)

2017-06-18T22:08:55.352+01:00| vthread-5| I125: USBArb: Client 11128 disconnected

2017-06-18T22:08:55.352+01:00| vthread-5| I125: USBArb: Target 'vmware-vmx:C:\Users\ajuniper\Documents\Virtual Machines\ajw7\ajw7.vmx' disconnected

2017-06-18T22:08:57.743+01:00| usbArb| I125: USBArb: Service being interrogated....

2017-06-18T22:08:57.759+01:00| usbArb| I125: USBArb: Service being interrogated....

2017-06-18T22:08:59.587+01:00| vthread-5| I125: USBArb: USBArbCompletePipeRead: Failed to get overlapped result for read. client:E36CF0 len:8 readPos:0 isHeader:1 with error The pipe has been ended (109)

2017-06-18T22:08:59.587+01:00| vthread-5| I125: USBArb: Client 732 disconnected

What next?  FWIW I tried enabling USB debugging in the .vmx file and there was no additional output in the VMware log at the time I tried connecting the device.

Reply
0 Kudos
ajuniper
Contributor
Contributor

@skyward thanks for taking the time to read this thread and contribute, unfortunately your suggestion made no difference.

thanks

Andy

Reply
0 Kudos
bluefirestorm
Champion
Champion

If the error (4) is interpreted as a Windows error code, that also an error code meaning "Unable to open file".

Considering that you are able to attempt to connect the device in the "Removable Devices" menu, it would look as though the USB Arbitration service is running OK in the host machine.

So the problem might actually lie inside the VM(s).

Did you also update the VMware Tools of the Windows 7 VM?

As to the webcam, have you tried downloading the webcam driver and installing it inside the Windows 7 VM before connecting the device?

It would be best to clean out any previous webcam software drivers inside the VM. You can do this by going to the Device Manager - Show Hidden Devices and look for any hidden webcam (if any) under the Imaging Devices category. You can then uninstall the webcam device driver.

Did you get to try other USB devices such as a USB flash storage stick?

Reply
0 Kudos
ajuniper
Contributor
Contributor

Hi

Yes, the USBarb service is running OK - it is listing the devices and presenting them for connection - when the service was not running, there were no devices listed.

I'm pretty confident that the problem is outside the VMs - I've tried Win7 and Linux, VMs imported from earlier versions and freshly created VMs - the same error comes up every time.

I did update the VMtools in the Win7 VM, and the USB camera is a generic camera that doesn't need special drivers.  And from the fact that the Linux machine never sees anything change on the USB bus, I'm also pretty confident that the host never lets workstation/player grab the device at all.

I also tried with all the other USB devices internal to the host (Bluetooth, fingerprint reader and webcam) and they all behave the same - 15 seconds after I try connecting, I get the failed to connect message.

But: Problem Worked Around!

I plugged a USB flash drive in (running VM) and it worked vwithout fuss.  And as a bonus, I then could bind the camera in to the VM too...  As often as I like.

Shut the machine down, remove the USB flash drive, problem returns - cannot bind devices, same error as before.

Put the USB flash drive back in - it all works again.

Remove the USB flash drive - webcam keeps working.

Disconnect then reconnect the webcam from the VM, it won't reconnect, same error as before.

Then insert USB drive - not only does the flash drive appear, so does the webcam!

(The same is true for inserting any USB device, not just USB flash device)

It is like the message from workstation/player is not been heard by the USBarb service until it gets woken up by something changing on the USB hub, whereupon it binds the device to the VM.

Yuk!

Thanks for your thoughts and ideas on this, hopefully it will help someone else in future too...

lancechou
Enthusiast
Enthusiast

This is probably caused by USB devices with remote device wakeup capability.

You can try if the following steps work around the issue

1. Go to device manager on the host

2. Right click on the failing device

3. Click on the 'Power Management' tab

4. Uncheck 'Allow the computer to turn off this device to save power

Thanks,

Lance

ajuniper
Contributor
Contributor

Hi

Thanks for the suggestion, that indeed does partially resolve the problem

The integrated USB fingerprint reader handles this nicely as does the integrated Bluetooth adapter .  But the integrated webcam does not have a power management tab?

thanks

Andy

Reply
0 Kudos
bluefirestorm
Champion
Champion

There is a "USB selective suspend setting" under "USB settings" in "Change advanced power settings" in Powercfg.cpl for each individual plan if you click on "Change plan settings". By default it is "Enabled" even for "Plugged In" in "High performance plan"

In theory, setting this to "Disabled" in the Power Management plan setting should affect all USB devices to not suspend itself to save power.

Reply
0 Kudos
ajuniper
Contributor
Contributor

I can confirm that this setting also works for permitting the guest to connect the USB devices that were previously causing trouble.

I notice that 12.5.7 just came out, is that likely to fix this issue?  It's a PITA having to turn the devices on/off to balance usage against battery life.

Reply
0 Kudos
PhilStevens
Contributor
Contributor

I tried the other stuff (deleting drivers, uninstalling/reinstalling VMware), but it didn't work.  Changing to USB 2.0 seems to have worked.  Thanks.

Reply
0 Kudos