Installing ESXi on an unsupported device is a matter of luck. Unfortunately, I found that my computer’s built-in NIC is a Realtek R8168 — a network card no longer supported by ESXi.
In the ESXi 6.x era, we could add the net55-r8168 driver to make ESXi support this NIC, but after ESXi 7.x disabled all Linux-dependent drivers, this method no longer works.
USB Network Native Driver for ESXi
Fortunately, ESXi now provides native drivers for several popular USB NICs (ASIX88179, RTL8152/RTL8153, AQC111U). We can purchase a supported USB NIC adapter and create an image with the VMKUSB-NIC-FLING (Backup) driver to install ESXi.
The installation process can be referenced from Tips for using USB Network Adapters with VMware ESXi.
After installation, if you need to manually select the NIC to connect to the network after each boot, you can refer to this guide to add a boot script to make the system automatically recognize the USB NIC:
# /etc/rc.local.d/local.sh 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 esxcfg-vswitch -R
R8168 Passthrough
To avoid wasting the R8168 NIC’s port and improve performance (USB NICs can impact performance), we can passthrough the R8168 NIC to a virtual machine in ESXi for continued use.
However, after configuring it, this problematic NIC started causing issues again — the network would drop every few minutes. In the virtual machine’s /var/log/kern.log
, the following error was observed:
ubuntu kernel: [ 2581.050902] ------------[ cut here ]------------ ubuntu kernel: [ 2581.050905] NETDEV WATCHDOG: ens100 (r8169): transmit queue 0 timed out ubuntu kernel: [ 2581.050921] WARNING: CPU: 0 PID: 0 at net/sched/sch_generic.c:472 dev_watchdog+0x270/0x280
After searching, I found that the issue might be with the Linux built-in driver. We can try installing the driver provided by Realtek to resolve it. On Ubuntu, you can install it directly using the apt command:
apt install r8168-dkms
After rebooting, the issue was resolved.
Coxxs