VMware Cloud Community
JabbaTheNewB
Contributor
Contributor

ESXi 5.5.0 : USB controller pass-through problem

I am unable to get USB passthrough (VMDirectPath?) working under ESXi: my virtual machine (Ubuntu) does not report any USB devices when running ‘lsusb’. The hardware should be fully capable of VT-d, but despite multiple experiments, I have not had any success. I assume the problem originates from the Linux kernel being unable to load PCI driver (ehci_pci?). I do not know what is causing this, but it must somehow be related to the messages “debug port 15 IN USE” (see dump below)

My configuration:

  • Motherboard: Gigabyte GA-Q87M-D2H Q87 S-1150 M-ATX (BIOS version 7)
  • CPU: Intel Xeon E3-1265L V3
  • Vmware: ESXi 5.5.0 + vSphere Client 5.5.0
  • Virtual machine: Ubuntu 3.13.11.6 (64bit)

ESXi is configured to pass-through the USB controller (PCI device 0, Intel Corporation Lynx Point USB Enhanced Host Controller #2 (8C2D), 00:1a.0)

Extract of ‘dmesg’ (Ubuntu 3.13.11.6 running on top of ESXi):

[    0.551794] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver

[    0.551795] ehci-pci: EHCI PCI platform driver

[    0.551994] ehci-pci 0000:03:00.0: EHCI Host Controller

[    0.551997] ehci-pci 0000:03:00.0: new USB bus registered, assigned bus number 1

[    0.552039] ehci-pci 0000:03:00.0: debug port 15 IN USE

[    0.552091] ehci-pci 0000:03:00.0: can't setup: -19

[    0.552093] ehci-pci 0000:03:00.0: USB bus 1 deregistered

[    0.552231] ehci-pci 0000:03:00.0: init 0000:03:00.0 fail, -19

[    0.552236] ehci-platform: EHCI generic platform driver

[    0.552240] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver

[    0.552240] ohci-pci: OHCI PCI platform driver

[    0.552245] ohci-platform: OHCI generic platform driver

[    0.552247] uhci_hcd: USB Universal Host Controller Interface driver

[    0.552274] i8042: PNP: PS/2 Controller [PNP0303:KBC,PNP0f13:MOUS] at 0x60,0x64 irq 1,12

ubuntu$ lspci | grep USB

03:00.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #2 (rev 04)

ubuntu$ lspci -nnks 03:00.0

03:00.0 USB controller [0c03]: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #2 [8086:8c2d] (rev 04)

    Subsystem: Gigabyte Technology Co., Ltd Device [1458:5006]

Notice in the above 'lspci -nnks' output: no device driver is listed for the USB controller (unlike the example below).

When running things directly from a Lubuntu live CD, ‘dmesg’ output is different and USB devices are detected correctly:

[    3.062838] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver

[    3.062907] ehci-pci 0000:00:1a.0: new USB bus registered, assigned bus number 1

[    3.075501] ehci-pci 0000:00:1a.0: USB 2.0 started, EHCI 1.00

[    3.075513] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002

[    3.075514] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1

[    3.075515] usb usb1: Product: EHCI Host Controller

[    3.075516] usb usb1: Manufacturer: Linux 3.11.0-12-generic ehci_hcd

[    3.075517] usb usb1: SerialNumber: 0000:00:1a.0

[    3.075576] hub 1-0:1.0: USB hub found

[    3.075703] ehci-pci 0000:00:1d.0: new USB bus registered, assigned bus number 2

[    3.091518] ehci-pci 0000:00:1d.0: USB 2.0 started, EHCI 1.00

[    3.091526] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002

[    3.091527] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1

[    3.091528] usb usb2: Product: EHCI Host Controller

[    3.091529] usb usb2: Manufacturer: Linux 3.11.0-12-generic ehci_hcd

[    3.091530] usb usb2: SerialNumber: 0000:00:1d.0

lubuntu$ lspci -nnks 00:1a.0

00:1a.0 USB controller [0c03]: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #2 [8086:8c2d] (rev 04)

    Subsystem: Gigabyte Technology Co., Ltd Device [1458:5006]

    Kernel driver in use: ehci-pci

0 Kudos
6 Replies
mathenley
Contributor
Contributor

Ever get this figured out?  I'm having the same problems.

0 Kudos
JabbaTheNewB
Contributor
Contributor

Well no luck so far.

Two weeks ago I was trying this out: https://bbs.archlinux.org/viewtopic.php?id=157557.

I believe 'powertop' was indicating a possible problem, but I did not have time to dig deeper. I hope to experiment again soon.

0 Kudos
kd_ca
Contributor
Contributor

Recently tackled this issue along with versions of ESXi where onboard USB passthrough does not work,

See the tail end of this discussion:.

https://communities.vmware.com/thread/417736?start=255&tstart=0

0 Kudos
JabbaTheNewB
Contributor
Contributor

It seems this is not a problem in version 6.0.0 (build 2494585).

I can now pass the PCI device (Intel Corporation Lynx Point USB Enhanced Host Controller) to the virtual machine (Ubuntu), and for the first time I get something sensible when issuing an 'lsusb' command

0 Kudos
kd_ca
Contributor
Contributor

Any chance you could load test to ensure it works reliably.

Suggestion to load test would be to read / write a 1+TB to a LUKs encrypted USB disk.

0 Kudos
JabbaTheNewB
Contributor
Contributor

I just briefly tested copying 2 large files (2G + 1.6G) from a USB memory stick to a USB hard drive.

It is a good idea to make some stress test, but I am not able to make the setup you suggest, as I do not have a spare USB hard drive.

0 Kudos