VMware ESXi image includes the common drivers for the most popular server platforms. Many vendors provide their own custom ESXi images with native drivers for their hardware (HPE, Lenovo, Fujitsu, Dell, Cisco, etc.). If you want to install and use VMware ESXi on non-standard or legacy hardware, or even on a home computer, you will need to download and install the drivers yourself. In this article, we will show you how to manually install the device driver on VMware ESXi.
How to Download Drivers for VMware ESXi?
Find and download the required driver for your device. Drivers for VMware ESXi can be found:
- On the device manufacturer’s website;
- On the VMWare website in the VMware Compatibility Guide;
- Community versions of the ESX drivers are available for download on the Flings section of the VMware website. For example, Community Networking Driver for ESXi (https://flings.vmware.com/community-networking-driver-for-esxi), USB Network Native Driver for ESXi (https://flings.vmware.com/usb-network-native-driver-for-esxi);
- On the v-front.de website (https://vibsdepot.v-front.de/wiki/index.php/List_of_currently_available_ESXi_packages).
Drivers for VMware ESXi are delivered in VMware vSphere Installation Bundle (VIB) format.
Installing Drivers from the ESXi Host Client Web Interface
In recent versions of VMware ESXi (6.0, 6.5, 6.7, 7.x, 8.x), you can upload and install the device driver packages from the vSphere Web Client (Host Client) GUI.
- First, upload your
*.vib
driver to the datastore. Go to the Storage section, select your storage device, click Browse Datastore, create a folder, and upload the VIB file; - Then go to the Manage -> Packages section and click Install updates
- Enter the full path to your VIB file on Datastore. For example:
/vmfs/volumes/xxxxxxx-xxxx-xxxxxxxx/Drivers/net-community_1.2.7.0-1vmw.700.1.vib
- Click the Update button to install the driver package;
- After some time, your driver will appear in the list of installed packages.
How to Install Driver from VMware ESXi Command Line?
You can also install drivers from the ESXi command console.
In my case when installing a new host with VMWare ESXi 6.7, it turned out that this version of the hypervisor doesn’t have a built-in driver for the Adaptec 8405 RAID controller. As a result, ESXi doesn’t see the local RAID array based on Adaptec RAID 8405 (the hypervisor is installed on the SD card, so it boots correctly).
First, allow remote connection to ESXi host via SSH: Manage-> Services -> TSM-SSH -> Start
Connect to ESXi host via SSH and list available datastores:
$ df -h
Upload the VIB file with the driver to the ESXi host datastore ({Your_Volume_ID}) using WinSCP, Datastore Browser, or scp:
$ scp aacraid-6.0.6.2.1.59002-16258587.zip root@host1:/vmfs/volumes/{Your_Volume_ID}/
Extract the archive:
$ unzip aacraid-6.0.6.2.1.59002-16258587.zip
The RAID controller driver is located in the aacraid-6.0.6.2.1.59002-offline_bundle-16258587.vib file. Install the driver using the esxcli command:
$ esxcli software vib install -d /vmfs/volumes/{Your_Volume_ID}/aacraid-6.0.6.2.1.59002-offline_bundle-16258587.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: Adaptec_Inc_bootbank_scsi-aacraid_6.0.6.2.1.59002-1OEM.600.0.0.2494585
VIBs Removed: VMW_bootbank_scsi-aacraid_1.1.5.1-9vmw.670.0.0.8169922
VIBs Skipped:
Reboot the ESXi host and make sure that the local drive is available for use.
$ esxcli software vib update -d {OFFLINE_BUNDLE}
Some drivers may be signed using third-party certificates. In this case, you will receive the error message “Could not find a trusted signer” during installation. You can allow programs and drivers with third-party certificates to be installed in a test or non-productive environments by changing the Software Acceptance Level:
$ esxcli software acceptance set --level=CommunitySupported
Host acceptance level changed to 'CommunitySupported'.
Or you can ignore the certificate check during installation:
$ esxcli software vib install -d file --force --no-sig-check
Check that your driver is in the list of installed drivers:
$ esxcli software vib list |grep aacraid
In some cases, you may need to know the correct device ID to find and download the correct driver for your hardware.
You can view a complete list of devices available on the ESXi host:
$ lspci -v
You can apply a filter by device class (for example, Class 0200 is used for network adapters):
$ lspci -v | grep "Class 0200" -B 1
You can find out the full name and model of the device from the output of the command.
Inject Drivers into the ESXi Installation Image
When deploying a new host, you cannot proceed with the hypervisor installation if the ESXi installer does not see any network adapters (No Network Adapters) or local drives.
In this case, you must inject drivers for your network adapter or disk controller into the ESXi installation ISO image. You can use the third-party PowerShell script ESXi-Customizer-PS to do this.
Download the ESXi-Customizer-PS.ps1 script from GitHub (https://github.com/VFrontDe/ESXi-Customizer-PS/releases).
You can then generate an ISO image with the required version of ESXi and immediately add drivers from the specified directory using the PowerShell command:
.\ESXi-Customizer-PS.ps1 –v70 -pkgDir C:\esxi\driver
After some time, an ESXi 7.0 installation ISO image with integrated drivers will appear in the target directory.