Songtao and I are happy to share that we now have a compatible version of the USB Network Native Driver for ESX v1.12 Fling that supports the latest ESXi 8.0 Update 1 release! 🥳
This release also includes a couple of minor enhancement and fixes which are listed below:
- Support for new DLINK RTL8156 device (0x2001:0xb301)
- Updated maximum supported USB Network devices from 8 to 12
- Resolved 2.5GbE link speed issue for RTL8156 adapter
Additionally, while ESXi 8.0 Update 1 has just been released, we know that not everyone will be on the latest version and these enhancement and fixes have also been ported to a version of USB Network Native Driver for ESX v1.12 Fling driver to also support ESXi 8.0, 8.0a, 8.0b, etc.
Use the following ESXi Component ZIP files based on your desired version of ESXi 8.x:
- ESXi 8.0 - ESXi800-VMKUSB-NIC-FLING-64098182-component-21668107.zip
- ESXi 8.0 Update 1 - ESXi80U1-VMKUSB-NIC-FLING-64098092-component-21669994.zip
Note: There are no plans to backport these enhancements/fixes to prior ESXi releases
Finally, if you are looking to create a custom ESXi ISO or Image Profile AND you either have an existing or can deploy a vCenter Server, please refer to this blog post for using vSphere Lifecycle Manager (vLCM) via the UI or PowerCLI to create your custom images.
If you do NOT have or can not deploy a vCenter Server (no hosts required), then you can refer to this blog post for using PowerCLI Image Builder to create your custom images, but make sure you update Python dependency to at least 3.7.9+ or you will run into this issue.
Bart Smit says
Superb! Thanks guys, this one was eagerly awaited.
Thomas says
Woah this is great news! Thanks guys.
Jason says
Whenever I used the usb fling it would always get unmapped from my VDS after a reboot. At the time (7.0u1), I read that was a know behavior. Has that changed?
William Lam says
Have you looked at Fling instructions regarding persisting configurations?
Jason says
Man, its months later and I only now noticed that you replied to me. 😉 I 100% didn't see those instructions. I'll give them a try.
For the VDS persistence what do we mean by port id? The uplink name on the VDS?
VDS_0_NAME=vDS
VDS_0_PORT_ID=10
VDS_1_NAME=vDS-NSX
VDS_1_PORT_ID=2
Silvio says
Hello William,
could you please post the link to the description of how to persistently integrate the USB network cards.
antoine jovelin says
Hi William.
I may have found a bug.
I have a homelab with 2 ESXi running 8.0b, one of them is an Intel NUC NUC12WSHI50Z00 with 2 usb to Ethernet adapters.
The adapters are from StarTech.com model USB31000S.
Everything is working fine and i have no problems with this configuration.
Since i upgraded to 8.0U1 my first ESXi is also working good but the esxi running on my NUC got serious troubles.
I did many tests and every time i Upgrade then add the USB Driver v1.12 Fling, the esxi lose all network connectivity.
I cannot reach the esxi and vCenter cannot detect it anymore.
If i reboot i still have the same problem. The only thing i can do to solve this problem is to downgrade the esxi by installing 8.0.0 and the previous usb driver.
I know you have many products and many NUC to create and test homelabs, do you have the possibility to test the driver with an Intel NUC like mine ?
By the way i really really want to thank you for sharing your hard work with the community.
Regards
William Lam says
When you say it loses connection, can you please be a bit more specific about the issue?
First, is the primary network adapter using the built-in NIC and bounded to vmk0? Is that fine after the upgrade?
Second, after upgrading and rebooting the host, did you check whether the USB NIC are still bounded to the vSwitch? If not, then most likely you're hitting the persistency issue which is already doc'ed on Fling webpage and steps should have been taken to persist those bindings, which certainly can impact connectivity.
antoine jovelin says
Hi William,
First i'd like to say sorry for my english, i'll try to do my best.
I'm also sorry i don't have the same knowledge as you but i'll try to do my best to help and to know what's going on.
To be more specific about the issue, here is what happened :
I couldn't create a custom iso of vsphere 80U1 with the fling driver so i did a fresh install from 80U1 ISO (i had an issue with python and i didn't understand it).
The primary network adapter using the built-in NIC is bounded to vmk0 even after the new installation.
I also had vswitch0 bounded to my built-in NIC.
Then i added the usb driver v1.12 and started a ssh connected to add persistency.
After rebooting i could see the new VMNICs on the host and i also could bound them to vswitch1 / vswitch2 and also to other vmkernels :
vmk0 -> vswitch0 -> management -> built-in NIC
vswitch1 -> vlans for my VMs -> USB1
vmk1 -> vswitch2 -> vMotion -> USB2
vmk2 -> vswitch2 -> Storage -> USB2
I added the host to my vcenter cluster and started to get vm vmotion so my new esxi can host vms.
Then some times later, the issue happend ... i lost the network connectivity from all adapters including the built-in NIC.
I cannot contact the esxi, ping it, connect to ssh or whatever. Even vCenter cannot communicate with the host even if they are on the same network.
i did it twice to be sure and run into the same issue.
i did an new install of 8.0.0 and fling for 8.0.0, did the exact same configuration and have no issue.
Please let me know if you need more informations
thx for your help and sharing your work.
regards
William Lam says
This is a bit more helpful.
Why couldn't you create a custom ISO for 80u1 w/driver? There's references in the blog post above in how you can do so and hopefully you can without any problems
Secondly, the fact that your onboard NIC was impacted is also odd and the lost of connectivity is at a later point. To help narrow down the scope/problem, is it possible for you to install 8.0 (no USB Fling) and then upgrade to 8.0u1 (no USB Fling) and let it run and see if you lose any connectivity? If you have a spare USB key, you don't even have to touch your existing configuration (one of the nice benefits of USB-based install)
antoine jovelin says
Hi William,
i had another USB key so i used it to install 8.0u1 without USB Fling, then i did all configuration of the new esxi with the only onboard NIC .
i still have the issue so i guess this bug comes from the 8.0u1 update and not from the USB Fling driver.
i'll have to check dcui if i can see any trouble but it's really late here and i will probably do it tomorrow (i'm in France).
Thank you for your time and for your help.
Once again nice work, thx for sharing it.
Alex says
Hey, thanks for the great work. Can i ask for help with a reaktec8125 driver with esxi8? is it possible to add or a custom image? i am really new in this. thanks
William Lam says
No such driver exists, only USB support which is via Fling
nsherin says
Hi William,
Thank you for your hard work with this project.
I'm running ESXI 8 U1 on a Lenovo Tiny with a USB NIC connection to iSCSI which was working perfectly.
As a test, I decided to reboot my host. Everything appears to be active from the USB NIC side of things, but I have no connectivity - i.e. I can't even ping the iSCSI server anymore. I wonder if you'd very kindly be able to help me.
I have two NICs:
[root@t-esxi:~] esxcli network nic list
Name PCI Device Driver Admin Status Link Status Speed Duplex MAC Address MTU Description
------ ------------ ------ ------------ ----------- ----- ------ ----------------- ---- -----------
vmnic0 0000:00:1f.6 ne1000 Up Up 1000 Full 6c:4b:90:28:79:5b 1500 Intel Corporation Ethernet Connection (2) I219-LM
vusb0 Pseudo uether Up Up 1000 Full c8:4d:44:25:26:9e 1500 Realtek USB 101001G2.5G LAN
vmnic0 is the Management interface on vSwitch 0 and vusb0 is a Storage interface on vSwitch1
vmk0 maps to vSwitch0 and vmnic0
vmk1 maps to vSwitch1 and vusb0
esxcli network ip interface list
vmk0
Name: vmk0
MAC Address: 6c:4b:90:28:79:5b
Enabled: true
Portset: vSwitch0
Portgroup: Management Network
Netstack Instance: defaultTcpipStack
VDS Name: N/A
VDS UUID: N/A
VDS Port: N/A
VDS Connection: -1
Opaque Network ID: N/A
Opaque Network Type: N/A
External ID: N/A
MTU: 1500
TSO MSS: 65535
RXDispQueue Size: 2
Port ID: 67108871
vmk1
Name: vmk1
MAC Address: 00:50:56:6b:08:14
Enabled: true
Portset: vSwitch1
Portgroup: Storage Network
Netstack Instance: defaultTcpipStack
VDS Name: N/A
VDS UUID: N/A
VDS Port: N/A
VDS Connection: -1
Opaque Network ID: N/A
Opaque Network Type: N/A
External ID: N/A
MTU: 1500
TSO MSS: 65535
RXDispQueue Size: 2
Port ID: 100663304
[root@t-esxi:~] esxcli network ip interface ipv4 get
Name IPv4 Address IPv4 Netmask IPv4 Broadcast Address Type Gateway DHCP DNS
---- ------------ ------------ --------------- ------------ ----------- --------
vmk0 192.168.4.1 255.255.0.0 192.168.255.255 STATIC 192.168.0.1 false
vmk1 10.0.0.1 255.0.0.0 10.255.255.255 STATIC 192.168.0.1 false
I've set up persistantancy for the USB connection and my /etc/rc.local.d/local.sh script looks like this:
[root@t-esxi:~] cat /etc/rc.local.d/local.sh
#!/bin/sh ++group=host/vim/vmvisor/boot
# local configuration options
# Note: modify at your own risk! If you do/use anything in this
# script that is not part of a stable API (relying on files to be in
# specific places, specific tools, specific output, etc) there is a
# possibility you will end up with a broken system after patching or
# upgrading. Changes are not supported unless under direction of
# VMware support.
# Note: This script will not be run when UEFI secure boot is enabled.
#Enable Persistant USB NIC Binding
vusb0_status=$(esxcli network nic get -n vusb0 | grep 'Link Status' | awk '{print $NF}')
count=0
while [[ $count -lt 20 && "${vusb0_status}" != "Up" ]]
do
sleep 10
count=$(( $count + 1 ))
vusb0_status=$(esxcli network nic get -n vusb0 | grep 'Link Status' | awk '{print $NF}')
done
# Map USB NIC to switch
esxcli network vswitch standard uplink add --uplink-name=vusb0 --vswitch-name=vSwitch1
esxcfg-vswitch -R
if [ "${vusb0_status}" = "Up" ]; then
esxcli network vswitch standard uplink add --uplink-name=vusb0 --vswitch-name=vSwitch1
fi
exit 0
The iSCSI server is on 10.0.10.1 but is no longer accessible after the reboot. Everything worked fine before my test reboot to see if everything would come back up OK.
Rnning /etc/rc.local.d/local.sh doesn't seem to work after rebooting so I can;t seem get any connectivity at all now on vusb0.
Any help would be much appreciated.
Kind regards,
Neil
William Lam says
Do you have Secure Boot turned on? If so, you will need to turn it off as that prevents any custom code from running (by design as that is what Secure Boot is providing)
nsherin says
Thanks for the speedy reply. Secure Boot is off in the BIOS.
I've even reinstalled ESXI with a clean install and simplified my /etc/rc.local.d/local.sh file to contain:
[root@t-esxi:~] cat /etc/rc.local.d/local.sh
#!/bin/sh ++group=host/vim/vmvisor/boot
# local configuration options
# Note: modify at your own risk! If you do/use anything in this
# script that is not part of a stable API (relying on files to be in
# specific places, specific tools, specific output, etc) there is a
# possibility you will end up with a broken system after patching or
# upgrading. Changes are not supported unless under direction of
# VMware support.
# Note: This script will not be run when UEFI secure boot is enabled.
vusb0_status=$(esxcli network nic get -n vusb0 | grep 'Link Status' | awk '{print $NF}')
count=0
while [[ $count -lt 20 && "${vusb0_status}" != "Up" ]]
do
sleep 10
count=$(( $count + 1 ))
vusb0_status=$(esxcli network nic get -n vusb0 | grep 'Link Status' | awk '{print $NF}')
done
exit 0
Even running /etc/rc.local.d/local.sh from an SSH session doesn;t bring up the interface.
Many thanks,
Neil
William Lam says
Best way to troubleshoot things like this is NOT to just run the script as-is but go through each line and check the output manually after a reboot. I assume the issue you're seeing is that vusb0 is NOT being bound to vSwitch1 (confirm that by doing esxcfg-vswitch -l). If you were to manually bind it, does everything work? If that that's a yes, then we know we've at least narrow down the issue. Then, see if you're able to go through those commands and see if they're successfully, as they should equal the same thing you do manually (thats beauty of automation its LITERALLY the thing you'd do manually). If that's successful, then take a look at local.sh ... is there anything in the logs that states it didn't run or ran with errors? I'd go even simpler with your edit and simply echo to a file and see if that runs w/o issue before attempting to add the code back in
nsherin says
Thanks again for your reply.
One of the problems is I'm not getting much useful output. It looks like vusb0 is being bound to vSwitch1:
[root@t-esxi:~] esxcfg-vswitch -l
Switch Name Num Ports Used Ports Configured Ports MTU Uplinks
vSwitch0 2560 4 128 1500 vmnic0
PortGroup Name VLAN ID Used Ports Uplinks
VM Network 0 0 vmnic0
Management Network 0 1 vmnic0
Switch Name Num Ports Used Ports Configured Ports MTU Uplinks
vSwitch1 2560 4 1024 1500 vusb0
PortGroup Name VLAN ID Used Ports Uplinks
Storage Network 0 1 vusb0
I've now run the command again to bind the switch:
[root@t-esxi:~] esxcli network vswitch standard uplink add --uplink-name=vusb0 --vswitch-name=vSwitch1
Uplink already exists: vusb0
[root@t-esxi:~] esxcfg-vswitch -R
Then I've confirmed the bindings again:
[root@t-esxi:~] esxcfg-vswitch -l
Switch Name Num Ports Used Ports Configured Ports MTU Uplinks
vSwitch0 2560 4 128 1500 vmnic0
PortGroup Name VLAN ID Used Ports Uplinks
VM Network 0 0 vmnic0
Management Network 0 1 vmnic0
Switch Name Num Ports Used Ports Configured Ports MTU Uplinks
vSwitch1 2560 4 1024 1500 vusb0
PortGroup Name VLAN ID Used Ports Uplinks
Storage Network 0 1 vusb0
Those commands were in my original script - the other
This is very new territory to me and I really am lost as to where to look next in terms of logs or how to echo to a file. The other part of the script simply sets the persistence - all I have done is copy that from the VMFlings.
nsherin says
I've reinstalled cleanly but with no scripts or any commands run.
Here's what I've done so far from the web UI:
Checked vusb0 exists under Physical NICs - it does
Created a new virtual switch - I called it 'vSwitch1' and set the uplink to vusb0 (which reported as being Up - 1000 Mbps)
Created a new VMKernel NIC called vmk1 - I called the Port Group 'Storage Network' and assigned 'vSwitch1' as the virtual switch. Initially assigned it DHCP and it grabbed an IP off my DHCP server and I could ping the IP from another PC. Using that assigned address for a static IP also worked fine.
I then moved the USB NIC to a separate switch (this is a very basic unmanaged switch) with a test NAS box and set the vmk1 NIC to 10.0.0.2 and the test NAS box to 10.0.0.3. Neither can ping one another.
There's some very odd connectivity going on here.
NotMe says
Same issue here, single USB nic. If I go in throught the physical console and F2, reset management network it prompts to choose the (1) NIC and works from there.
There's something going on to prevent it from persisting. Even if I run the commands listed above, in a script or manually, it is not associating it with the Management network, even though it tags the port group as such.
Does anyone know the sequence of commands the console ESX shell is doing when you do the reset management network? If we can run those (via script), we should be able to force persistent, or at least recreate it the same way each time...
NotMe says
And fixed it. This is ugly and can be trimmed, but works. USB nic, persistent through reboots. Also enables ssh persistently to expedite troubleshooting. Replace your IPs as needed.
cat /etc/rc.local.d/local.sh
#!/bin/sh ++group=host/vim/vmvisor/boot
# local configuration options
# Note: modify at your own risk! If you do/use anything in this
# script that is not part of a stable API (relying on files to be in
# specific places, specific tools, specific output, etc) there is a
# possibility you will end up with a broken system after patching or
# upgrading. Changes are not supported unless under direction of
# VMware support.
# Note: This script will not be run when UEFI secure boot is enabled.
echo "test" > /test.txt
echo `date` >>/test.txt
echo "Waiting for USB NIC to come up" >> /test.txt
vusb0_status=$(esxcli network nic get -n vusb0 | grep 'Link Status' | awk '{print $NF}')
count=0
while [[ $count -lt 20 && "${vusb0_status}" != "Up" ]]
do
echo "COUNT=" $count >> /test.txt
sleep 5
count=$(( $count + 1 ))
vusb0_status=$(esxcli network nic get -n vusb0 | grep 'Link Status' | awk '{print $NF}')
done
# Map USB NIC to switch
echo "Mapping USB NIC vusb0" >> /test.txt
esxcli network vswitch standard uplink add --uplink-name=vusb0 --vswitch-name=vSwitch0 >> /test.txt
echo "Mapping USB NIC vmk0" >> /test.txt
esxcli network vswitch standard uplink add --uplink-name=vmk0 --vswitch-name=vSwitch0 >> /test.txt
echo "Mapping USB NIC vswitch dash r" >> /test.txt
esxcfg-vswitch -R
echo "Mapping USB NIC vswitch dash el" >> /test.txt
esxcfg-vswitch -l
echo "Mapping USB NIC vswitch dash big L" >> /test.txt
esxcfg-vswitch -Lvusb0 vSwitch0
#if [ "${vusb0_status}" = "Up" ]; then
#esxcli network vswitch standard uplink add --uplink-name=vusb0 --vswitch-name=vSwitch0
#fi
#and set ip
esxcli network ip interface ipv4 set --interface-name=vusb0 --ipv4=192.168.123.10 --netmask=255.255.255.0 --type=static >>/test.txt
esxcli network ip interface ipv4 set --interface-name=vmk0 --ipv4=192.168.123.10 --netmask=255.255.255.0 --type=static >>/test.txt
esxcfg-route -a default 192.168.123.1 >>/test.txt
esxcli network ip interface tag add -i vusb0 -t Management >>/test.txt
esxcli network ip interface tag add -i vmk0 -t Management >>/test.txt
esxcli network vswitch standard uplink add --uplink-name=vusb0 --vswitch-name=vSwitch0 >>/test.txt
esxcli network vswitch standard uplink add --uplink-name=vmk0 --vswitch-name=vSwitch0 >>/test.txt
#also enable sshd
/etc/init.d/SSH start > /dev/null 2>&1
exit 0
Xavier says
Hello,
I'm using ESX 8.0.1 with Fling in version 1.12 and the USB QNAP QNA-UC5G1T network adapter (in the latest firmware v3.1.6)
Everything is working fine (link full-duplex 5000), as expected (like in a dream).
BUT after a bit of time (more or less 2 hours), the VMs and the HOST ESX becomes unavailable (no ping, no ssh, no network). So I have to reboot, restart the VMs and same behavior: perfect during 1-2 hours...
Any idea or feedback about ?
Thanks a lot,
Xavier
William Lam says
Can you generate vm-support bundle and post that on https://flings.vmware.com/usb-network-native-driver-for-esxi/bugs so we can track?
Xavier says
Hi,
I've generated a support bundle directly on the ESXi Host but there's no option to upload the bundle support on the reporting bug platform or I'm not finding the option to achieve it ?!
William Lam says
You need to provide a link to the vm-support bundle
Peter Ji says
Hopefully there will be USB Network Native Driver Fling for ESXi Arm Fling soon. ESXi Arm not supporting ASIX ones is a pain in the arse.
Daniel says
Hi,
I also has the same problem as Xavier above...
The USB works for about an hour or so and then suddenly it stops and the connections drops.
I'm running this with ESXi 8.0 Update 1a so maybe this is the problem, that the driver is not yet compatible with this release of ESXi.
Have you seen this problem?
Aliet says
Hi,
Do you know if the driver has support for Thunderbolt 3/4 1G/2.5G/5G/10G Base T adapters?
Thanks
Joe K says
Doesn't seem like you can download the zip file anymore?
William Lam says
Please see vmwa.re/flings
Jeff Messer says
Thank you for sharing that, William. I'm very disappointed to see them take down the official flings VMware site. I may have to share my disappointment with my VMware reps and have them pass that info up the new food chain so they're aware that customers are still interested in seeing this supported! 😉
I'm working on taking the innards of my 1st gen Intel Framework Laptop and turning it into a new ESXi host, using their 2.5Gb USB adapter. It looks like a RTL8156 so I have my fingers crossed I can get it working.
https://frame.work/products/ethernet-expansion-card
Stefaan says
Is an update in the making for esxi 8 update 2? Have I missed it or is it discontinued?
William Lam says
vmwa.re/flings
edelweiss says
vmwa.re/flings dont work !
William Lam says
It does
edelweiss says
Dont work!
Is there an alternative source?
William Lam says
vmwa.re/flings
Steven Petrillo says
Is there a version for U2 or can I use the U1 version?
William Lam says
See vmwa.re/flings 🙂
Ronald says
Hi William,
I'm troubleshooting an issue with a CableMatters 2.5 GB USB adapter I'm using in a NUC10 (Using USB-A on the back).
This adapter is using the Realtek 8156 chip. Running ESX 8.0 U2 with latest fling v1.13
The Fling notes in your article state: "Resolved 2.5GbE link speed issue for RTL8156 adapter"
But I'm having an issue with the link speed anyways...
After a cold boot the speed is reduced to 1000 Mbps.
Tried disabling the nic/interface on both sides, removing cables, forcing speeds. Switch is a USW-Enterprise-24-PoE, of course in a 2.5 GBE port.
Only fix is a usb insert while the NUC is running.
I have 2 identical NUC's, both with this adapter, both have the same issue.
Strangly this is not an issue when I reboot the NUC.
Figured I could use "usb_modeswitch -v 0x0bda -p 0x8156 --reset-usb" but sadly that command is not available.
Any tips on how to fix this for cold boots?
Thanks!
Ronald
Some info:
[root@esx02:~] lsusb
Bus 001 Device 002: ID 0bda:8156 Realtek Semiconductor Corp.
[root@esx02:~] esxcfg-nics -l
Name PCI Driver Link Speed Duplex MAC Address MTU Description
vmnic0 0000:00:1f.6 ne1000 Up 1000Mbps Full 1c:69:7a:61:xx:xx 1500 Intel Corporation Ethernet Connection (10) I219-V
vusb0 Pseudo uether Up 1000Mbps Full 5c:85:7e:3f:xx:xx 1500 CMI USB 101001G2.5G LAN
[root@esx02:~] esxcli network nic get -n vusb0
Advertised Auto Negotiation: true
Advertised Link Modes: 2500BaseT/Full, 1000BaseT/Full, 100BaseT/Full, 10BaseT/Full, Auto
Auto Negotiation: true
Backing DPUId: N/A
Cable Type:
Current Message Level: -1
Driver Info:
Bus Info: 0000:00:00:0
Driver: uether
Firmware Version: NA
Version: 1.0.0.0
Link Detected: true
Link Status: Up by explicit linkSet
Name: vusb0
PHYAddress: 0
Pause Autonegotiate: false
Pause RX: false
Pause TX: false
Supported Ports:
Supports Auto Negotiation: true
Supports Pause: false
Supports Wakeon: false
Transceiver:
Virtual Address: 00:50:56:55:xx:xx
Wakeon: None
If I reseat the USB-dongle by briefly removing it. It's instantly fixed:
[root@esx02:~] esxcfg-nics -l
Name PCI Driver Link Speed Duplex MAC Address MTU Description
vmnic0 0000:00:1f.6 ne1000 Up 1000Mbps Full 1c:69:7a:61:xx:xx 1500 Intel Corporation Ethernet Connection (10) I219-V
vusb0 Pseudo uether Up 2500Mbps Full 5c:85:7e:3f:xx:xx 1500 CMI USB 101001G2.5G LAN
I don't see any changes elsewhere (loaded driver/settings, etc)
William Lam says
What would be helpful is to provide the vm-support bundle once you've observed the issue, then remediate by reseating the USB dongle and then generating the bundle. Please provide a URL where we can pull the download
shajal says
I see that these drivers have been integrated into ESXi-8.0U2b-23305546-standard (VMware, Inc.)
natively "USB Native Driver for VMware"
William Lam says
No, this is just the standard USB functionality that has always been included with ESXi. You probably missed the "Network" part of the Fling name and assumed it was the same 🙂
Andre K says
Nevermind my last comment, I fixed it by renaming the file to "backusb.zip" as I think the original file name made my path too long.
Also when I go to the new Fling website and try to download the doco the link doesn't show any documentation. So used the steps from that archive site.
Andrew says
For ESXi-8.0U3 ?
Gabe says
+1