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.
- Download USB NIC Fling for ESXi 7.0 U1
(ESXi701-VMKUSB-NIC-FLING-40599856-component-17078334.zip) - 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" - Copy both files to your build directory (eg. c:\esx\)
- Open PowerShell
- (optional) Install VMware PowerCLI from the PowerShell Gallery
Install-Module -Name VMware.PowerCLI -Scope CurrentUser
- Change to your build directory
cd c:\esx\
- 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
- 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
- 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"
- Add the vmkusb-nic-fling package to the new profile
Add-EsxSoftwarePackage -ImageProfile $newProfile -SoftwarePackage "vmkusb-nic-fling"
- 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"
- Copy the zip bundle to your ESXi host
- 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[...]
- Reboot
Appreciated the information, I was trying to install esxi 7 on a xps8940 with killer nic + startech usb and was struggling with nic drivers.
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
```