Back-level VMware ESXi 6.5 vmkusb to 6.0 to restore Windows 10 VM's USB sound

Posted by Paul Braren on Jun 19 2017 (updated on Apr 9 2020) in
  • ESXi
  • Virtualization
  • HowTo
  • HomeLab
  • Back in March of 2017, I needed to go back to using my SuperServer Workstation as my daily driver Windows 10 workstation, in large part because of excessive video render times for 4K video production workflow. This mean it was time to revisit how well this VM worked with the latest ESXi 6.5.0d, determining whether all features and functions behaved as they did back in the ESXi 6.0 days, when I first wrote this article:

    Backstory on the new USB issues noticed in 6.5.x

    That's a lot of USB devices mapped to my Windows 10 Creators Update VM.

    It would seem that VMware ESXi doesn't officially support ISOC (isochronous) for passthrough, used for video and audio devices, see:

    "SHINA MUSE Z5 HIFI USB to S/PDIF Converter USB DAC PCM2704 Sound Card Optical Coaxial" available at Amazon.

    I had been using my SHINA MUSE Z5 HIFI USB to S/PDIF Converter USB DAC PCM2704 Sound Card Optical Coaxial for many months with ESXi 6.0, so it was surprising that I just couldn't get sound working at all once I moved to ESXi 6.5, and it didn't matter if I had a USB 2.0 or USB 3.0 controller added to the Hardware Version 13 Windows 10 VM.

    If you find that you have one or both of these issues,

    1. attaching the USB 2.0 or the USB 3.0 controller or both controllers to your ESXi 6.5.x VM doesn't allow proper function of attached USB devices, using vSphere Client to attach the controller then the host's USB sound device to the VM, on Windows Device Manager, the display continually shows sound devices appearing and reappearing
    2. your Anywhere USB/2 device doesn't maintain connection to your keyboard and mouse properly, requiring you to RDP in remotely to get to Windows Device Manager, System devices, then right click on Network Attached USB Enumerator to disable then re-enable it

    good news, the workaround is easy to implement! It has kept things working smoothly for me for two months now. Flawless, skip-free sound in Spotify from my VM for example, even when the physical server is under heavy loads from other VMs. Just follow along with the one-line esxcli command to disable the vmkusb driver, as is also documented by VMware here:

    The sound workaround

    1. Open an SSH session (eg. PuTTY) to your ESXi 6.5.x
      server (if you forgot to enable SSH, here's how)
    2. Turn on maintenance mode, or ensure you've
      set your ESXi host to automatically gracefully shutdown all VMs upon host reboot, or shutdown all the
      VMs gracefully that you care about, including VCSA.
    3. Disable the vmkusb driver - Paste the one line below into your SSH session, then press enter:
      esxcli system module set -m=vmkusb -e=FALSE
    4. Check that it worked - Paste the one line below into your
      SSH session, then press enter:
      esxcli system module list | grep vmkusb
      It should indicate "false false", as pictured at right.
    5. Reboot your ESXi
      - Paste the one line below into into your SSH session, then press enter:

    Keep in mind you may need to redo this fix after any future upgrades to later ESXi versions.

    Jun 20 2017 Update

    Excellent comments left by Vic T below:

    Nice write-up, as always. Your site has always given me inspiration and keeping me up-to-date with what's possible in my home lab - a small-chassis x10sri-f on xeon e5 L v4, and a sys-e200-8d "frankensteined" with a 60mm fan to reduce the stock fan noise.

    Just wanted to share what I have with regard to GPU and USB3 isochronous, FWIW.

    On GPU, I managed to find an older Grid K2 card which has 2 GPUs on board - I passed through one of the GPUs to a VM for demanding tasks, and the other GPU can still accelerate other VMs vSGA (via VMware tools' 3d acceleration via Xorg on host) for lower requirements with the added advantage of being vMotion-able. The Grid K2 requires good cooling, so I ended up having to add a few more fans and so far the noise has been bearable. As opposed to the newer Grid, the K2 doesn't require the newer Nvidia software licensing which can get very expensive.

    On the USB, I've tried 3 USB-to-IP devices (yeah, part of work eval to passthrough USB-to-serial console and Rainbow tokenkeys): Digi's AnywhereUSB, SEH's UTN2500 and the Silex DS600. The AnywhereUSB is USB2.0 only and doesn't support isochronous and had driver issues. So far I've been having good results with SEH and Silex, both support isochronous and managed to run a USB-based DVD drive successfully.

    Jun 24 2017 Update

    Testing and using the Silex DS-600 Gigabit USB 3.0 High Throughput Device Server is going well so far, stay tuned for a separate article about it.

    The DS-600 is available on Amazon, with a funny typo in the product name, "Gigbie USB 3.0 Device Server."

    Jul 29 2017 Update

    VMware vSphere 6.5 Update 1 has arrived, and it turns out it has a new driver that doesn't exhibit the same issues with the that the earlier 6.5.x releases did. In other words, it just works, just like the 6.0 version did, this is good! This article is now obsolete, this is a good thing, less hassle for the few of us that tinker with USB sounds in VMs.

    Oct 01 2018 Update

    In ESXi 6.7, it seems that by default, these are how the vmkusb driver status appears.

    [root@xd-1541-5028d:] esxcli system module list | grep vmkusb
    vmkusb                              true        true

    Apr 09 2020 Update

    vSphere 7 was released on April 2 2020.
    Warning, you don't want to disable vmkusb in ESXi 7.0, even if you have some USB issues with audio devices. Why? Because you can't enable it again. That's right, this command:

    [root@xd-1567-5028d:~] esxcli system module set --module=vmkusb --enabled=true --force

    simply doesn't work, after a reboot, issuing this command gets me false false:

    [root@xd-1567-5028d:~] esxcli system module list | grep vmkusb
    vmkusb                             false       false

    The issues I'm having are related to VM Hardware 17 in a Windows 10 VM seems to have issues with Device Manager and the USB 3.1 Controller.

    See also at TinkerTry


    See also

    Suddenly, the 12 core Supermicro SuperServer isn't looking very pricey, even when fully loaded with 128GB of RAM!

    • Apple unleashes 18-core iMac Pro with 128GB RAM, bumps other Macs to Kaby Lake

      The biggest surprise was that Apple announced a new "space gray" iMac Pro that can be configured with up to an 18-core Intel Xeon CPU, 128GB of RAM, and a 4TB SSD drive. Keep in mind that the base model of this beast will feature an 8-core Xeon, 32GB of RAM, and a 1TB SSD and it will cost $4999. So, the price of the fully configured version is going to be astronomical, likely in the $8K-$10K range, when it arrives at "the end of the year."

    This excellent article details a different approach that leverages ESXi 6.0 and USB 2.0 passthrough: