Skip to main content

How to Install Proper Drivers for 3rd Party Network Adapter on ESXi 5.x

Most company use HP, Cisco, IBM network adapter, most of their network adapter drivers include in ESXi 5.x images. But what if your network adapter is other vender? I’m going to show you how to identify and install proper drivers for 3rd party network adapter on ESXi 5.x.

My ESX 4.0 server (HP DL380G7) was working properly for VDI environment. I upgraded the hosts to ESXi 5.x to leverage by new features, but unfortunately 3rd party network adapter didn’t work after installed ESXi 5.1. vmnic0, 1, 2, 3 belong to embedded HP NIC, vmnic4, 5, 6, 7 disappeared in vSphere Client. I’m going to use vmnic4 for example.

Identify network adapter model

The additional NICs model shows as ServerEngine Corp. OneConnect 10Gb NIC on vSphere Client. It doesn’t give me more information.

The two NICs show Unknown PCI device in BIOS, it indicates not a HP NIC.

Search keyword vmnic4 in vmkernel log by command less /var/log/vmkernel | grep vmnic4, you will see ESXi cannot load the driver.

Run command vmkchdev -l |grep vmnic4 to get similar output below:

002:01.0 19a2: 0700 10df: e622 vmkernel vmnic0

In this example, the values are:

VID = 19a2

DID = 0700

SVID = 10df

SDID = e622

Match the IDs in VMware hardware compatibility guide – IO device.

It indicates the network adapter is Emulex OneConnect OCe10102-N

Upgrade firmware and drivers

Looks like that’s a native Emulex network adapter, so let’s search Emulex website….

Driver downloads for VMware vSphere 5.1 states “You must update the firmware and boot code on the OCe11102 and the OCe10102 UCNAs when you install the driver.”

Go to firmware downloads page and download the Off-line One Connect Flash ISO version, mount to HP server via iLO and reboot.

Flash Utility finds the network adapters and ask continue, press Y button to start firmware upgrading.

Run command reboot after upgrading complete.

Driver of network adapter actually already includes in ESXi 5.1, so you don’t have to upgrade again, you can run command esxcli software vib list | grep be2net to find out the installed driver version.

Popular posts from this blog

Connect-NsxtServer shows "Unable to connect to the remote server"

When you run Connect-NsxtServer in the PowerCLI, it may show "Unable to connect to the remote server".  Because the error message is a little bit confusing with other login issues. It's not easy to troubleshoot. The actual reason is the NSX-T uses a self-signed certificate, and the PowerCLI cannot accept the certificate automatically. The fix is super easy. You need to set the PowerCLI to ignore the invalid certificate with the following command: Set-PowerCLIConfiguration -Scope User -InvalidCertificateAction:Ignore -Confirm:$false

Setup Terraform and Ansible for Windows provisionon CentOS

Provisioning Windows machines with Terraform is easy. Configuring Windows machines with Ansible is also not complex. However, it's a little bit challenging to combine them. The following steps are some ideas about handling a Windows machine from provisioning to post configuration without modifying the winrm configuration on the guest operating system. Install required repos for yum. yum -y install yum -y install yum -y install yum -y install epel-release yum -y install yum-utils yum-config-manager --add-repo Install  Terraform . sudo yum -y install terraform Install  Ansible . sudo yum -y install ansible Install  Kerberos . yum -y install gcc python-devel krb5-devel krb5-libs krb5-workstation

How to List All Users in Terraform Cloud

Terraform has a rich API. However, the API documentation does not mention how to list all users. We can leverage the organization membership API and the PowerShell command  Invoke-RestMethod  to get a user list. 1. Create an organization token in Terraform Cloud. 2. Create the token variable ( $Token ) in PowerShell. $Token = "abcde" 3. Create the API parameters variable in PowerShell. $params = @{ Uri = "" Authentication = "Bearer" Token = $Token ContentType = "application/vnd.api+json" } Note: You need to replace ZHENGWU with your own organization name. And I used 100 at the end of the URI to retrieve the first 100 users. It can be any number.  4. Retrieve the API return and list the user's email address. $Test = Invoke-RestMethod @params $