VMware ESXi 7.0 Update 3 on Intel NUC

NUC(except 8th Gen) can install the original iso, and install the usb fling driver by command line(esxcli software vib install -d /absolute/path/to/vib )

original:https://www.virten.net/2021/11/vmware-esxi-7-0-update-3-on-intel-nuc/

VMware vSphere ESXi 7.0 Update 3 has been released in October and before you start to deploy it to production, you want to evaluate it in your testing environment or homelab. If you have Intel NUCs or similar hardware you should be very careful when updating to new ESXi releases as there might be issues. Please always keep in mind that this is not an officially supported platform and there might be compatibility issues.

In vSphere 7.0, there are ups and downs with consumer-grade network adapters. Since the deprecation of VMKlinux drivers, there is no option to use Realtek-based NICs, and previous versions had problems with the ne1000 driver. Luckily there is the great Community Networking Driver for ESXi Fling that adds support for a bunch of network cards and VMKUSB-NIC-FLING always covers your back.

I’ve updated my NUC portfolio to check which NUCs are safe to update and what considerations you have to take before installing the update. Additionally, I’m taking a look at the consequences of the recently deprecated USB/SD-Card usage for ESXi Installations and some general Issues in 7.0u3.

ESXi 7.0 Update 3 with Community Network Driver (8th Gen Bean Canyon / 11th Gen NUC)

The ne1000 driver packed in 7.0 Update 3 still does not work with the Intel I219-V (6) network adapter, which is used in the 8th Gen Bean Canyon NUCs. But this problem can be easily solved with the Fling Driver. For reference, these are the ne1000 drivers versions used in 7.0 releases:

ne1000 0.8.4-10vmw.700.1.0.15843807 <- ESXi 7.0 GA
ne1000 0.8.4-11vmw.701.0.0.16850804 <- ESXi 7.0 Update 1
ne1000 0.8.4-11vmw.702.0.0.17630552 <- ESXi 7.0 Update 2
ne1000 0.8.4-11vmw.703.0.0.18644231 <- ESXi 7.0 Update 3

For the following NUCs, the Fling driver is required:

  • NUC8i7BEH/NUC8i7BEK (Intel Core i7-8559U – 4 Core, up to 4.5 GHz)
  • NUC8i5BEH/NUC8i5BEK (Intel Core i5-8259U – 4 Core, up to 3.8 GHz)
  • NUC8i3BEH/NUC8i3BEK (Intel Core i3-8109U – 2 Core, up to 3.6 GHz)
  • 11th Gen NUC (NUC11PAQi7, NUC11PAHi7, NUC11PAKi7, NUC11PAQi5, NUC11PAHi5, NUC11PAKi5, NUC11PAHi3, NUC11PAKi3, NUC11TNHv70L, NUC11TNHv7, NUC11TNHv50L, NUC11TNHv5, NUC11TNKv7, NUC11TNKv5, NUC11TNHi70Q, NUC11TNHi70L, NUC11TNHi7, NUC11TNHi50W, NUC11TNHi50L, NUC11TNHi5, NUC11TNHi30P, NUC11TNHi30L, NUC11TNHi3, NUC11TNKi7, NUC11TNKi5, NUC11TNKi3)
  • Any NUC-Style alternative with 11th Gen Intel CPU and 2.5GBps Network Adapter (Eg. ASRock Industrial NUC 1100)

Download the Update Bundle and Fling:

New Installation
If you want to do a fresh install of ESXi 7.0 U3, you have to create a custom image, including the Community Driver.

Use the following PowerShell commands to add the community driver to the stock image.

Add-EsxSoftwareDepot .\VMware-ESXi-7.0U3-18644231-depot.zip
Add-EsxSoftwareDepot .\Net-Community-Driver_1.2.2.0-1vmw.700.1.0.15843807_18835109.zip
New-EsxImageProfile -CloneProfile "ESXi-7.0U3-18644231-standard" -name "ESXi-7.0U3-18644231-NUC" -Vendor "virten.net"
Add-EsxSoftwarePackage -ImageProfile "ESXi-7.0U3-18644231-NUC" -SoftwarePackage "net-community"
Export-ESXImageProfile -ImageProfile "ESXi-7.0U3-18644231-NUC" -ExportToISO -filepath ESXi-7.0U3-18644231-NUC.iso

