Skip to content

Update ESXi 7.0 with VMKUSB NIC Fling to 7.0 Update 1

The USB Native Driver Fling, a popular ESXi driver by Songtao Zheng and William Lam that adds support for USB-based Network Adapters, has been updated to version 1.7. The new version has added support for vSphere 7.0 Update 1.

When you download the latest version, you notice that there are separate versions for 7.0 and 7.0 U1. Both versions are only compatible with their corresponding ESXi version, which makes direct updates a little bit more complex.

This article explains how to upgrade ESXi hosts with USB-based network adapters in a single step.

The Problem
When you try to install ESXi 7.0 Update 1 first:

# esxcli software vib install -d /vmfs/volumes/images/VMware-ESXi-7.0U1a-17119627-depot.zip
[DependencyError]
VIB VMW_bootbank_vmkusb-nic-fling_2.1-6vmw.700.1.0.39035884 requires vmkapi_incompat_2_6_0_0, but the requirement cannot be satisfied within the ImageProfile.
Please refer to the log file for more details.

When you try to install the new Fling first:

# esxcli software vib install -d /vmfs/volumes/images/ESXi701-VMKUSB-NIC-FLING-40599856-component-17078334.zip
[DependencyError]
VIB VMW_bootbank_vmkusb-nic-fling_2.1-6vmw.701.0.0.40599856 requires vmkapi_incompat_2_7_0_0, but the requirement cannot be satisfied within the ImageProfile.
VIB VMW_bootbank_vmkusb-nic-fling_2.1-6vmw.701.0.0.40599856 requires vmkapi_2_7_0_0, but the requirement cannot be satisfied within the ImageProfile.
Please refer to the log file for more details.

To upgrade with unmodified update bundles, you have to remove the Fling, install 7.0 U1, and install the new Fling.

Solution
To install both updates in a single step, you have to create a custom image.

  1. Download USB NIC Fling for ESXi 7.0 U1
    (ESXi701-VMKUSB-NIC-FLING-40599856-component-17078334.zip)
  2. Download the Update Bundle for ESXi 7.0 U1 (or the latest Patch Bundle)
    For this example, I'm using the 7.0U1a Patch "VMware-ESXi-7.0U1a-17119627-depot.zip"
  3. Copy both files to your build directory (eg. c:\esx\)
  4. Open PowerShell
  5. (optional) Install VMware PowerCLI from the PowerShell Gallery
    Install-Module -Name VMware.PowerCLI -Scope CurrentUser
  6. Change to your build directory
    cd c:\esx\
  7. Add both files as local software depot
    Add-EsxSoftwareDepot .\VMware-ESXi-7.0U1a-17119627-depot.zip 
    Add-EsxSoftwareDepot .\ESXi701-VMKUSB-NIC-FLING-40599856-component-17078334.zip
  8. Get the imported image profile name
    Get-EsxImageProfile
    Name                           Vendor          Last Modified   Acceptance Level    
    ----                           ------          -------------   ----------------
    ESXi-7.0U1a-17119627-no-tools  VMware, Inc.    01.11.2020 0... PartnerSupported    
    ESXi-7.0U1a-17119627-standard  VMware, Inc.    01.11.2020 0... PartnerSupported
  9. Clone the profile to create a custom profile
    $newProfile = New-EsxImageProfile -CloneProfile 'ESXi-7.0U1a-17119627-standard' -name 'ESXi-7.0U1a-17119627-vmkusb-nic' -Vendor "virten.net"
  10. Add the vmkusb-nic-fling package to the new profile
    Add-EsxSoftwarePackage -ImageProfile $newProfile -SoftwarePackage "vmkusb-nic-fling"
  11. Export the profile to a zip bundle and installable ISO (the .iso can be used for fresh installations)
    Export-ESXImageProfile -ImageProfile $newProfile -ExportToIso -filepath "$($newProfile.Name).iso"
    Export-ESXImageProfile -ImageProfile $newProfile -ExportToBundle -filepath "$($newProfile.Name).zip"
  12. Copy the zip bundle to your ESXi host
  13. Install the upgrade bundle
    esxcli software vib install -d /vmfs/volumes/images/ESXi-7.0U1a-17119627-vmkusb-nic.zip
      Installation Result
      Message: The update completed successfully, but the system needs to be rebooted for the changes to be effective.
      Reboot Required: true
      VIBs Installed: VMW_bootbank_bnxtnet_2[...]
  14. Reboot

