Injecting Async drivers into a VMware ESXi 6 ISO

I was tasked with upgrading our ESXi 5.x environment to ESXi 6 Update 2. The first thing I checked was is if the new ESXi 6 Update 2 image contains the network drivers for the ESXi hosts that I will be upgrading. I took inventory of the NIC’s and found out that a few of the drivers not included in the ESXi 6 Update 2. (See below how to identify if your NIC drives are included in a VMware ESXi images).

ESXi NICS in my datacenter:
NIC1: Broadcom NetXtreme II BCM5709 1000 Base-T
NIC2: Intel Corporation 82576 Gigabit Network Connection 
NIC3: Intel Corporation I350 Gigabit Network Connection
NIC4: Intel Corporation 82599EB 10-Gigabit SFI/SFP + Network Connection

What this means is If you upgrade an ESXi host from version 5.x to ESXi 6.0 Update 2 it will not be available on the network after the upgrade as the NIC drivers are missing from that image. To address that you will have to inject the driver into the ESXi image before you proceed with the upgrade.

In my case I need to build an ISO image of ESXi that will include the 4 drivers that I listed above. So when I go through with the update I will be able to connect to my ESXi hosts.

This info is based on the below VMware KB, I’m documenting this as the KB is missing some important details how to get started.
Adding the async driver to the ESXi installation ISO bundle in ESXi (2137851) https://kb.vmware.com/s/article/2137851

Identifying the drivers required

Find out the vendor ID’s of the Network Cards,
SSH into the ESXi host:

# Esxcfg-nics -l  //List all your network adapters
# Vmkchdev -l | grep vmnic0  //Print out Vendor ID info
# Ethtool -i vmnic0  //Show the current driver installed

Go to https://vmware.com/go/hcl and under “What are you looking for” click IO devices. Enter VID:DID SVID:SSID on the right from the output you received from “vmkchdev -l | grep vmnic0”

Once you enter the vendor ID you will get details about the network card. Looking at the info below looks like the driver for the Broadcom NIC is marked Async and is not included in the 6.0U2 ESXi image. If it said (Inbox) beside the driver that means it’s part of the ESXi image, Async means it’s NOT part of the image.

I have seen VMware include a specific driver in ESXi 6.0 U1 and then remove that driver in ESXi 6.0 U2. So don’t assume that just because the driver as Inbox in one update that it will be availabe in another.

I Downloaded all of my latest drivers. Some of the intel drivers were included in the image but I downloaded the latest ones. So in total I downloaded a driver for the 4 NIC cards.

Downloading the drivers

Once you download the .zip file you need to open up the zip and locate the files that have the offline-bundle.zip in the file name. We will only need the files that contain the …offline-bundle.zip.

I will be updating multiple ESXi hosts that have a combination of these cards so creating one ISO image with all these drivers included is all I need.

ESXi NICS in my datacenter:
NIC1: Broadcom NetXtreme II BCM5709 1000 Base-T
NIC2: Intel Corporation 82576 Gigabit Network Connection 
NIC3: Intel Corporation I350 Gigabit Network Connection
NIC4: Intel Corporation 82599EB 10-Gigabit SFI/SFP + Network Connection

Download the ESXi 6.0U2 offline bundle installer (.zip file) as we will be using this to build the custom ESXi ISO.

Because I want to install a DELL customized image, I will not be using the Vmware offline-bundle.zip in the above screenshot.  I will download an equivalent one from the DELL website. It`s pretty much the same version but the DELL image has dell signed drivers.  Either one will work just fine.

I have 4 Offline-bundle.zip files that I extracted from the downlaoded driver zip file.

Creating a customized ESXi ISO

1.  Open VMware PowerCLI
2.  Open PowerCLI as Administrator and run: 
3.  Set-ExecutionPolicy RemoteSigned 

I have 4 Offline-bundle.zip files that I extracted from the downloaded driver files.

Add the ESXi Offline Bundle to the Depot, we will use this to build the ESXi ISO.

Add the 4 NIC offline bundles to the Depot as well

One NIC has been added above adding 3 more offline bundles for the remaining NIC’s

Get-EsxSoftwareDepot, you should see the 5 offline bundles I added above

1.  In my case the first one is the DELL customized ESXi offline bundle
2.  The 4 NICs are below 

Get-EsxImageProfile, to list the ESXi image you just attached to the Depot.
This is the ESXi Image we will be using as the base and will inject the NICs into it.

If the Name field above is too long you can run “Get-EsxImageProfile | Select Name” to only show the name field

Clone an Image and attach a profile to it.

Attach the NIC drivers into the profile

Add-EsxSoftwarePackage -ImageProfile NewAsyncProfile -SoftwarePackage net-igb

If you choose the wrong driver it will say that it’s already in the image profile

If you can’t figure out the driver name open up the offline-bundle zip file

Finally Creating the ESXi ISO image

That’s it your Customizes ISO image has been created.

This entry was posted in VMware and tagged , , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *