WilliamLam.com

  • About
    • About
    • Privacy
  • VMware Cloud
  • Tanzu
    • Application Modernization
    • Tanzu services
    • Tanzu Community Edition
    • Tanzu Kubernetes Grid
    • vSphere with Tanzu
  • Home Lab
  • Nested Virtualization
  • Apple
You are here: Home / ESXi / USB Network Native Driver Fling for ESXi 8.0 Update 1

USB Network Native Driver Fling for ESXi 8.0 Update 1

04.26.2023 by William Lam // 19 Comments

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.

More from my site

  • Google Coral USB Edge TPU Accelerator on ESXi
  • ESXi configstorecli enhancement in vSphere 8.0 Update 1
  • NFS Multi-Connections in vSphere 8.0 Update 1
  • How to bootstrap vSAN Express Storage Architecture (ESA) on unsupported hardware?
  • Nested ESXi installation using HTTPS boot over VirtualEFI in vSphere 8

Categories // ESXi, vSphere 8.0 Tags // ESXi 8.0, ESXi 8.0 Update 1, usb, vSphere 8.0, vSphere 8.0 Update 1

Comments

  1. Bart Smit says

    04/26/2023 at 8:48 am

    Superb! Thanks guys, this one was eagerly awaited.

    Reply
    • Thomas says

      04/26/2023 at 1:05 pm

      Woah this is great news! Thanks guys.

      Reply
  2. Jason says

    04/26/2023 at 4:32 pm

    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?

    Reply
    • William Lam says

      04/26/2023 at 5:48 pm

      Have you looked at Fling instructions regarding persisting configurations?

      Reply
  3. antoine jovelin says

    04/27/2023 at 6:57 am

    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

    Reply
    • William Lam says

      04/27/2023 at 8:46 am

      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.

      Reply
      • antoine jovelin says

        04/27/2023 at 11:02 am

        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

        Reply
        • William Lam says

          04/27/2023 at 12:16 pm

          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)

          Reply
          • antoine jovelin says

            04/27/2023 at 4:17 pm

            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.

  4. Alex says

    04/28/2023 at 9:33 am

    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

    Reply
    • William Lam says

      04/28/2023 at 10:44 am

      No such driver exists, only USB support which is via Fling

      Reply
  5. nsherin says

    05/20/2023 at 8:13 am

    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:

    [[email protected]:~] 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

    [[email protected]:~] 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:

    [[email protected]:~] 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

    Reply
    • William Lam says

      05/20/2023 at 8:15 am

      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)

      Reply
      • nsherin says

        05/20/2023 at 11:00 am

        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:

        [[email protected]:~] 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

        Reply
        • William Lam says

          05/20/2023 at 12:49 pm

          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

          Reply
  6. nsherin says

    05/20/2023 at 2:10 pm

    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:

    [[email protected]:~] 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:

    [[email protected]:~] esxcli network vswitch standard uplink add --uplink-name=vusb0 --vswitch-name=vSwitch1
    Uplink already exists: vusb0

    [[email protected]:~] esxcfg-vswitch -R

    Then I've confirmed the bindings again:

    [[email protected]:~] 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.

    Reply
  7. nsherin says

    05/20/2023 at 4:32 pm

    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.

    Reply
  8. NotMe says

    05/23/2023 at 7:54 pm

    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...

    Reply
  9. NotMe says

    05/23/2023 at 11:37 pm

    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

    Reply

Thanks for the comment! Cancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Search

Author

William Lam is a Senior Staff Solution Architect working in the VMware Cloud team within the Cloud Infrastructure Business Group (CIBG) at VMware. He focuses on Cloud Native, Automation, Integration and Operation for the VMware Cloud based Software Defined Datacenters (SDDC) across Private, Hybrid and Public Cloud

Connect

  • Email
  • GitHub
  • LinkedIn
  • RSS
  • Twitter
  • Vimeo

Recent

  • Will this Arm SoC work with ESXi-Arm? 06/02/2023
  • Converting VirtualBox VDI (Virtual Disk Image) to VMDK for use with ESXi 8.x 05/31/2023
  • Quick Tip - How to monitor when ESXi filesystem and partitions are filling up? 05/30/2023
  • DDR5 SODIMM capable kits for ESXi 05/30/2023
  • ESXi on ASUS PN64-E1 05/24/2023

Advertisment

Privacy & Cookies: This site uses cookies. By continuing to use this website, you agree to their use.
To find out more, including how to control cookies, see here: Cookie Policy

Copyright WilliamLam.com © 2023

 

Loading Comments...