2 thoughts on “Update ESXi 7.0 with VMKUSB NIC Fling to 7.0 Update 1”

  1. Appreciated the information, I was trying to install esxi 7 on a xps8940 with killer nic + startech usb and was struggling with nic drivers.

  2. I was trying this method for ESXi-7.0U3n-21930508 and ESXi703-VMKUSB-NIC-FLING-55634242-component-19849370
    However, I get an error on the export-esximageprofile to ISO, that I don't get for the bundle:
    ```
    PS C:\Users\donbo\esx> Export-ESXImageProfile -ImageProfile $baseImage-USBNIC -ExportToIso -filepath $baseImage-USBNIC.iso
    Export-ESXImageProfile : Error retrieving file for VIB 'VMW_bootbank_vmkusb-nic-fling_1.10-1vmw.703.0.50.55634242': ("", "Error opening file object for VIB
    'VMW_bootbank_vmkusb-nic-fling_1.10-1vmw.703.0.50.55634242': Expected value '[]' for attribute 'swplatforms', but found value '[]'.").
    At line:1 char:1
    + Export-ESXImageProfile -ImageProfile $baseImage-USBNIC -ExportToIso - ...
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecified: (:) [Export-EsxImageProfile], FaultException
    + FullyQualifiedErrorId : System.ServiceModel.FaultException,VMware.ImageBuilder.Commands.ExportProfile

    PS C:\Users\donbo\esx> Export-ESXImageProfile -ImageProfile $baseImage-USBNIC -ExportToBundle -filepath $baseImage-USBNIC.zip
    ```

    I got the version of the usbnic from here: https://flings.vmware.com/usb-network-native-driver-for-esxi
    there is a dropdown, and I picked the latest 7.0.3 version to down load.
    Any hints as tow what is wrong?

    Here is the full script I ran:
    ```
    # $baseImage="ESXi-7.0.0-15843807"
    $baseImage="ESXi-7.0U3n-21930508"
    $usbNICDepot="\\marnegro\isostore\vmware"
    $usbNICSource="ESXi703-VMKUSB-NIC-FLING-55634242-component-19849370"
    $esxDepot="https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml"

    $esxBuildPath="$env:USERPROFILE\esx"

    New-Item -Path $env:USERPROFILE -Name "esx" -ItemType "directory"

    Set-Location -Path $esxBuildPath

    Add-EsxSoftwareDepot $esxDepot
    Export-ESXImageProfile -ImageProfile $baseImage-standard -ExportToBundle -filepath $baseImage-standard.zip
    Remove-EsxSoftwareDepot $esxDepot
    Add-EsxSoftwareDepot .\$baseImage-standard.zip
    Copy-Item $usbNICDepot\$usbNICSource.zip -Destination .

    Add-EsxSoftwareDepot .\$usbNICSource.zip

    New-EsxImageProfile -CloneProfile $baseImage-standard -name $baseImage-USBNIC -Vendor "ag6hq.net"
    Add-EsxSoftwarePackage -ImageProfile $baseImage-USBNIC -SoftwarePackage vmkusb-nic-fling
    # The following line throws an error, but still produces an .iso file
    Export-ESXImageProfile -ImageProfile $baseImage-USBNIC -ExportToIso -filepath $baseImage-USBNIC.iso
    Export-ESXImageProfile -ImageProfile $baseImage-USBNIC -ExportToBundle -filepath $baseImage-USBNIC.zip
    ```

Leave a Reply

Your email address will not be published. Required fields are marked *