How to add the USB NIC Fling to ESXi 7.0 Base Image

Many people are using the USB NIC Fling by William Lam and Songtao Zheng in homelabs. To make a fresh installation or upgrade as simple as possible, I've created a new Image Profile that contains the USB NIC driver.

This article explains how to create a custom ESXi 7.0 Image including the NIC driver to either upgrade previous versions of ESXi or make a fresh  ESXi installation with USB NIC support.

Create a custom ESXi 7.0 Images including the USB NIC Driver

  1. Download USB NIC Fling (ESXi700-VMKUSB-NIC-FLING-34491022-component-15873236.zip)
  2. Copy the USB NIC Driver to your build directory (eg. c:\esx\
  3. Open PowerShell
  4. (optional) Install VMware PowerCLI from the PowerShell Gallery
    Install-Module -Name VMware.PowerCLI -Scope CurrentUser
  5. Change to your build directory
    cd c:\esx\
  6. Clone the original Image Profile, add the driver and export to ISO and Zip Bundle.
    Add-EsxSoftwareDepot https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml
    Export-ESXImageProfile -ImageProfile "ESXi-7.0.0-15843807-standard" -ExportToBundle -filepath ESXi-7.0.0-15843807-standard.zip
    Remove-EsxSoftwareDepot https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml
    Add-EsxSoftwareDepot .\ESXi-7.0.0-15843807-standard.zip
    Add-EsxSoftwareDepot .\ESXi700-VMKUSB-NIC-FLING-34491022-component-15873236.zip
    New-EsxImageProfile -CloneProfile "ESXi-7.0.0-15843807-standard" -name "ESXi-7.0.0-15843807-USBNIC" -Vendor "virten.net"
    Add-EsxSoftwarePackage -ImageProfile "ESXi-7.0.0-15843807-USBNIC" -SoftwarePackage "vmkusb-nic-fling"
    Export-ESXImageProfile -ImageProfile "ESXi-7.0.0-15843807-USBNIC" -ExportToIso -filepath ESXi-7.0.0-15843807-USBNIC.iso
    Export-ESXImageProfile -ImageProfile "ESXi-7.0.0-15843807-USBNIC" -ExportToBundle -filepath ESXi-7.0.0-15843807-USBNIC.zip
  7. You should now have two files in your build directory:
    ESXi-7.0.0-15843807-USBNIC.iso
    ESXi-7.0.0-15843807-USBNIC.zip

With the two files, you can either make a fresh ESXi 7.0 install or upgrade from previous versions.

Create a Bootable ESXi 7.0 Installer USB Flash Drive

  1. Download Rufus
  2. Connect the USB flash drive to your computer
  3. Open Rufus
  4. Select your Device
  5. Select your custom ISO file as Boot selection
  6. Do not change anything else
  7. Press START
  8. Use the Flash Drive to install ESXi 7.0.
    In some cases, ESXi Installation might fail at 81%. See here for a solution.

Upgrade to ESXi 7.0 with USB NIC Driver

Updating previous versions is very simple. Copy the zip bundle to a datastore and run the following command and reboot the host:

# esxcli software profile install -p ESXi-7.0.0-15843807-USBNIC -d /vmfs/volumes/[datastore]/ESXi-7.0.0-15843807-USBNIC.zip

17 thoughts on “How to add the USB NIC Fling to ESXi 7.0 Base Image”

  1. Are there some additional steps? I mean, it definitely works in that it gets me past the initial error where it says no compatible NIC is detected.

    But then about 81% into the install, there's an error that about "Exception: No vmknic tagged for management was found"

      1. I figured it out. When the install completes, push Alt+F1 to get to a shell.

        Use root for username, just press enter for password (blank password).

        Then you want to follow the instructions available at https://flings.vmware.com/usb-network-native-driver-for-esxi#instructions

        Run the command: vi /etc/rc.local.d/local.sh

        Essentially you're going to manually type in the code for Standard Virtual Switch.

        This must be done at the end of the install (prior to re-booting) otherwise you will have to re-do the install, since Alt+F1 won't give you an option to login.

        Hope this helps!

        ---
        There's probably a way to modify local.sh in the image rather than typing it manually, but I don't know how to do that.

  2. Worked a treat:) Here's an updated script with the current (March'21) updates -

    Add-EsxSoftwareDepot https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml
    Export-ESXImageProfile -ImageProfile "ESXi-7.0U1d-17551050-standard" -ExportToBundle -filepath ESXi-7.0U1d-17551050-standard.zip
    Remove-EsxSoftwareDepot https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml
    Add-EsxSoftwareDepot .\ESXi-7.0U1d-17551050-standard.zip
    Add-EsxSoftwareDepot .\ESXi701-VMKUSB-NIC-FLING-40599856-component-17078334.zip
    New-EsxImageProfile -CloneProfile "ESXi-7.0U1d-17551050-standard" -name "ESXi-7.0U1d-17551050-USBNIC" -Vendor "virten.net"
    Add-EsxSoftwarePackage -ImageProfile "ESXi-7.0U1d-17551050-USBNIC" -SoftwarePackage "vmkusb-nic-fling"
    Export-ESXImageProfile -ImageProfile "ESXi-7.0U1d-17551050-USBNIC" -ExportToIso -filepath ESXi-7.0U1d-17551050-USBNIC.iso
    Export-ESXImageProfile -ImageProfile "ESXi-7.0U1d-17551050-USBNIC" -ExportToBundle -filepath ESXi-7.0U1d-17551050-USBNIC.zip

    1. @Brada

      Add-EsxSoftwareDepot : The 'Add-EsxSoftwareDepot' command was found in the module 'VMware.ImageBuilder', but the
      module could not be loaded. For more information, run 'Import-Module VMware.ImageBuilder'.
      At line:1 char:1
      + Add-EsxSoftwareDepot https://hostupdate.vmware.com/software/VUM/PRODU ...
      + ~~~~~~~~~~~~~~~~~~~~
      + CategoryInfo : ObjectNotFound: (Add-EsxSoftwareDepot:String) [], CommandNotFoundException
      + FullyQualifiedErrorId : CouldNotAutoloadMatchingModule

      That's on very first command?!?! I'm stuck at 1st step (after the install module and cd c:\esx)

      Given that ESXi 7.0 is a free download I really dont get why we can't make "fixed" ISOs available for download?!

      1. Did you run 'Import-Module VMware.ImageBuilder', as stated in the error message?

        Which PowerShell Version are you using? Did you try with Core and/or 32bit version?

        1. Thanks, no I didn't cos I assumed the script would work as it claimed. I just tried that Import-module and that also errored. I am losing the will to live!

          1. Why so bitter? IT is all about reading and understanding error messages...

            Please try with 32bit version of Powershell. You might have hit the PowerCLI 64bit bug.

        2. Thanks, I did try x86 version and no joy. Same error regarding import. I noticed it says \Documents\WindowsPowerShell\Modules\VMware.VimAutomation.Sdk\12.2.0.17531155\VMware
          .VimAutomation.Sdk.psm1 cannot be loaded because running scripts is disabled on this system. For more information, see
          about_Execution_Policies at https:/go.microsoft.com/fwlink/?LinkID=135170."

          So I am guessing it needs something at beginning of the scripts... seen it on many PS scripts about execution policy

  3. Trying my hand at a ESXi 7.0 install, and I'm fresh noob here. Assuming I need to build a new ISO from a Win10 box... but... um, how do I get the necessary Powershell commands? Is that the VMWare.PowerCLI component?

      1. Got it built and the ISO went in nicely. However, the adapter I have (a AmazonBasics USB 3.0 GigE using an ASIX88179 chip) seems to drop out when moving heavy loads (like an ISO). I've ordered a new adapter based on the RTL chipset.

  4. Thanks, that did it... sorry, feeling grumpy today. Your help appreciated. I have an ISO now and as soon as my USB NIC arrives I can try ESXi :-)

  5. Sounds like you’re under control. As a FYI: If you don’t have the PowerCLI installed & need to retrieve it from MS PS gallery, I had to force TLS 1.2 to establish a connection.

    [Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12
    Register-PSRepository -Default -Verbose
    Set-PSRepository -Name "PSGallery" -InstallationPolicy Trusted

    Install-Module -Name VMware.PowerCLI -Scope CurrentUser

Leave a Reply

Your email address will not be published.

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