While attending an offsite this week, there were some discussions amongst my colleagues about their new Apple Mac Pro and its USB-C only ports. The discussion was completely unrelated to work, however that did get me thinking about the USB-C peripheral market and specifically their ethernet adapters. While searching online, I came across several new USB-C to gigabit ethernet adapters that were now available and one in particular that was very interesting, was the Plugable USB-C to 10/100/1000 Gigabit Ethernet LAN Network Adapter. What caught my eye about this specific network adapter was that it uses the exact same ASIX AX88179 driver as my USB 3.0 to Ethernet Adapter ESXi VIBs were built off of! There was a good chance this might just work.
As you can probably guess, I was pretty excited and quickly ordered one of the Plugable USB-C Ethernet Adapters. The next challenge was getting access to a system that has a USB-C port. After asking around, I finally got my hands on a Dell XPS 13 which has a USB-C port that I could use for a few days. Funny enough, the Dell laptop only has USB 3.0 and USB-C ports, so the first challenge was to disable Secure Boot since I had built a custom ESXi 6.5 image that included my USB 3.0 Ethernet Adapter VIB. Below are the ESXi VIBs or offline bundles that will be required for this solution.
UPDATE (02/12/19) - A new VMware Native Driver for USB-based NICs has just been released, please use this driver going forward.
- ESXi 5.5 Update 3 USB Ethernet Adapter Driver VIB or ESXi 5.5 Update 3 USB Ethernet Adapter Driver Offline Bundle
- ESXi 6.0 Update 2 USB Ethernet Adapter Driver VIB or ESXi 6.0 Update 2 USB Ethernet Adapter Driver Offline Bundle
- ESXi 6.5 USB Ethernet Adapter Driver VIB or ESXi 6.5 USB Ethernet Adapter Driver Offline Bundle
Please see this blog post for more detailed instructions on installing the VIB as well as accessing the vusbX pNIC.
Disclaimer: This is not officially supported by VMware. Use at your own risk.
Once I got ESXi up and running, I was disappointed to see that the USB-C device was not being detected. I had tried a few more things but nothing worked and I decided to sleep on it. The next morning, I realize maybe there was some additional settings that needed to be tweaked in the BIOS. With a bit of trial/error, I found out that you needed to enable the "Thunderbolt Boot Support" which apparently is disabled by default, at least on this Dell system. Below is a screenshot of the BIOS USB/Thunderbolt Settings and this was the only change required from the system defaults.
Once I rebooted, I immediately saw the link up on the USB-C device while ESXi was starting up 😀
Running the lspci command after the BIOS tweak, I can now see both the Thunderbolt 3 bridge as well as the USB 3.1 controller, where as before it was just showing the TB3 bridge.
You can also verify that the USB NIC has been claimed by running the lsusb command. In my setup, I have both the USB 3.0 to Ethernet Adapter as well as the USB-C to Ethernet Adapter functioning on my ESXi 6.5 host.
I ran a couple of iPerf experiments between two ESXi hosts and the speeds are pretty decent, see the results below.
iPerf benchmark for Ingress traffic (single port USB ethernet adapter):
iPerf benchmark for Engress traffic (single port USB ethernet adapter):
Now, how freaking cool is this!? Best of all, this solution should work on ANY system that has a USB-C / Thunderbolt 3 port as long as you are using the driver along with a supported ethernet adapter. For other systems, it may just work out of the box or you may be required to make similiar changes to the BIOS. If you are successful in getting this to work on other systems, please leave a comment sharing the details and any workarounds that may be needed so others may benefit. Some other popular platforms that are currently shipping with USB-C ports are the Intel NUC Skull Canyon or the new Apple Macbook Pro. The upcoming Intel NUC i5 Kaby Lake will also include USB-C ports similiar to the Skull Canyons, so if you are considering purchasing a new system, you may want to wait until those are available so you can take advantage of the USB-C ports when running ESXi.
Given the large bandwidth of a USB-C, I suspect you *might* even be able to drive 2x more the bandwidth by using a Dual Gigabit Ethernet Adapter like the USB-C to Dual Gigabit Ethernet Adapter from StarTech which also uses the ASIX AX88179 driver. I personally would love to see a USB-C to 10GbE adapter where you can then use a cross-over cable to connect two devices for a sweet 2-Node vSAN Cluster. As of right now, the only 10GbE solution in the market is from ATTO with their ThunderLink device (Thunderbolt 3 to 10GbE SFP+). This would require an additional 10GbE switch, which is probably out of reach for most folks including myself. Alternatively, which I suspect is probably not possible without changes to ESXi, is to get Thunderbolt Networking which allows you to connect two hosts together using TB3 to TB3 cable like you can today on Mac OS X. This would theoretically give you 40Gbps of bandwidth, which should be more than enough for anyone wanting to run a small vSAN Cluster 🙂 There seems to be some good progress on this front with the Thunderbolt Networking support for Linux project, but it is still very early to tell. Perhaps Plugable, StarTech or other vendors might consider looking into this for the future given USB-C potential?
You can use an ordinary 10GBe twin-ax cable between two thunderlink devices. No need for a switch.
I am waiting for the NUC7i5BNH which comes with USB C 3.1 (Gen2 10GB, Thunderbolt 3).
Initially, i plan on just attaching a USB-to-1Gb-Nic.
Not an expert on this stuff, would it be possible to attach an USB 3.1 hub to attach multiple 1Gb NICs? I don't know how USB handles it or if ESXi would need a driver to handle the hub.
Just to be more specific: Initially I'll use an "old" USB3.0 Type A port with a 1Gb NIC. I'm just curious for what might be possible later on.
Does it this require a Thunderbolt USB-C connection, or is a "normal" USB-C connection enough?
Thinking about the NUC7i3BNH and NUC7i5BNH.
The NUC7i3BNH has 1x USB 3.1 Gen 2 (10 Gbps) and Mini DisplayPort* 1.2 via USB-C
The NUC7i5BNH has 1x Thunderbolt™ 3 port (40 Gbps, with USB 3.1 Gen 2 10 Gbps and DisplayPort* 1.2) via USB-C
Would this setup work on a NUC7i3BNH?
Any of the NUCs that have USB-C interface will work.
Using a NUC6i7KYK with a StarTech US1GC301AU USB-C network adapter. I installed the new VMware Native Driver for USB-based NICs as mentioned. I don't see this adapter in ESXi under Physical NICs.
I tried both Thunderbolt enabled and disabled. The adapter works on another desktop with USB-C port with Win10. Any thoughts?
I forgot to mention using the latest ESXi 6.7.0 build
hi thx for nice release, when you release killler lan 22xx-25xx & realtek 8.0.44 vib driver .
url is broken!
https://s3.amazonaws.com/virtuallyghetto-download/vghetto-ax88179-esxi65.vib
It's not broken, Amazon currently has an outage on its S3 service
Hi William,
Very nice post and useful informations.
I'm just a beginner in VM world but I'm very happy to have found your infos.
I just bought a notebook Dell I14-5457-A40 with an unsupported NIC - realtek pcie fe Family. Sad abaout that.
I'll try to find a supported adapter next week.
Are there a list of compatible USB adapters?
Cheers.
CIRO.
Since I'm in Brazil and it is hard to find this kind of stuffs near here...
Thanks for your help. Now my startech usb-c dual gigabit adapter running with ESXi 6.5 U1 on NUC7i5BNH
Hi, thanks for all your efforts, I wonder if anyone has had experience with NUC7i5BNH / ESXI 6.5 U1 / Plugable USB C NIC - where the NIC is discovered by ESXI, but is always shown as 'link down'? I cant get to go link 'up'... I'm possibly doing something stupid...
perhaps I should mention that the vghetto-ax88179-esxi65 driver is installed, have run:
'esxcli system module set -m=vmkusb -e=FALSE' and:
'esxcli network vswitch standard uplink add -u vusb0 -v vSwitch0'
have also tried various cables to no avail...
Is there any way to connect to NUC7's directly via a usb-C cable (no usb/ethernet adapter) and use Thunderbolt networking between them? A poor man's 2-node cluster?
Hardware:
NUC Skull Canyon (NUC6i7KYK)
StarTech USB-C to Gigabit Network Adapter - USB 3.1 Gen 1 (Part # US1GC308)
SanDisk 64GB Ultra Fit USB 3.1 Flash Drive (SDCZ430-064G-G46) Boot for ESXI 6.5 (clean install)
Steps:
1. Disabled "Thunderbolt Controller" within BIOS during ESXI install from USB to USB.
2. Confirmed Thunderbolt was not listed (telnet, lspci - didn't show in list)
3. Restarted, BIOS, enabled "Thunderbolt Controller" under "Devices" \ "Onboard Devices"
4. CD /
5. wget http://s3.amazonaws.com/virtuallyghetto-download/vghetto-ax88179-esxi65.vib
6. esxcli software vib install -v /vghetto-ax88179-esxi65.vib -f
7. esxcli system module set -m=vmkusb -e=FALSE
8. reboot -f
9. telnet, lspci - shows "Bridge: Intel Corporation DSL6340 Thunderbolt 3 Bridge [Alpine Ridge 2C 2015]"
But does NOT show Serial bus controller: Intel Corporation DSL6340 USB 3.1 Controller
I have tried multiple times. Has the download changed for USB-C? Am I doing something wrong?
Thanks,
-b0n3z
Is the adapter listed when you are running the lsusb command?
Here is my output:
[root@home-vm-003:~] lsusb
Bus 003 Device 002: ID 0e0f:0003 VMware, Inc. Virtual Mouse
Bus 004 Device 002: ID 0b95:1790 ASIX Electronics Corp. AX88179 Gigabit Ethernet
Bus 002 Device 002: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
Bus 001 Device 002: ID 0e0f:000b VMware, Inc.
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Thanks for your help Ronny,
I needed this environment up and running now, so I ordered and received the normal USB to NIC device (pictured on the left below). I removed the virtualGhetto vib and used the link you suggested to install that vib. Also making sure to run:
esxcli system module set -m=vmkusb -e=FALSE
Hardware used:
Intel NUC Skull Canyon NUC6i7KYK
(1) CORSAIR ValueSelect 32GB (2 x 16G) 260-Pin DDR4 SO-DIMM DDR4 2133
(1) SAMSUNG 860 EVO Series M.2 2280 1TB SATA III 3D NAND (SSD - Storage)
(1) SAMSUNG 960 EVO M.2 250GB NVMe PCI-Express 3.0 x4 (SSD - Cache)
(1) SanDisk 64GB Ultra Fit USB 3.1 Flash Drive - SDCZ430-064G-G46 (Boot ESXi 6.5)
(1) StarTech USB-C to Gigabit Ethernet Adapter - USG1GC30B
http://www.b0n3z.com/download/vmware-usb-nic/usb-to-nic.jpg (image on right)
(I had a Logitech mouse & Deck keyboard to set BIOS settings)
BIOS setttings (version: KYSKLi70.86A.0053 & F9 to reset):
Devices\Onboard Devices
Disabled all except for LAN & Thunderbolt Controller
[root@NUC-ESXI-01:~] lspci
0000:00:00.0 Bridge: Intel Corporation Skylake Host Bridge/DRAM Registers
0000:00:02.0 Display controller: Intel Corporation Iris Pro Graphics 580
0000:00:08.0 Generic system peripheral: Intel Corporation Skylake Gaussian Mixture Model
0000:00:14.0 Serial bus controller: Intel Corporation Sunrise Point-H USB 3.0 xHCI Controller
0000:00:14.2 Signal processing controller: Intel Corporation Sunrise Point-H Thermal subsystem
0000:00:16.0 Communication controller: Intel Corporation Sunrise Point-H CSME HECI #1
0000:00:17.0 Mass storage controller: Intel Corporation Sunrise Point-H AHCI Controller [vmhba0]
0000:00:1c.0 Bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #1 [PCIe RP[0000:00:1c.0]]
0000:00:1c.4 Bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #5 [PCIe RP[0000:00:1c.4]]
0000:00:1d.0 Bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #9 [PCIe RP[0000:00:1d.0]]
0000:00:1d.4 Bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #13 [PCIe RP[0000:00:1d.4]]
0000:00:1f.0 Bridge: Intel Corporation Sunrise Point-H LPC Controller
0000:00:1f.2 Memory controller: Intel Corporation Sunrise Point-H PMC
0000:00:1f.4 Serial bus controller: Intel Corporation Sunrise Point-H SMBus
0000:00:1f.6 Network controller: Intel Corporation Ethernet Connection (2) I219-LM [vmnic0]
0000:02:00.0 Bridge: Intel Corporation DSL6340 Thunderbolt 3 Bridge [Alpine Ridge 2C 2015]
0000:3c:00.0 Mass storage controller: Samsung Electronics Co Ltd NVMe SSD Controller SM961/PM961 [vmhba1]
[root@NUC-ESXI-01:~] lsusb
Bus 002 Device 002: ID 0781:5583 SanDisk Corp. Ultra Fit
Bus 001 Device 003: ID 046d:c51a Logitech, Inc. MX Revolution/G7 Cordless Mouse
Bus 001 Device 002: ID 0a34:0110 TG3 Electronics, Inc. Deck 82-key backlit keyboard
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
I think you've got a typo in your startech model number. I suspect it's this: https://www.startech.com/uk/Networking-IO/usb-network-adapters/usb-c-gigabit-adapter~US1GC30B
which has a realtek chipset...
Hi,
I am using the Speed Dragon U3CNW01A adapter and can confirm that it is working with ESXi 6.5.
The new ESXi 6.5 USB driver vmkusb had to be disabled driver to get it up and running, by following the instructions on https://kb.vmware.com/kb/2147650 just as some others have pointed out here. Also, Jose Gomes has written about it on his blog http://www.devtty.uk/homelab/USB-Ethernet-driver-for-ESXi-6.5/
After reading this article that you wrote, and the others talking about USB3.0 LAN adapter when installalling and using ESXi, I bought the Plugable USB C to Ethernet Gigabit 10/100/1000 LAN Network Adapter (ASIX AX88179 chipset). I also saw that ESXi customizer was too old. That why I have used in powershell .\ESXi-Customizer-PS-v2.6.0.ps1 -izip ESXi600-201706001.zip -pkgDir d:\temp\pkg -nsc and .\ESXi-Customizer-PS-v2.6.0.ps1 -izip update-from-esxi6.5-6.5_update02.zip -pkgDir d:\temp\pkg -nsc
It is working only with an USB type A lan (2x1gb/s Startech), but with the plugable USB-c Asix LAN or a USB-c realtek LAN adpter and driver, it never work with my 2016 touch bar macbook pro and It worked only one time (never twice) with an Asus UX501V zenbook. The result was nfs41client failed to load . I think that ESXi said the samet hing with the zenbook, but at the end of the install, the network was seenn(one time only). Please, could you tell me what's happen ?
Hi there.. when I run lsusb -- I found Adapter but when i go to vmware esxi5.5 nothing shown in network adapters ..please advice