{"id":305,"date":"2022-02-18T18:54:03","date_gmt":"2022-02-18T18:54:03","guid":{"rendered":"https:\/\/systemsmedic.net\/?p=305"},"modified":"2023-02-17T19:17:56","modified_gmt":"2023-02-17T19:17:56","slug":"usb-dongle-passthrough-is-not-working-in-esxi-usb-2-2-resumed-xhci_hcd-00000014-0-clear-usb_port_feat_suspend-usb-2-2-suspended","status":"publish","type":"post","link":"https:\/\/systemsmedic.net\/index.php\/2022\/02\/18\/usb-dongle-passthrough-is-not-working-in-esxi-usb-2-2-resumed-xhci_hcd-00000014-0-clear-usb_port_feat_suspend-usb-2-2-suspended\/","title":{"rendered":"USB dongle passthrough is not working in ESXi"},"content":{"rendered":"\n<p class=\"has-medium-font-size\"><strong>usb 2-2 : resumed, xhci_hcd 0000:00:14.0: clear USB_PORT_FEAT_SUSPEND, &lt;6&gt;usb 2-2: suspended<\/strong><\/p>\n\n\n\n<p class=\"has-text-align-left\">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\u2019t appear on the VM as a host USB device. He has already added a USB controller&nbsp; (<strong><em>2.0 and 3.0 will be discussed later<\/em><\/strong>) to the and connected the USB dongle into the appropriate ESXi server as well.&nbsp;<\/p>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-8cf370e7 wp-block-group-is-layout-flex\">\n<div class=\"wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-8cf370e7 wp-block-group-is-layout-flex\">\n<p class=\"has-small-font-size\">vCenter version 6.7<\/p>\n\n\n\n<p class=\"has-small-font-size\">ESXi 6.5&nbsp;<\/p>\n\n\n\n<p class=\"has-small-font-size\">VM hardware version 13<\/p>\n<\/div>\n<\/div>\n<\/div><\/div>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"861\" height=\"526\" src=\"https:\/\/systemsmedic.net\/wp-content\/uploads\/2022\/02\/2022-02-18_16h40_21.png\" alt=\"\" class=\"wp-image-298\" srcset=\"https:\/\/systemsmedic.net\/wp-content\/uploads\/2022\/02\/2022-02-18_16h40_21.png 861w, https:\/\/systemsmedic.net\/wp-content\/uploads\/2022\/02\/2022-02-18_16h40_21-300x183.png 300w, https:\/\/systemsmedic.net\/wp-content\/uploads\/2022\/02\/2022-02-18_16h40_21-768x469.png 768w, https:\/\/systemsmedic.net\/wp-content\/uploads\/2022\/02\/2022-02-18_16h40_21-600x367.png 600w\" sizes=\"auto, (max-width: 861px) 100vw, 861px\" \/><\/figure>\n\n\n\n<p>Let me explain a little bit more about the USB passthrough.&nbsp;<\/p>\n\n\n\n<p>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.&nbsp;<\/p>\n\n\n\n<p>There are some main components required to provide this service.&nbsp;<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>                    <strong>Arbitrator <\/strong>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).<\/p>\n\n\n\n<p>                   <strong>USB controllers<\/strong> \u2014 USB controller must be installed both on a physical host and on a virtual machine.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>My friend has rebooted ESXi services several times but still it\u2019s 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.&nbsp;<\/p>\n\n\n\n<p><strong><em>Let&#8217;s jump into troubleshooting steps.&nbsp;<\/em><\/strong><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><em><strong>Take a SSH to the ESXi host (where the USB is attached)<\/strong><\/em><\/p>\n\n\n\n<p>Execute the <strong>lsusb<\/strong> in ESXi shell to identify if the USB dongle is already recognized by the ESXi or not. Yeah it\u2019s there. It means the USB dongle has been connected with ESXi.<\/p>\n\n\n\n<p>I tried <strong>restarting<\/strong> the <strong>USBArbitrator<\/strong> service on ESXi multiple times. But no luck.&nbsp;&nbsp;<\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>\/etc\/init.d\/usbarbitrator stop <\/strong><\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>\/etc\/init.d\/usbarbitrator start<\/strong><\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>\/etc\/init.d\/usbarbitrator status<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/systemsmedic.net\/wp-content\/uploads\/2022\/02\/WhatsApp-Image-2022-02-18-at-12.47.47-PM.jpeg\" alt=\"\" class=\"wp-image-303\" width=\"954\" height=\"91\" srcset=\"https:\/\/systemsmedic.net\/wp-content\/uploads\/2022\/02\/WhatsApp-Image-2022-02-18-at-12.47.47-PM.jpeg 503w, https:\/\/systemsmedic.net\/wp-content\/uploads\/2022\/02\/WhatsApp-Image-2022-02-18-at-12.47.47-PM-300x29.jpeg 300w\" sizes=\"auto, (max-width: 954px) 100vw, 954px\" \/><\/figure>\n\n\n\n<p>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.<\/p>\n\n\n\n<p><em><strong>tail -f var\/log\/vmkernel.log | grep -i USB<\/strong><\/em><\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/systemsmedic.net\/wp-content\/uploads\/2022\/02\/2022-02-18_16h55_57-1024x216.png\" alt=\"\" class=\"wp-image-299\" width=\"1166\" height=\"246\" srcset=\"https:\/\/systemsmedic.net\/wp-content\/uploads\/2022\/02\/2022-02-18_16h55_57-1024x216.png 1024w, https:\/\/systemsmedic.net\/wp-content\/uploads\/2022\/02\/2022-02-18_16h55_57-300x63.png 300w, https:\/\/systemsmedic.net\/wp-content\/uploads\/2022\/02\/2022-02-18_16h55_57-768x162.png 768w, https:\/\/systemsmedic.net\/wp-content\/uploads\/2022\/02\/2022-02-18_16h55_57-600x127.png 600w, https:\/\/systemsmedic.net\/wp-content\/uploads\/2022\/02\/2022-02-18_16h55_57.png 1118w\" sizes=\"auto, (max-width: 1166px) 100vw, 1166px\" \/><\/figure>\n\n\n\n<p>I could see some entries which\u00a0 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.\u00a0<\/p>\n\n\n\n<p>Later I&nbsp; 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.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p style=\"font-size:30px\"><em><strong>esxcfg-module -s quirks=&lt; ID of the USB&gt;:i usb-storage<\/strong><\/em><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>First execute the lsusb command again because I need to get the exact ID of the USB dongle which we have attached.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/systemsmedic.net\/wp-content\/uploads\/2022\/02\/2022-02-18_16h59_52.png\" alt=\"\" class=\"wp-image-300\" width=\"833\" height=\"241\" srcset=\"https:\/\/systemsmedic.net\/wp-content\/uploads\/2022\/02\/2022-02-18_16h59_52.png 622w, https:\/\/systemsmedic.net\/wp-content\/uploads\/2022\/02\/2022-02-18_16h59_52-300x87.png 300w, https:\/\/systemsmedic.net\/wp-content\/uploads\/2022\/02\/2022-02-18_16h59_52-600x174.png 600w\" sizes=\"auto, (max-width: 833px) 100vw, 833px\" \/><\/figure>\n\n\n\n<p>Here is the command in my case&nbsp;<\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>esx-cfg-module -s quirks=12d1:141b:i usb-storage<\/strong>   (In your case ID should be definitely different so be aware of that)<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Reboot the ESXi host.&nbsp;<\/p>\n\n\n\n<p>Finally issue is resolved. <\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"861\" height=\"772\" src=\"https:\/\/systemsmedic.net\/wp-content\/uploads\/2022\/02\/WhatsApp-Image-2022-02-18-at-12.47.49-PM-1.jpeg\" alt=\"\" class=\"wp-image-306\" srcset=\"https:\/\/systemsmedic.net\/wp-content\/uploads\/2022\/02\/WhatsApp-Image-2022-02-18-at-12.47.49-PM-1.jpeg 861w, https:\/\/systemsmedic.net\/wp-content\/uploads\/2022\/02\/WhatsApp-Image-2022-02-18-at-12.47.49-PM-1-300x269.jpeg 300w, https:\/\/systemsmedic.net\/wp-content\/uploads\/2022\/02\/WhatsApp-Image-2022-02-18-at-12.47.49-PM-1-768x689.jpeg 768w, https:\/\/systemsmedic.net\/wp-content\/uploads\/2022\/02\/WhatsApp-Image-2022-02-18-at-12.47.49-PM-1-600x538.jpeg 600w\" sizes=\"auto, (max-width: 861px) 100vw, 861px\" \/><\/figure>\n\n\n\n<p>Special thanks goes to my friend (<strong>Gayan Rangana)<\/strong> who gave me this opportunity to troubleshoot his issue and able to improve my knowledge and troubleshooting skill. <\/p>\n\n\n\n<p>Thank you for reading. Appreciate your comments below. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>usb 2-2 : resumed, xhci_hcd 0000:00:14.0: clear USB_PORT_FEAT_SUSPEND, &lt;6&gt;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 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":386,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[18],"tags":[27,25,24,23,26],"class_list":["post-305","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-vmware","tag-dongle","tag-esxi","tag-passthrough","tag-usb","tag-vmware"],"_links":{"self":[{"href":"https:\/\/systemsmedic.net\/index.php\/wp-json\/wp\/v2\/posts\/305","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/systemsmedic.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/systemsmedic.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/systemsmedic.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/systemsmedic.net\/index.php\/wp-json\/wp\/v2\/comments?post=305"}],"version-history":[{"count":8,"href":"https:\/\/systemsmedic.net\/index.php\/wp-json\/wp\/v2\/posts\/305\/revisions"}],"predecessor-version":[{"id":399,"href":"https:\/\/systemsmedic.net\/index.php\/wp-json\/wp\/v2\/posts\/305\/revisions\/399"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/systemsmedic.net\/index.php\/wp-json\/wp\/v2\/media\/386"}],"wp:attachment":[{"href":"https:\/\/systemsmedic.net\/index.php\/wp-json\/wp\/v2\/media?parent=305"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/systemsmedic.net\/index.php\/wp-json\/wp\/v2\/categories?post=305"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/systemsmedic.net\/index.php\/wp-json\/wp\/v2\/tags?post=305"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}