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

Leave a Comment

NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

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