USB dongle passthrough is not working in ESXi

usb 2-2 : resumed, xhci_hcd 0000:00:14.0: clear USB_PORT_FEAT_SUSPEND, <6>usb 2-2: suspended

Today I was able to help one of my colleagues to troubleshoot his ESXi level issue. What he wanted to do is connect his dongle to one of his VMs to get internet access through that dongle. So he has tried to connect a USB dongle to his VM where it is hosted in VMware ESXi (6.5) but it doesn’t appear on the VM as a host USB device. He has already added a USB controller  (2.0 and 3.0 will be discussed later) to the and connected the USB dongle into the appropriate ESXi server as well. 

vCenter version 6.7

ESXi 6.5 

VM hardware version 13

Let me explain a little bit more about the USB passthrough. 

This passthrough mode allows us to redirect physical devices which are directly connected to the ESXi server (USB pen drive or modem whatever) into the guest virtual machines. 

There are some main components required to provide this service. 

Arbitrator is a separate service on an ESXi host that scans connected physical USB devices, routes USB device traffic between a host and a VM, and controls access to a device (only one VM may use a connected USB device).

USB controllers — USB controller must be installed both on a physical host and on a virtual machine.

My friend has rebooted ESXi services several times but still it’s not appearing. We figured the USB modem is working and the port which has been connected in ESXi is in a good working port etc. 

Let’s jump into troubleshooting steps. 

Take a SSH to the ESXi host (where the USB is attached)

Execute the lsusb in ESXi shell to identify if the USB dongle is already recognized by the ESXi or not. Yeah it’s there. It means the USB dongle has been connected with ESXi.

I tried restarting the USBArbitrator service on ESXi multiple times. But no luck.  

/etc/init.d/usbarbitrator stop

/etc/init.d/usbarbitrator start

/etc/init.d/usbarbitrator status

It is even connected to ESXi but still not able to connect to the VM. Then next I was wondering and started checking the relevance logs. Checked the vmkernal logs first.

tail -f var/log/vmkernel.log | grep -i USB

I could see some entries which  are related to USB (please see the above screenshot) device saying suspended and stopped. This was not clear to me as well to be honest but I was starting to look at those error messages through google. 

Later I  was able to find a command to execute in ESXi. Before that I put ESXi in maintenance mode evacuating running VMs because I am also pretty new to this command.

esxcfg-module -s quirks=< ID of the USB>:i usb-storage

First execute the lsusb command again because I need to get the exact ID of the USB dongle which we have attached. 

Here is the command in my case 

esx-cfg-module -s quirks=12d1:141b:i usb-storage (In your case ID should be definitely different so be aware of that)

Reboot the ESXi host. 

Finally issue is resolved.

Special thanks goes to my friend (Gayan Rangana) who gave me this opportunity to troubleshoot his issue and able to improve my knowledge and troubleshooting skill.

Thank you for reading. Appreciate your comments below.

I am Pubudu Wijerathna who is the author of SystemsMedic blog.
Posts created 16

Leave a Reply

Your email address will not be published. Required fields are marked *

Related Posts

Begin typing your search term above and press enter to search. Press ESC to cancel.

Back To Top