Use the ESXi-7.0U3-18644231-NUC.iso image to install ESXi 7.0 U3 on your NUC. (Create a Bootable ESXi Installer USB Flash Drive

Update
If you’ve already installed ESXi, use the following commands to create an update bundle that contains the required package.

Add-EsxSoftwareDepot .\VMware-ESXi-7.0U3-18644231-depot.zip
Add-EsxSoftwareDepot .\Net-Community-Driver_1.2.2.0-1vmw.700.1.0.15843807_18835109.zip
New-EsxImageProfile -CloneProfile "ESXi-7.0U3-18644231-standard" -name "ESXi-7.0U3-18644231-NUC" -Vendor "virten.net"
Add-EsxSoftwarePackage -ImageProfile "ESXi-7.0U3-18644231-NUC" -SoftwarePackage "net-community"
Export-ESXImageProfile -ImageProfile "ESXi-7.0U3-18644231-NUC" -ExportToBundle -filepath ESXi-7.0U3-18644231-NUC.zip

Use ESXi-7.0U3-18644231-NUC.zip to update ESXi 7.0 U3:

# esxcli software vib install -d /path/ESXi-7.0U3-18644231-NUC.zip

ESXi 7.0 Update 3 on any other Intel NUC

Any other NUC, down to the 5th Gen can be installed and upgraded with the original image.

VMware vSphere Hypervisor (ESXi) 7.0U3 [Release Notes] [Download]

ESXi 7.0 Update 3 with VMKUSB-NIC-FLING

If you want to use USB-based network adapters, you can use the VMKUSB-NIC-FLING.

Download the Update Bundle and Fling:

Create ISO and Update Bundle

Add-EsxSoftwareDepot .\VMware-ESXi-7.0U3-18644231-depot.zip
Add-EsxSoftwareDepot .\ESXi703-VMKUSB-NIC-FLING-51233328-component-18902399.zip
New-EsxImageProfile -CloneProfile "ESXi-7.0U3-18644231-standard" -name "ESXi-7.0U3-USBNIC" -Vendor "virten.net"
Add-EsxSoftwarePackage -ImageProfile "ESXi-7.0U3-USBNIC" -SoftwarePackage "vmkusb-nic-fling"
Export-ESXImageProfile -ImageProfile "ESXi-7.0U3-USBNIC" -ExportToIso -filepath ESXi-7.0U3-USBNIC.iso
Export-ESXImageProfile -ImageProfile "ESXi-7.0U3-USBNIC" -ExportToBundle -filepath ESXi-7.0U3-USBNIC.zip

You should now have two files, an .ISO for new installation and a .ZIP for updates.

Alternative Update Option for Installations with VMKUSB-NIC-FLING

If you try to update existing installations directly using original bundles, the update fails with the following error message.

[root@esx4:~] esxcli software vib install -d /vmfs/volumes/images/VMware/Fling/ESXi703-VMKUSB-NIC-FLING-51233328-component-18902399.zip
 [DependencyError]
 VIB VMW_bootbank_vmkusb-nic-fling_1.8-3vmw.703.0.15.51233328 requires vmkapi_2_9_0_0, but the requirement cannot be satisfied within the ImageProfile.
 VIB VMW_bootbank_vmkusb-nic-fling_1.8-3vmw.703.0.15.51233328 requires vmkapi_incompat_2_9_0_0, but the requirement cannot be satisfied within the ImageProfile.
 Please refer to the log file for more details.
[root@esx4:~] esxcli software vib install -d /vmfs/volumes/images/VMware/vSphere\ 7.0/VMware-ESXi-7.0U3a-18825058-depot.zip
 [DependencyError]
 VIB VMW_bootbank_vmkusb-nic-fling_1.8-3vmw.702.0.20.47140841 requires vmkapi_incompat_2_8_0_0, but the requirement cannot be satisfied within the ImageProfile.
 Please refer to the log file for more details.

The solution is quite simple. You first have to remove the Fling from the Rebooting Image and then install the Update and new driver.

  1. Place the Host into Maintenance Mode
  2. Remove the Fling. Depending on how you’ve installed it, one of the following commands will remove it:# esxcli software vib remove -n vmkusb-nic-fling # esxcli software component remove -n VMware-vmkusb-nic-fling
  3. Install the ESXi Update (Remember to always use the full path when installing bundles with esxcli. A relative path does not work!)# esxcli software vib install -d /[PATH]/VMware-ESXi-7.0U3a-18825058-depot.zip
  4. Install VMKUSB-NIC-FLING# esxcli software component apply -d /[PATH]/ESXi703-VMKUSB-NIC-FLING-51233328-component-18902399.zip
  5. Reboot ESXi

ESXi 7.0 Update 3 and the deprecation of SD card/USB as a boot device

For production environments, you have to consider moving away from SD cards and USB drives as boot devices for ESXi. They still work in ESXi 7.0 but VMware has announced that they will no longer be supported in future versions.

As of today, and for Home Labs, especially with U3 – It is perfectly fine to go on with USB drives.

Official KB: Removal of SD card/USB as a standalone boot device option (85685)

ESXi 7.0 Update 3 Critical Known Issues and Workarounds

Since the release of ESXi 7.0 Update 3, a couple of critical issues have been identified.

  • Possible PSOD when virtual machines on a VMFS6 thin disk execute UNMAP/TRIM functions. – Solved in 7.0 U3a
  • Network Driver Name changed from i40enu to i40en – Workaround available: KB85982
  • VAMI Backup Error due to default behavior for FIPS compliance changed – Workaround available: KB86069
  • vSphere HA Issues on Upgraded Hosts – Workaround available: KB86191

See: KB86287

ESXI6.7重启后丢失usb网卡 vswitch lose physical adapters after reboot

Chinese version

ESXI6.7重启后丢失usb网卡,导致虚拟机无法上网。

解决方法:

参考https://kzpu.com/archives/4400.html

使当前的usb网卡映射持久化,就是说,重启后usb网卡照样可以使用。可能对esxi7.0可以解决,但是6.7映射后仍然无法识别。

esxcli system module parameters set -p "$(esxcli network nic list |grep vusb |awk '{print $1 "_mac=" $8}' | awk 1 ORS=' ')" -m vmkusb_nic_fling

编辑 /etc/rc.local.d/local.sh 

思路就是,先强制添加vusb0到上行链路(名字根据实际设备修改),此时虽然后台显示正常,但是仍然无法上网,然后删除虚拟交换机的上行链路,再次添加,此时应该上网恢复正常。推测和设备初始化的顺序相关。

参考https://communities.vmware.com/t5/ESXi-Discussions/vswitch-lose-physical-adapters-after-reboot/td-p/465644

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

if [ "${vusb0_status}" = "Up" ]; then

esxcli network vswitch standard uplink add --uplink-name=vusb0 --vswitch-name=vSwitch1
sleep 10
esxcli network vswitch standard uplink remove --uplink-name=vusb0 --vswitch-name=vSwitch1
sleep 10
esxcli network vswitch standard uplink add --uplink-name=vusb0 --vswitch-name=vSwitch1

fi

English version

vswitch lose physical adapters after reboot, cannot add uplink through the Esxi console

Solution:

reference https://kzpu.com/archives/4400.html

make the usb network module parameter permenent, this may help in esxi 7.0, however I failed in esxi 6.7.

esxcli system module parameters set -p "$(esxcli network nic list |grep vusb |awk '{print $1 "_mac=" $8}' | awk 1 ORS=' ')" -m vmkusb_nic_fling

I tried another solution ,it solved my problem. loging in the ssh shell, edit this file /etc/rc.local.d/local.sh . using command line to add vusb0(you can change this name according to your situation) to the vswitch, although the vswitch showed the uplink, it failed to function normally, so I deleted the uplink and added it back to the vswitch ,it worked as magic. any problem feel free to contact me by admin@datascientist.top

reference https://communities.vmware.com/t5/ESXi-Discussions/vswitch-lose-physical-adapters-after-reboot/td-p/465644

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

if [ "${vusb0_status}" = "Up" ]; then

esxcli network vswitch standard uplink add --uplink-name=vusb0 --vswitch-name=vSwitch1
sleep 10
esxcli network vswitch standard uplink remove --uplink-name=vusb0 --vswitch-name=vSwitch1
sleep 10
esxcli network vswitch standard uplink add --uplink-name=vusb0 --vswitch-name=vSwitch1

fi