About a month back I had received an interesting tidbit from Darius Davis (VMware Engineer) after helping a customer solve an interesting problem and Darius thought this could be a useful blog post to share. Funny enough, a couple of weeks after that conversation, a simliar issue was being faced by another customer and luckily I was able to share with them the solution and also validate the specific configuration that was needed.
The customer that Darius was helping out had two VMs running on ESXi which they wanted to configure several passthrough devices. In addition to a PCI passthrough of a GPU, they also wanted to passthrough independent USB keyboard and mouse to each individual VM. PCI passthrough to a VM is nothing new but passing through a USB keyboard/mouse also known as Human Interface Devices (HID) to a VM is generally not expected. The physical ESXi host just assumes these type of USB devices are meant for it to consume.
In addition to HID USB devices, there are also Chip Card Interface Devices (CCID) USB devices like a smart card reader which customers may also want to passthrough to a VM. The latter use case was what I ended up helping the customer out with. To passthrough HID/CCID USB devices, the following steps are required which will include changes to the ESXi host.
Step 1 - Add the following two VM Advanced Settings for all USB CCID/HID devices that you wish to enable passthrough:
HID USB Devices:
usb.generic.allowHID = "TRUE"
usb.quirks.device0 = "0xXXXX:0xYYYY allow"
CCID USB Devices:
usb.generic.allowCCID = "TRUE"
usb.quirks.device0 = "0xXXXX:0xYYYY allow"
where 0xXXXX = vendorId and 0xYYYY = deviceId (e.g 0x03f0:0x0024) which was retrieved from the previous step
To list all USB devices and get their vendor and device ID, you can use the lsusb command found within the ESXi Shell and below is an example listing out both my USB Mouse and Keyboard.
lsusb -v | grep -E '(^Bus|HID)' Bus 001 Device 001: ID 0e0f:8003 VMware, Inc. Root Hub Bus 002 Device 001: ID 0e0f:8003 VMware, Inc. Root Hub Bus 001 Device 003: ID 8087:0026 Intel Corp. Bus 001 Device 004: ID 0781:5591 SanDisk Corp. Ultra Flair Bus 001 Device 002: ID 05fe:0011 Chic Technology Corp. Browser Mouse iConfiguration 4 HID Mouse HID Device Descriptor: bcdHID 1.00 Bus 001 Device 005: ID 046d:c31d Logitech, Inc. Media Keyboard K200 HID Device Descriptor: bcdHID 1.10 HID Device Descriptor: bcdHID 1.10
Step 2 - We need to make the USB arbitrator service aware of these USB device quirks by adding the usb.quirks.deviceN string to /etc/vmware/config file. In my example above, I want to enable passthrough for both my Mouse and Keyboard device, so the following entries would be appended:
usb.quirks.device0 = "0x05fe:0x0011 allow"
usb.quirks.device1 = "0x046d:0xc31d allow"
Step 3 - Lastly, we need to append the following string to the ESXi boot option to disable the VMkernel from claiming HID USB devices.
CONFIG./USB/quirks=0xXXXX:0xYYYY::0xffff:UQ_KBD_IGNORE
where 0xXXXX = vendorId and 0xYYYY = deviceId (e.g 0x03f0:0x0024)
The easiest way to append this to the boot option is by editing /bootbank/boot.cfg rather than manually typing this during the initial boot up (SHIFT+O)
Note1: This is not required for CCID devices or mouse devices as they are not claimed by ESXi
Note2: The USB quirks are given in sets of five parameters - vendorID:deviceID:minRevision:maxRevision:quirkName If you wish to specify multiple devices, you will need to ensure all five parameters are included. Here's an example for specifying two USB devices: CONFIG./USB/quirks=0x05fe:0x0011::0xffff:UQ_KBD_IGNORE:0x046d:0xc31d::0xffff:UQ_KBD_IGNORE
Step 4 - A system reboot of your ESXi host will be required for the changes to go into effect. Once your ESXi host is available, you can use the vSphere H5 Client or Embedded ESXi Host Client to attach the USB devices. For vCenter Server, click on "Add New Device" and select "Host USB Device" and for ESXi, click on "Add other device" and select "USB Device".
Greg W says
Thanks for sharing. So for additional devices you would increase deviceX number, like this:?
usb.quirks.device0 = "X:Y allow"
usb.quirks.device1 = "X:Y allow"
William Lam says
That's correct
Jeff says
Is this method also conpatible with esxi 6.0 ?
William Lam says
Jeff,
I'm not sure, probably easiest to give it a try. I'm sure you know, 6.0 is already EOL and you or the customer should think about upgrading to a supported version 🙂
Jeff says
lsusb do not show any usb hid device in esxi 6.
Yeahman says
Same here 🙁 ..cannot see hid devices with lsusb
William Lam says
Apologies for the delay, I was waiting to hear back from Engr. It looks like a few additional steps were required which I've manually confirmed myself. I've also included an example of using `lsusb` to help list out the HID/CCID devices. Please see the updated article
Ren says
How do i identify which usb port in esxi is which port i use in linux ? I passed thru all usb ports to a vm for home automation donhle but the dongle only uses 1 port. Can't figure out whats what.
William Lam says
I've updated the article with an example `lsusb` command, see if that helps
Ren says
lsusv -v returns nothing on mine...?
das1996 says
Where exactly in boot.cfg does the string in step 3 go?
das1996 says
Also, which vendorID & deviceID go in there? That of the keyboard, mouse, both? If both, then multiple lines are used (since 2 different xxxx:yyyy values)?
Maybe post an example using your keyboard/mouse from earlier?
William Lam says
Which step are you referring to? The instructions are detailed in each step which includes where boot.cfg is located 🙂
das1996 says
Thanks for the quick reply.
STEP 3
I know where boot.cfg is located, but _WHERE_ in boot.cfg does that string go?
Also, it's unclear what vendor/device id's are used?
Where is 0x03f0:0x0024 coming from? You reference a previous step but I don't see it.
William Lam says
Re: boot.cfg - This is the kernelopt line just like any other kernel setting. Assuming readers have basic understanding of ESXi
Re: Vendor/Device ID - Its immediately below the section where it says how to retrieve these IDs via lsusb
das1996 says
My current kernelopt looks like this:
kernelopt=installerDiskDumpSlotSize=2560 no-auto-partition
So with your addition it should look like
kernelopt=installerDiskDumpSlotSize=2560 no-auto-partition CONFIG./USB/quirks=0xXXXX:0xYYYY::0xffff:UQ_KBD_IGNORE
In case your software word wraps, the above is all on a single line, with a space between the n (in partition) and C (in CONFIG).
William Lam says
correct
Has says
Hi
I have tried this and had no luck - did anyone else have any luck getting this to work?
I am using ESXI 6.7 update 3
Mark Kundinger says
hello from two years later. I bumped into the problem where I didn't know I needed to add the CONFIG./USB string to the end of the existing kernelopt line (I thought it was an entirely new line in the file). It might be worth slighly appending the writeup to mention this so other doofuses like me don't make the mistake.
Oliver Lis (@Oliverf0x) says
Just tried that on my 7.0 Host, because if you Passtrough an USB PCIe Card to a VM which has USB Devices/Cables attached, the corresponding VM doesn't boot (stuck before BIOS/UEFI).
If you remove the USB Devices/Cables before the VM starts, and connect it after the VM is powered On everything works..
Sooo 🙂
The lsusb -v | grep -E '(^Bus|HID)' command gave me the following interesting Devices:
Bus 001 Device 010: ID 1e7d:2e22 ROCCAT
HID Device Descriptor:
bcdHID 1.00
HID Device Descriptor:
bcdHID 1.11
can't get device qualifier: Resource temporarily unavailable
Bus 001 Device 011: ID 046d:c223 Logitech, Inc. G11/G15 Keyboard / USB Hub
Bus 001 Device 012: ID 046d:c226 Logitech, Inc. G15 Refresh Keyboard
HID Device Descriptor:
bcdHID 1.10
HID Device Descriptor:
bcdHID 1.10
can't get device qualifier: Resource temporarily unavailable
Bus 001 Device 013: ID 046d:c227 Logitech, Inc. G15 Refresh Keyboard
HID Device Descriptor:
bcdHID 1.11
can't get device qualifier: Resource temporarily unavailable
Bus 001 Device 014: ID 046d:0a5b Logitech, Inc. G933 Wireless Headset Dongle
HID Device Descriptor:
bcdHID 1.11
My Mouse is the entry called ROCCAT with the ID 1e7d:2e22 - easy.
And my Keyboard is 046d:c226 (the other entries are the integrated USB Hub and LCD Display on this Keyboard).
Making the change to the boot.cfg was easy:
kernelopt=autoPartition=FALSE CONFIG./USB/quirks=0x046d:0xc226::0xffff:UQ_KBD_IGNORE
And voila!
The Keyboard entry is listed and works within the VM!.
But the mouse isn't available from the list of USB Host Devices...
I tried adding another CONFIG./USB/quirks entry with the IDs from my mouse after the Keyboard-Entry removes the Keyboard from the USB Host List but the mouse is available 🙁
Trying something like this also didn't worked:
CONFIG./USB/quirks=0x046d:0xc226:0x1e7d:0x2e22::0xffff:UQ_KBD_IGNORE
It seems like only the last CONFIG./ entry is used. Is there a way to add two devices? Or did something with the behavior for a mouse changed within 7.0?
Another simple Dell Mouse also doesn't get recognized
Neil says
I believe Quirks can be chained in the boot.cfg file like so: CONFIG./USB/quirks=0x2047:0x0318::0xffff:UQ_KBD_IGNORE:0x0557:0x2419::0xffff:UQ_KBD_IGNORE:0x2588:0x0001::0xffff:UQ_KBD_IGNORE
Use a single : as the separator. Everything has to be on the same line.
Oliver Lis (@Oliverf0x) says
Thank you for this hint!
Now the Mouse and Keyboard are given to the VM 🙂
https://imgur.com/a/lk6p4EH
When i'm at home after work i can try this out, but i expect that it will work.
And with that i can update my ESXi with the VR-VM to 7.0 🙂
(Downgraded to 6.7 because of the USB PCIe Passtrough).
Oliver Lis (@Oliverf0x) says
Just wanted to give an update.
Passing my Devices (Keyboard, G930 Headset and Mouse, 3d printer) worked.
But after some minutes the USB reconnecting party started and the VM got pretty laggy and no inputs where recognized by the Keyboard or mouse.
After the vm was responsive again the headset was "lost" so i went back to the passtroughed USB PCIe "solution" (even tough i need to detach and re-attach the devices, but maybe we get a solution to that 😉 ).
shroomhead says
hi,
have you found a solution for this? i have the same problem but i can't passtrough the usb controllers so im stuck with this.. 🙁
Jeff says
Hi,
I gave up on trying to get ESXi to leave a keyboard for the Windows VM, and bought one of these cards:
High Point 4-Port USB 3.0 PCI-Express 2.0 x 4 HBA RocketU 1144D $109
https://www.amazon.com/gp/product/B015CQ8DCS/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1
It lets me PCI pass through some or all of the USB ports to the VM, and has been working flawlessly with the keyboard, mouse, and headset for weeks now.
Al says
I can get the mouse to show up, but never the keyboard, I changed the keyboard and made the changes accordingly. does this method work on 6.7 U3?
I dont think the boot.cfg is taking the input to ignore the keyboard input (CONFIG./USB/quirks=0x033a:0x0318::0xffff:UQ_KBD_IGNORE) i put it right after no-auto-partition
Asaf says
Keyboard ignore didn't work for me too, because appended "kernelopt" parameter "CONFIG./USB/quirks=..." needs to be in the same line after previous parameter
Not in two lines ("Return" char), as shown in original post and all over this discussion
Once fixed an reboot, keyboard appears under host USB devices to add as well
jbperrin88jbperrin says
Hi there !
I'm using ESXI 6.7 on intel NUC6I7KYK.
I'm successfully passthrough iGPU but still no luck with keyboard and mouse.
I've try your way .... still failed !
Bus 001 Device 005: ID 1f75:0917 Innostor Technology Corporation (esxi host installed THERE)
Bus 001 Device 004: ID 8087:0a2b Intel Corp.
Bus 001 Device 003: ID 046d:c52b Logitech, Inc. Unifying Receiver (logitech wireless keyboard)
Bus 001 Device 002: ID c0f4:01b0 (other wired keyboard)
Bus 001 Device 001: ID 0e0f:8003 VMware, Inc. Root Hub
Can't passthrough complete PCI USB (maybe cause the esxi host is in a usb key ..)
cat /etc/vmware/config
libdir = "/usr/lib/vmware"
authd.proxy.nfc = "vmware-hostd:ha-nfc"
authd.proxy.nfcssl = "vmware-hostd:ha-nfcssl"
authd.proxy.vpxa-nfcssl = "vmware-vpxa:vpxa-nfcssl"
authd.proxy.vpxa-nfc = "vmware-vpxa:vpxa-nfc"
authd.fullpath = "/sbin/authd"
usb.quirks.device0 = "0x046d:0xc52b allow"
usb.quirks.device1 = "0xc0f4:0x01b0 allow"
cat /bootbank/boot.cfg
bootstate=0
title=Loading VMware ESXi
++++
CONFIG./USB/quirks=0x046d:0xc52b::0xffff:UQ_KBD_IGNORE
CONFIG./USB/quirks=0xc0f4:0x01b0::0xffff:UQ_KBD_IGNORE
and also add to VMX file :
usb.generic.allowHID = "TRUE"
usb.generic.allowLastHID = "TRUE"
usb.quirks.device0 = "0x046d:0xc52b allow"
usb.quirks.device1 = "0xc0f4:0x01b0 allow"
Can you please , help me ?
William Lam says
It doesn't matter if ESXi is using on a USB device. Can you debug by first attempting the keyboard before proceeding the mouse? Also, you don't need to specify mouse entry in Step 3 as mentioned.
Alex says
esxi 6.5U3 on Asus Z370-A. I did it with the mouse, but it didn’t work with the keyboard. how can debug ? what logs to check ? Can you please , help me ?
Patrick says
I am loocking for a way to connect an usb webcam to a virtual server. I tired it with the mentioned settings, but I still get only a black screen from the webcam. Do you have any idea how that can be done?
Thanks and regards
das1996 says
Has anyone been successful passing through a logitech unifying receiver?
Bus 001 Device 003: ID 046d:c52b Logitech, Inc. Unifying Receiver
Seems no matter what, I can't get it to show up as a passthrough device.
Tried kernel option "UQ_HID_IGNORE" instead of KBD still with no success. The dongle identifies itself as both, a keyboard, mouse and some unidentified device.
Thoughts?
das1996 says
My current esxi box has an additional asmedia usb controller, so for quite some time i've been passing it through to windows to allow for the wireless keyboard/mouse connectivity.
I had hoped the steps in this blog would work to passthrough the logitech receiver but no go.
At some point i'll upgrade the server to a board without the additional usb controller. One option is to buy a pcie card, but seems thats a bit of a crapshoot too in terms of stability.
I was reading elsewhere about USB over IP. https://blog.rylander.io/2016/12/01/passthrough-usb-keyboard-and-mouse-to-vm-on-esxi/
While his case use isn't identical to mine, it was worth exploring virtualhere (https://www.virtualhere.com/home) .
In essence it's a client/server relationship where the usb device runs on some other device. The client/server interact over ip. The free version allows for a single usb device per server. Perfect in my case as its just the dongle.
The server turned out to be an access point running asusmerlin firmware in the same room as the esxi box. The AP already does a few other things so entware was already installed. Just a matter of installing the generic arm version of the server, pointing the config file to the vid/pid of the dongle and setting up the daemon to auto start when the ap is rebooted.
On the windows side the client installs a virtual usb driver. There's options to allow it to autoconnect when the program starts (just place in the windows startup folder).
Keyboard response seems fairly real time (AP is wired to rest of network) without any issues. We'll see how it works over the next week. Hopefully it proves stable.
das1996 says
Decided to give this another shot on a test machine (esxi 7 update 1). Followed all the steps. It works! I'm not sure what was differently before. It boiled down to several steps
1) /bootbank/boot.cfg kernel option edit -
CONFIG./USB/quirks=0x046d:0xc52b::0xffff:UQ_KBD_IGNORE
2) /etc/vmware/config edits
usb.quirks.device0 = "0x046d:0xc52b allow"
3) .vmx edits (2)
usb.quirks.device0 = "0x046d:0xc52b allow"
usb.generic.allowHID = "TRUE"
4) Add logitech receiver as a usb device in vm editor.
Thanks again!
colinhd8colin says
Hi das1996:
About the kernel option, is it like this:
kernelopt=autoPartition=FALSE
modules=jumpstrt.gz --- useropts.gz --- features.gz --- k.b00 --- uc_intel.b00 --- uc_amd.b00 --- uc_hygon.b00 --- procfs.b00 --- vmx.v00 --- vim.v00 --- tpm.v00 --- sb.v00 --- s.v00 --- mellanox.v00 --- mft
build=7.0.1-0.0.16850804
updated=4
CONFIG./USB/quirks=0x1d57:0xfa21::0xffff:UQ_KBD_IGNORE
or:
kernelopt=autoPartition=FALSE CONFIG./USB/quirks=0x1d57:0xfa21::0xffff:UQ_KBD_IGNORE
Thanks.
das1996 says
Second option. It's a parameter of the kernelopt key.
colin says
Finally i successfully passthrough the usb device to vm. Thanks everyone for their help.
And this is my step:
1) for mouse:
a) /etc/vmware/config edit –
usb.quirks.device0 = "0x045e:0x0782 allow"
2) for logitech unifying receiver
a) /etc/vmware/config edit –
usb.quirks.device1 = "0x046d:0xc52b allow"
b) append CONFIG./USB/quirks=0x046d:0xc52b::0xffff:UQ_KBD_IGNORE to kernelopt in the file of /bootbank/boot.cfg
P.S. both of them no need to edit the .vmx file. Test it for esxi 6.7 u3.
Thanks and regards
Martin says
This one works for ESXi 7.0.3 installed on NUC11TNHv70L, and I can add both my wired mouse and wired keyboard to the guest VM.
This work for both windows10 VM and Ubuntu22.04 VM.
Thanks colin.
PS: Though I installed ESXi 7.0U3f, the screenshot shows 7.0U2.
https://imgur.com/CFXmWvc
Mark says
Hi! I´m trying to add an EATON UPS Elipse Eco to a Ubuntu 20 VM which runs a NUT server.
Hardware is SuperMicro X11SCH-LN4F board with Xeon E-2236, ESXi 6.7.0 Update 3 (Build 17167734) Nov 2020 Update
Here´s my lsusb output:
Bus 001 Device 003: ID 0463:ffff MGE UPS Systems UPS
Bus 001 Device 006: ID 0781:5581 SanDisk Corp. Ultra
Bus 001 Device 005: ID 0557:2419 ATEN International Co., Ltd
Bus 001 Device 004: ID 0557:7000 ATEN International Co., Ltd Hub
Bus 001 Device 002: ID 0451:16a8 Texas Instruments, Inc. CC2531 ZigBee
Bus 001 Device 001: ID 0e0f:8003 VMware, Inc. Root Hub
Somehow it does not seem to work. The vm says "can't add hid device: -71
Mark says
Here are the lines I added in the config files:
/etc/vmware/config
usb.quirks.device0 = "0x0463:0xffff allow"
/bootbank/boot.cfg
CONFIG./USB/quirks=0x0463:0xffff::0xffff:UQ_KBD_IGNORE
also tried
CONFIG./USB/quirks=0x0463:0xffff::0xffff:UQ_HID_IGNORE
das1996 says
I didn't have to do anything special to pass a cyber powersystems ups to its monitoring software. Is the device showing up in the usb device list when you edit the vm?
Mark says
Yes, it is listed in the USB devices, even without the edits from this thread. But It is listed as a HID device...
das1996 says
What about the vmx file edits?
Mark says
Yes, I added them and also tried without.
Peter says
Exactly the same Problem :/ I bought a PCI-e USB Card an will try it passthrough
Mark says
Same here, but I want to get rid of this usb card and use the built-in USB ports, so I don’t block the PCIe Slot.
surfaraz says
I have followed the instructions and got the mouse working, but cannot passthrough keyboard on esxi 6.5u2. Am i doing something wrong, please see below;
edit /etc/vmware/config
=======================
usb.quirks.device0 = "0x145f:0x01e5 allow"
usb.quirks.device1 = "0x0461:0x4d51 allow"
edit bootbank/boot.cfg
======================
kernelopt=autoPartition=FALSE CONFIG./USB/quirks=0x0461:0x4d51::0xffff:UQ_KBD_IGNORE
kernelopt=autoPartition=FALSE CONFIG./USB/quirks=0x145f:0x01e5::0xffff:UQ_KBD_IGNORE
edit vm.vmx
===========
usb.generic.allowHID = "TRUE"
usb.quirks.device0 = "0x145f:0x01e5 allow"
usb.quirks.device1 = "0x0461:0x4d51 allow"
Bruce Bowman says
I have tried the steps as well. ReRunning vi /etc/vmware/config and vi bootbank/boot.cfg shows everything is correct. I am only tryng to pass a Logitech unifying device from main motherboard to a VM.
After esxi reboot(multiple) there is no unifying device as an additional usb option to add in vm settings. Are the above steps only for pci?
Jeff says
On ESXi 6.7.0U3 I've had luck with USB Device pass-through with my optical mouse, it was easy given the excellent instructions above.
But I've had no luck at all with USB Device pass-through of the keyboard. I've got two connected, and have tried passing through each of them individually. The problem seems to be that I cannot get the kernel to ignore the device. Once the host is up, both keyboards control the ESXi host. I set the /bootbank/boot.cfg of course, but it has no effect. I've tried appending each the following:
CONFIG./USB/quirks=0x0461:0x4e67::0xffff:UQ_KBD_IGNORE
CONFIG./USB/quirks=0x0461:0x4e67:0:0xffff:UQ_KBD_IGNORE
CONFIG./USB/quirks=0x0461:0x4e67::0xffff:UQ_HID_IGNORE
I even tried leaving the keyboard disconnected until I was about to assign it to the VM.
Am I correct in assuming that the specified keyboard should not work with the ESXi host UI if the ignore is working?
I know that the 'kernelopt' is registering as it shows up on the ESXi host advanced parm 'USB.quirks'.
Any ideas? I'm just about to give up on this and buy a USB PCIe card and pass the whole thing through to the VM with PCI Pass-through.
Thanks!
Oliver says
Thanks for the solution,
works fine for me.
I have a additional solution for getting keyboard and mouse working on the vms....
Just use BluetoothDongles and add per vm..... pair mouse and keyboard.... done...
Greetings
Oliver
Hr says
Hi,great post.
Exi 6.7
/etc/vmware/config
usb.quirks.device0 = "0x045e:0x0752 allow"
usb.quirks.device1 = "0x04d9:0xa0d6 allow"
usb.quirks.device2 = "0x046d:0xc31c allow"
usb.quirks.device3 = "0x04d9:0xfc02 allow"
/bootbank/boot.cfg
kernelopt=autoPartition=FALSE CONFIG./USB/quirks=0x045e:0x0752::0xffff:UQ_KBD_IGNORE :0x046d:0x0aba::0xffff:UQ_KBD_IGNORE:0x04d9:0xa0d6::0xffff:UQ_KBD_IGNORE:0x046d:0xc31c::0xffff:UQ_KBD_IGNORE:0x04d9:0xfc02::0xffff:UQ_KBD_IGNORE:0x047f:0xd956::0xffff:UQ_KBD_IGNORE
Win10.vmx
usb.generic.allowHID TRUE
usb.quirks.device0 = "0x045e:0x0752 allow"
usb.quirks.device1 = "0x04d9:0xa0d6 allow"
usb.quirks.device2 = "0x046d:0xc31c allow"
usb.quirks.device3 = "0x04d9:0xfc02 allow"
This working Great.
But:
lsusb
Bus 003 Device 003: ID 046d:0a45 Logitech, Inc. 960 Headset
it does not work.
https://kb.vmware.com/s/article/2147650
esxcli system module set -m=vmkusb -e=TRUE
https://tinkertry.com/superserver-xeon-d-workstation-revisited-with-esxi-65-with-fix-for-usb-sound
audio over USB work, but USB HID don`t work.
Any idea ?
Max says
I am using Hypervisor 6.7 Free with a few VMs and I am trying to pass a USB barcode reader (HID) to a certain VM.
Unfortunately I cannot enter the advanced setting "usb.generic.allowHID" anywhere.
The web UI does not allow for adding of advanced settings, not even in maintenance mode.
The PowerCLI snap-in for Powershell does not recognize the setting's name. What am I doing wrong?
Vincent Brengman says
William, I just want to say thank you. Some of these details were not in the official documentation. You help dummies like me feed my family! 🙂
Rushikesh says
I am created the HID device for communication with application which is in VMware ESXi 5.5.
I am following these steps but VMware does not allow me to open the .vmx file.
Is there any solution to open that file so that i can change that file?
Brian Murphy says
William, I'm trying this with ESXI 6.7U3 on a Dell Optiplex 5070 and it appears to work but when I attach my mouse and keyboard to the VM they both have "(Disconnected)" after them and they are not detected in the VM. They also randomly disappear and the USB Devices are empty and they are greyed out so it's like all USB Devices disappeared. Any idea what might be happening? Something to do with the arbitrator maybe? Thanks
animeofwallpapersacer says
Hi
my usb logitech mouse is work, the vm usb can show it and select it.
but my logitech usb keyboard not show.
CONFIG./USB/quirks=0x046d:0xc077::0xffff:UQ_KBD_IGNORE:0x046d:0xc31c::0xffff:UQ_KBD_IGNORE
this is my config,
does anyone know how to fix this problem?
XRSec says
Hi William Lam , I'm currently trying to build a small workstation
, currently I am using OpenWrt bindings INTER AX210 ,
This is some of my personal experience, I hope it can help everyone, but there are still some problems!
```conf
scp ~/.ssh/authorized_keys esxi:/etc/ssh/keys-root/authorized_keys
ssh esxi "echo 'ChallengeResponseAuthentication no' >> /etc/ssh/sshd_config"
ssh esxi "echo 'PasswordAuthentication no' >> /etc/ssh/sshd_config"
### GPU
ssh esxi "lspci -v | grep -iA 1 Display"
ssh esxi "echo '1002 731f bridge false' >> /etc/vmware/passthru.map"
ssh esxi "echo '1002 731f link false' >> /etc/vmware/passthru.map"
ssh esxi "echo '1002 731f d3d0 false' >> /etc/vmware/passthru.map"
ssh esxi "echo '/device/0000:05:00.0/owner = \"passthru\"' >> /etc/vmware/esx.conf"
### GPU END
### USB
ssh esxi "lsusb"
ssh esxi "echo 'usb.generic.allowHID = \"TRUE\"' >> /etc/vmware/config"
ssh esxi "echo 'usb.quirks.device0 = \"0x046d:0xc52b allow\"' >> /etc/vmware/config"
echo '"kernelopt=autoPartition=FALSE CONFIG./USB/quirks=0x046d:0xc52b::0xffff:UQ_KBD_IGNORE" : /bootbank/boot.cfg'
### USB END
# WIFI
echo 'General Wi-Fi w/Bluetooth Note pass-thru USB Bluetooth'
ssh esxi "lspci | grep Network"
ssh esxi "echo '8086 2725 bridge false' >> /etc/vmware/passthru.map"
ssh esxi "echo '8086 2725 link false' >> /etc/vmware/passthru.map"
ssh esxi "echo '8086 2725 d3d0 false' >> /etc/vmware/passthru.map"
ssh esxi "echo '/device/0000:0c:00.0/owner = \"passthru\"' >> /etc/vmware/esx.conf"
ssh esxi "lsusb -v | grep -i Bluetooth | grep Bus"
ssh esxi "echo 'usb.quirks.device1 = \"0x8087:0x0032 allow\"' >> /etc/vmware/config"
echo '"kernelopt=autoPartition=FALSE CONFIG./USB/quirks=0x046d:0xc52b::0xffff:UQ_KBD_IGNORE:0x8087:0x0032::0xffff:UQ_KBD_IGNORE" : /bootbank/boot.cfg'
### WIFI END
### Update
echo 'esxcli software vib install -d $PWD/nvme-community-driver_1.0.1.0-3vmw.700.1.0.15843807-component-18902434.zip'
echo 'esxcli software vib install -v $PWD/nvme.vib'
echo 'esxcli software sources profile list -d /vmfs/volumes/Data/VMware-ESXi-8.0a-20842819-depot.zip'
echo 'esxcli software profile update -d /vmfs/volumes/Data/VMware-ESXi-8.0a-20842819-depot.zip -p ESXi-8.0a-20842819-standard'
echo 'vmkfstools -i OpenWrt1.vmdk -d thin OpenWrt.vmdk'
echo 'vmkfstools -K OpenWrt.vmd'
### Update END
### Windows
echo 'hypervisor.cpuid.v0:FALSE'
echo 'pciPassthru0.msiEnabled : FALSE'
echo 'pciPassthru1.msiEnabled : FALSE'
echo 'pciPassthru.64bitMMIOSizeGB : 16'
echo 'pciPassthru.use64bitMMIO : TRUE'
### Windows END
### macOS
echo 'pciPassthru0.msiEnabled : FALSE'
echo 'pciPassthru1.msiEnabled : FALSE'
echo 'pciPassthru.64bitMMIOSizeGB : 16'
echo 'pciPassthru.use64bitMMIO : TRUE'
echo 'smbios.reflectHost : FALSE'
echo 'hw.model.reflectHost : FALSE'
echo 'board-id.reflectHost : FALSE'
echo 'serialNumber.reflectHost : FALSE'
echo 'smbios.use12CharSerialNumber : TRUE'
echo 'hw.model : MacPro7,1'
echo 'serialNumber : F5KZR05YP7QM'
echo 'board-id : Mac-27AD2F918AE68F61'
### macOS END
### OpenWrt
echo 'hypervisor.cpuid.v0:FALSE'
echo 'pciPassthru0.msiEnabled : FALSE'
echo 'pciPassthru.64bitMMIOSizeGB : 16'
echo 'pciPassthru.use64bitMMIO : TRUE'
echo 'vmkernel.boot.disableACScheck : TRUE'
### OpenWrt END
rm -rf /tmp/*.txt
rm -f /var/log/*.log
```
XRSec says
But now I can't find the HID using lsusb
AX210 Bluetooth
```conf
Bus 001 Device 004: ID 8087:0032 Intel Corp. AX210 Bluetooth
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.01
bDeviceClass 224 Wireless
bDeviceSubClass 1 Radio Frequency
bDeviceProtocol 1 Bluetooth
bMaxPacketSize0 64
idVendor 0x8087 Intel Corp.
idProduct 0x0032 AX210 Bluetooth
bcdDevice 0.00
iManufacturer 0
iProduct 0
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x00c8
bNumInterfaces 2
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 3
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0000 1x 0 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0000 1x 0 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 1
bNumEndpoints 2
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0009 1x 9 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0009 1x 9 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 2
bNumEndpoints 2
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0011 1x 17 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0011 1x 17 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 3
bNumEndpoints 2
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0019 1x 25 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0019 1x 25 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 4
bNumEndpoints 2
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0021 1x 33 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0021 1x 33 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 5
bNumEndpoints 2
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0031 1x 49 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0031 1x 49 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 6
bNumEndpoints 2
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x003f 1x 63 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x003f 1x 63 bytes
bInterval 1
Binary Object Store Descriptor:
bLength 5
bDescriptorType 15
wTotalLength 0x000c
bNumDeviceCaps 1
USB 2.0 Extension Device Capability:
bLength 7
bDescriptorType 16
bDevCapabilityType 2
bmAttributes 0x0000040e
BESL Link Power Management (LPM) Supported
BESL value 1024 us
Device Status: 0x0001
Self Powered
```
XRSec says
this is Logitech usb
```conf
Bus 001 Device 002: ID 046d:c52b Logitech, Inc. Unifying Receiver
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x046d Logitech, Inc.
idProduct 0xc52b Unifying Receiver
bcdDevice 12.11
iManufacturer 1 Logitech
iProduct 2 USB Receiver
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x0054
bNumInterfaces 3
bConfigurationValue 1
iConfiguration 4 RQR12.11_B0032
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 98mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 1 Boot Interface Subclass
bInterfaceProtocol 1 Keyboard
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.11
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 59
Report Descriptor: (length is 59)
Item(Global): Usage Page, data= [ 0x01 ] 1
Generic Desktop Controls
Item(Local ): Usage, data= [ 0x06 ] 6
Keyboard
Item(Main ): Collection, data= [ 0x01 ] 1
Application
Item(Global): Report Count, data= [ 0x08 ] 8
Item(Global): Report Size, data= [ 0x01 ] 1
Item(Global): Logical Minimum, data= [ 0x00 ] 0
Item(Global): Logical Maximum, data= [ 0x01 ] 1
Item(Global): Usage Page, data= [ 0x07 ] 7
Keyboard
Item(Local ): Usage Minimum, data= [ 0xe0 ] 224
Control Left
Item(Local ): Usage Maximum, data= [ 0xe7 ] 231
GUI Right
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Main ): Input, data= [ 0x03 ] 3
Constant Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Report Count, data= [ 0x05 ] 5
Item(Global): Usage Page, data= [ 0x08 ] 8
LEDs
Item(Local ): Usage Minimum, data= [ 0x01 ] 1
NumLock
Item(Local ): Usage Maximum, data= [ 0x05 ] 5
Kana
Item(Main ): Output, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Report Count, data= [ 0x01 ] 1
Item(Global): Report Size, data= [ 0x03 ] 3
Item(Main ): Output, data= [ 0x01 ] 1
Constant Array Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Report Count, data= [ 0x06 ] 6
Item(Global): Report Size, data= [ 0x08 ] 8
Item(Global): Logical Minimum, data= [ 0x00 ] 0
Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
Item(Global): Usage Page, data= [ 0x07 ] 7
Keyboard
Item(Local ): Usage Minimum, data= [ 0x00 ] 0
No Event
Item(Local ): Usage Maximum, data= [ 0xff 0x00 ] 255
(null)
Item(Main ): Input, data= [ 0x00 ] 0
Data Array Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Main ): End Collection, data=none
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0008 1x 8 bytes
bInterval 8
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 1 Boot Interface Subclass
bInterfaceProtocol 2 Mouse
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.11
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 148
Report Descriptor: (length is 148)
Item(Global): Usage Page, data= [ 0x01 ] 1
Generic Desktop Controls
Item(Local ): Usage, data= [ 0x02 ] 2
Mouse
Item(Main ): Collection, data= [ 0x01 ] 1
Application
Item(Global): Report ID, data= [ 0x02 ] 2
Item(Local ): Usage, data= [ 0x01 ] 1
Pointer
Item(Main ): Collection, data= [ 0x00 ] 0
Physical
Item(Global): Report Count, data= [ 0x10 ] 16
Item(Global): Report Size, data= [ 0x01 ] 1
Item(Global): Logical Minimum, data= [ 0x00 ] 0
Item(Global): Logical Maximum, data= [ 0x01 ] 1
Item(Global): Usage Page, data= [ 0x09 ] 9
Buttons
Item(Local ): Usage Minimum, data= [ 0x01 ] 1
Button 1 (Primary)
Item(Local ): Usage Maximum, data= [ 0x10 ] 16
(null)
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Report Count, data= [ 0x02 ] 2
Item(Global): Report Size, data= [ 0x0c ] 12
Item(Global): Logical Minimum, data= [ 0x01 0xf8 ] 63489
Item(Global): Logical Maximum, data= [ 0xff 0x07 ] 2047
Item(Global): Usage Page, data= [ 0x01 ] 1
Generic Desktop Controls
Item(Local ): Usage, data= [ 0x30 ] 48
Direction-X
Item(Local ): Usage, data= [ 0x31 ] 49
Direction-Y
Item(Main ): Input, data= [ 0x06 ] 6
Data Variable Relative No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Report Count, data= [ 0x01 ] 1
Item(Global): Report Size, data= [ 0x08 ] 8
Item(Global): Logical Minimum, data= [ 0x81 ] 129
Item(Global): Logical Maximum, data= [ 0x7f ] 127
Item(Local ): Usage, data= [ 0x38 ] 56
Wheel
Item(Main ): Input, data= [ 0x06 ] 6
Data Variable Relative No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Report Count, data= [ 0x01 ] 1
Item(Global): Usage Page, data= [ 0x0c ] 12
Consumer
Item(Local ): Usage, data= [ 0x38 0x02 ] 568
AC Pan
Item(Main ): Input, data= [ 0x06 ] 6
Data Variable Relative No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Main ): End Collection, data=none
Item(Main ): End Collection, data=none
Item(Global): Usage Page, data= [ 0x0c ] 12
Consumer
Item(Local ): Usage, data= [ 0x01 ] 1
Consumer Control
Item(Main ): Collection, data= [ 0x01 ] 1
Application
Item(Global): Report ID, data= [ 0x03 ] 3
Item(Global): Report Count, data= [ 0x02 ] 2
Item(Global): Report Size, data= [ 0x10 ] 16
Item(Global): Logical Minimum, data= [ 0x01 ] 1
Item(Global): Logical Maximum, data= [ 0xff 0x02 ] 767
Item(Local ): Usage Minimum, data= [ 0x01 ] 1
Consumer Control
Item(Local ): Usage Maximum, data= [ 0xff 0x02 ] 767
(null)
Item(Main ): Input, data= [ 0x00 ] 0
Data Array Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Main ): End Collection, data=none
Item(Global): Usage Page, data= [ 0x01 ] 1
Generic Desktop Controls
Item(Local ): Usage, data= [ 0x80 ] 128
System Control
Item(Main ): Collection, data= [ 0x01 ] 1
Application
Item(Global): Report ID, data= [ 0x04 ] 4
Item(Global): Report Count, data= [ 0x01 ] 1
Item(Global): Report Size, data= [ 0x02 ] 2
Item(Global): Logical Minimum, data= [ 0x01 ] 1
Item(Global): Logical Maximum, data= [ 0x03 ] 3
Item(Local ): Usage, data= [ 0x82 ] 130
System Sleep
Item(Local ): Usage, data= [ 0x81 ] 129
System Power Down
Item(Local ): Usage, data= [ 0x83 ] 131
System Wake Up
Item(Main ): Input, data= [ 0x00 ] 0
Data Array Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Report Size, data= [ 0x06 ] 6
Item(Main ): Input, data= [ 0x03 ] 3
Constant Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Main ): End Collection, data=none
Item(Global): Usage Page, data= [ 0xbc 0xff ] 65468
(null)
Item(Local ): Usage, data= [ 0x88 ] 136
(null)
Item(Main ): Collection, data= [ 0x01 ] 1
Application
Item(Global): Report ID, data= [ 0x08 ] 8
Item(Global): Report Count, data= [ 0x01 ] 1
Item(Global): Report Size, data= [ 0x08 ] 8
Item(Global): Logical Minimum, data= [ 0x01 ] 1
Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
Item(Local ): Usage Minimum, data= [ 0x01 ] 1
(null)
Item(Local ): Usage Maximum, data= [ 0xff ] 255
(null)
Item(Main ): Input, data= [ 0x00 ] 0
Data Array Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Main ): End Collection, data=none
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0008 1x 8 bytes
bInterval 2
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 0 No Subclass
bInterfaceProtocol 0 None
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.11
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 93
Report Descriptor: (length is 93)
Item(Global): Usage Page, data= [ 0x00 0xff ] 65280
(null)
Item(Local ): Usage, data= [ 0x01 ] 1
(null)
Item(Main ): Collection, data= [ 0x01 ] 1
Application
Item(Global): Report ID, data= [ 0x10 ] 16
Item(Global): Report Count, data= [ 0x06 ] 6
Item(Global): Report Size, data= [ 0x08 ] 8
Item(Global): Logical Minimum, data= [ 0x00 ] 0
Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
Item(Local ): Usage, data= [ 0x01 ] 1
(null)
Item(Main ): Input, data= [ 0x00 ] 0
Data Array Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x01 ] 1
(null)
Item(Main ): Output, data= [ 0x00 ] 0
Data Array Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Main ): End Collection, data=none
Item(Global): Usage Page, data= [ 0x00 0xff ] 65280
(null)
Item(Local ): Usage, data= [ 0x02 ] 2
(null)
Item(Main ): Collection, data= [ 0x01 ] 1
Application
Item(Global): Report ID, data= [ 0x11 ] 17
Item(Global): Report Count, data= [ 0x13 ] 19
Item(Global): Report Size, data= [ 0x08 ] 8
Item(Global): Logical Minimum, data= [ 0x00 ] 0
Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
Item(Local ): Usage, data= [ 0x02 ] 2
(null)
Item(Main ): Input, data= [ 0x00 ] 0
Data Array Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x02 ] 2
(null)
Item(Main ): Output, data= [ 0x00 ] 0
Data Array Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Main ): End Collection, data=none
Item(Global): Usage Page, data= [ 0x00 0xff ] 65280
(null)
Item(Local ): Usage, data= [ 0x04 ] 4
(null)
Item(Main ): Collection, data= [ 0x01 ] 1
Application
Item(Global): Report ID, data= [ 0x20 ] 32
Item(Global): Report Count, data= [ 0x0e ] 14
Item(Global): Report Size, data= [ 0x08 ] 8
Item(Global): Logical Minimum, data= [ 0x00 ] 0
Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
Item(Local ): Usage, data= [ 0x41 ] 65
(null)
Item(Main ): Input, data= [ 0x00 ] 0
Data Array Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x41 ] 65
(null)
Item(Main ): Output, data= [ 0x00 ] 0
Data Array Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Report ID, data= [ 0x21 ] 33
Item(Global): Report Count, data= [ 0x1f ] 31
Item(Local ): Usage, data= [ 0x42 ] 66
(null)
Item(Main ): Input, data= [ 0x00 ] 0
Data Array Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x42 ] 66
(null)
Item(Main ): Output, data= [ 0x00 ] 0
Data Array Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Main ): End Collection, data=none
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0020 1x 32 bytes
bInterval 2
Device Status: 0x0000
(Bus Powered)
Bus 002 Device 002: ID 8087:800a Intel Corp. Hub
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 9 Hub
bDeviceSubClass 0 Unused
bDeviceProtocol 1 Single TT
bMaxPacketSize0 64
idVendor 0x8087 Intel Corp.
idProduct 0x800a Hub
bcdDevice 0.05
iManufacturer 0
iProduct 0
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x0019
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 9 Hub
bInterfaceSubClass 0 Unused
bInterfaceProtocol 0 Full speed (or root) hub
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0001 1x 1 bytes
bInterval 12
Hub Descriptor:
bLength 9
bDescriptorType 41
nNbrPorts 6
wHubCharacteristic 0x0009
Per-port power switching
Per-port overcurrent protection
TT think time 8 FS bits
bPwrOn2PwrGood 0 * 2 milli seconds
bHubContrCurrent 0 milli Ampere
DeviceRemovable 0x00
PortPwrCtrlMask 0xff
Hub Port Status:
Port 1: 0000.0100 power
Port 2: 0000.0100 power
Port 3: 0000.0100 power
Port 4: 0000.0100 power
Port 5: 0000.0100 power
Port 6: 0000.0100 power
Device Qualifier (for other device speed):
bLength 10
bDescriptorType 6
bcdUSB 2.00
bDeviceClass 9 Hub
bDeviceSubClass 0 Unused
bDeviceProtocol 0 Full speed (or root) hub
bMaxPacketSize0 64
bNumConfigurations 1
Device Status: 0x0001
Self Powered
```
XRSec says
Excuse me, I want to pass through the USB and Bluetooth attached to the INTER Ax210 to the virtual machine. Is my parameter correct?
$ lspci | grep Network
$ cat /etc/vmware/passthru.map
8086 2725 bridge false
8086 2725 link false
8086 2725 d3d0 false
$ cat /etc/vmware/esx.conf
/device/0000:0c:00.0/owner = "passthru"
$ lsusb -v | grep -i Bluetooth | grep Bus
$ cat /etc/vmware/config
usb.quirks.device1 = "0x8087:0x0032 allow"
$ cat /bootbank/boot.cfg
kernelopt=autoPartition=FALSE CONFIG./USB/quirks=0x046d:0xc52b::0xffff:UQ_KBD_IGNORE:0x8087:0x0032::0xffff:UQ_KBD_IGNORE
Myth says
Hi,
I followed the article for esxi v8.0. Entries added to the VM, The Boot.cfg file. I cant seem to get any of the USB devices to pop up in the VM`s USB list.
I did notice that when i run :
[root@localhost:~] lsusb -v | grep -E '(^Bus|HID)'
Bus 001 Device 001: ID 0e0f:8002 VMware, Inc. Root Hub
Bus 002 Device 001: ID 0e0f:8003 VMware, Inc. Root Hub
Bus 003 Device 001: ID 0e0f:8003 VMware, Inc. Root Hub
Bus 004 Device 001: ID 0e0f:8003 VMware, Inc. Root Hub
Bus 002 Device 002: ID 2357:011e TP-Link AC600 wireless Realtek RTL8811AU [Archer T2U Nano]
Bus 003 Device 002: ID 051d:0002 American Power Conversion Uninterruptible Power Supply
HID Device Descriptor:
bcdHID 1.00
can't get device qualifier: Resource temporarily unavailable
Bus 003 Device 003: ID 1b1c:0c04 Corsair Link Cooling Node
HID Device Descriptor:
bcdHID 1.11
can't get device qualifier: Resource temporarily unavailable
Bus 004 Device 002: ID 046d:c332 Logitech, Inc. G502 Proteus Spectrum Optical Mouse
HID Device Descriptor:
bcdHID 1.11
HID Device Descriptor:
bcdHID 1.11
can't get device qualifier: Resource temporarily unavailable
Bus 004 Device 003: ID 1b1c:1b15 Corsair
HID Device Descriptor:
bcdHID 1.11
HID Device Descriptor:
bcdHID 1.11
HID Device Descriptor:
bcdHID 1.11
can't get device qualifier: Resource temporarily unavailable
Notice how its says Temporarily Unavailable. Could this be why its not showing up in the VM?
Michael says
I am also having this problem on ESXi 8 update 2.
I don't think this process works anymore on latest version.
Duncan says
Hi Myth,
Not sure if this is an issue with ESXi, but I can confirm that I am seeing the same message:
can't get device qualifier: Resource temporarily unavailable
I'm running VMware ESXi, 8.0.3, 24280767.
Duncan says
Hi all,
My host is an Intel NUC Extreme (NUC12DCMi7) running VMware ESXi, 8.0.3, 24280767.
Trying to pass through a Logitech MK270 Wireless Keyboard and Mouse Combo via a single USB receiver:
lsusb -v | grep -E '(^Bus|HID)'
Bus 001 Device 001: ID 0e0f:8003 VMware, Inc. Root Hub
Bus 002 Device 001: ID 0e0f:8003 VMware, Inc. Root Hub
Bus 001 Device 002: ID 0bda:5424 Realtek Semiconductor Corp.
Bus 001 Device 003: ID 0bda:1100 Realtek Semiconductor Corp.
iProduct 2 USB2.0 HID
HID Device Descriptor:
bcdHID 1.11
Bus 001 Device 005: ID 067b:2323 Prolific Technology, Inc.
can't get device qualifier: Resource temporarily unavailable
Bus 001 Device 006: ID 8087:0033 Intel Corp.
Bus 001 Device 007: ID 0bda:0424 Realtek Semiconductor Corp.
Bus 001 Device 008: ID 0bda:0329 Realtek Semiconductor Corp.
Bus 001 Device 009: ID 0bda:8156 Realtek Semiconductor Corp.
Bus 001 Device 004: ID 046d:c534 Logitech, Inc. Unifying Receiver
HID Device Descriptor:
bcdHID 1.11
HID Device Descriptor:
bcdHID 1.11
can't get device qualifier: Resource temporarily unavailable
Looks like Bus 001 Device 004: ID 046d:c534 Logitech, Inc. Unifying Receiver would be the device I need to configure, but when I attempt the next step, this is what I'm getting:
usb.generic.allowHID = "TRUE"
-sh: usb.generic.allowHID: not found
Attempting to skip to the next step:
usb.quirks.device0 = "0x046d:0xc534 allow"
-sh: usb.quirks.device0: not found
What am I doing wrong? Can I just not pass through this device?
Duncan says
I'm baffled. I've made progress, but whatever I try I can't add the keyboard. I'm halfway there, got my optical mouse to work, but no dice with anything else. Can anyone spot my mistake?
STEP1 (putty into host)
lsusb -v | grep -E '(^Bus|HID)'
Bus 001 Device 001: ID 0e0f:8003 VMware, Inc. Root Hub
Bus 002 Device 001: ID 0e0f:8003 VMware, Inc. Root Hub
Bus 001 Device 002: ID 0bda:5424 Realtek Semiconductor Corp.
Bus 001 Device 003: ID 0bda:1100 Realtek Semiconductor Corp.
iProduct 2 USB2.0 HID
HID Device Descriptor:
bcdHID 1.11
Bus 001 Device 006: ID 067b:2323 Prolific Technology, Inc.
can't get device qualifier: Resource temporarily unavailable
Bus 001 Device 007: ID 8087:0033 Intel Corp.
Bus 001 Device 008: ID 0bda:0424 Realtek Semiconductor Corp.
Bus 001 Device 009: ID 0bda:0329 Realtek Semiconductor Corp.
Bus 001 Device 010: ID 0bda:8156 Realtek Semiconductor Corp.
Bus 001 Device 005: ID 03f0:134a HP, Inc Optical Mouse
HID Device Descriptor:
bcdHID 1.11
can't get device qualifier: Resource temporarily unavailable
Bus 001 Device 004: ID 0d62:910e Darfon Electronics Corp. HP Business Slim Keyboard
HID Device Descriptor:
bcdHID 1.10
HID Device Descriptor:
bcdHID 1.10
can't get device qualifier: Resource temporarily unavailable
STEP #2 (modify advanced VM properties to add the following:
usb.generic.allowHID = "TRUE"
usb.quirks.device0 = "0x0d62:0x910e allow"
usb.quirks.device1 = "0x03f0:0x134a allow"
STEP #3 Putty to host
vi /etc/vmware/config
usb.quirks.device0 = "0x0d62:0x910e allow"
usb.quirks.device1 = "0x03f0:0x134a allow"
STEP #4
vi /bootbank/boot.cfg
CONFIG./USB/quirks=0x03f0:0x134a::0xffff:UQ_KBD_IGNORE:0x0d62:0x910e::0xffff
STEP#5
Add the devices to the VM. The mouse works fine, but no matter what I do I can't see the keyboard in the list of available devices on the host. I have tried two different keyboards so far. Any suggestions?