Add additional drivers to ESXi
Last week I have been struggling with the installation of a vSphere 4 infrastructure on Dell hardware at a Belgium client site.
I have done many many many VMware installations and encountered my fair share of issues but apart from the HP USB sticks the hardware never gave me this much trouble.
It all started with a very difficult BIOS/firmware upgrade which, after various downloads and trials, ended with an old-school DOS boot USB and a DOS based BIOS update. Real 1980’s stuff.
With this fixed I installed all ESX hosts and left for the hotel, ready to start the configuration the next day. However, when I started with the first ESX host and wanted to configure the network, I noticed that I only had eight NICs when I should have had twelve. We use Dell PowerEdge R805 servers with two Intel quad port 82576 Gigabit Ethernet Adapters, the first card was already in the server, the second card we added just before the installation.
At first I suspected the expansion slot and riser board and tried swapping PCI-e x8 and PCI-e x4 slots but with no success. But by swapping the NICs we noticed that the original NIC worked but the NIC we added just before the installation did not. Further investigation showed that although the NICs were identical with regards to type, chipset, layout, etc, the revisions where a little different.
Searching the VMware Support website we found a driver CD for the Intel 82575 and 82576 Gigabit Ethernet Adapter.
Although we designed the virtual infrastructure with ESXi hosts in mind we used standard ESX 4 to check if the driver CD would fix the issue and have the additional four NICs pop up. And they did, YES!
But next up, our next and hopefully final challenge.
With standard ESX it is very easy to add additional drivers during installation. Just select ‘Yes’ when the installations asks if you want to add additional drivers, select and add the driver and you’re done.
With ESXi you have only two options when installing, 1. Install ESXi, 2. Boot from harddisk. That’s all, so how do you add additional drivers?
The driver CD manual combined with a little help from a colleague (thanks AJ) did the trick. After the installation configure the management network on one of the functioning NICs, connect using the vSphere client and put the host in maintenance mode. After that use the vSphere CLI to install the additional driver from the driver CD (inserted in the client containing the vSphere CLI) using the following command:
‘vihostupdate.pl –server [IP address] –username root –install –bundle [CD/DVD]:\offline-bundle\INT-intel-lad-ddk-igb-220.127.116.11.1-offline_bundle-185976.zip‘
Reboot the ESX host and enjoy the four extra NICs!
For easy reference follows a step by step How To:
Step 1) Download the VMware vSphere Command-Line Interface from the VMware website.
Step 2) Install the VMware vSphere Command-Line Interface.
Step 3) Connect to the ESXi server through the VI client you wish to inject the NIC drivers into.
Step 4) Put the ESXi host in maintenance mode. This can be done by connecting through the VI client with the ESXi server.
Step 5) Inject the NIC drivers using the CLI
C:\Program Files (x86)\VMware\VMware vSphere CLI\bin>vihostupdate.pl –server 172.17.101.13 –username root –install –bundle D:\offline-bundle\INT-intel-lad-ddk-igb-18.104.22.168.1-offline_bundle-185976.zip
You will see in the VI Client that the driver is installed.
Step 6) Reboot the host.
Step 7) Check the total number of network adapters through the VI client.
Under Configuration Tab> Network Adapters under hardware column.
Step 8 Install finished successful.
Good job in Belgium guys.
On a side note: If you're doing a lot of stuff from the command line you totally forget about the GUI.
When we tried to put the host into maintenance mode with RCLI we couldn't get it to work. For some strange reason I couldn't get it to work in our own datacenter.
So before staring yourself blind on al the RCLI commands, don't forget there's a GUI which sometimes saves you a lot of time :)
Great post Erik – thanks! A note to anyone running the vSphere CLI from Windows 7: be sure the command prompt is run as an administrator. My first attempt failed with error messages about missing perl dll files, etc. I open a new instance of cmd.exe as Administrator, and the command then executed flawlessly. After a reboot, my “Intel Gigabit ET NIC,Quad Port” nic ports appeared in the vSphere client under Network Adapters as “82576 Gigabit Network Connection”. Not sure why this wasn't recognized by vSphere out of the box, but glad it appears to be working now.
Awesome post! note… the drivers have changed… Thank you!
Just wondering if it's possible to get ESXi to accept a new driver for a network adapter when it is the only network adapter in the system? The motherboard is a new ASUS P5G41T-M LX with an Atheros AR8131 network adapter and I would like to install ESXi 4.0 but it fails during the installation because it is not compatable but I'm sure it would be up to the task.
Question… If I am using the free version (not the trial) of esxi 4.0 will RCLI still work? I am doing the command and know the syntax is right. The server shows root login logoff within about 6 seconds. But no install confirmation.
I have the Quad Port ET card but cant get it to install…. and I am starting to go a bit nuts.
This also should work with the free version of ESXi. Are you really sure the syntax is right ? :)
As far as I know ESX(i) needs a supported network card during first install. A solution could be to put in a supported network card, install ESX, and remove the added network card. I haven't tried this with ESX 4.
Here is what I am doing…
Put server in maintainance mode. Connect using RCLI using the command:
vihostupdate.pl –-server 192.168.200.77 –install –-bundle c:offline-filesINT-intel-lad-ddk-igb-22.214.171.124.1-offline_bundle-185976.zip
On the ESXI server I see the login and 6 seconds later a logout… but no confirmation.
I also tried the command with the file in a download directory of a web server and I can see the http get in the logs showing the file was accessed.
Thanks for replying. I decided to install Microsoft Server 2008 R2 with Hypervisor integrated. Hyper-V is also available in a free stand-alone edition. When I found out it is built into Server 2008 I just went to that, microsoft has much better driver support and hasn't been a problem since. I've got multiple virtual servers going now and I've never done anything like that before haha.
Is the file name correct?
I did this on an extra ESX hosts this week and I couldn't get it too work. Even with my own article as reference.
At the end it turned out that the intel driver name had changed (from INT-intel-lad-ddk-igb-126.96.36.199.1-offline_bundle-185976.zip to INT-intel-lad-ddk-igb-188.8.131.52-offline_bundle-166506.zip)
When running vihostupdate the output is Error connecting to server at 'https://localhost/sdk/webService': Perhaps host is not a Virtual Center or ESX server
I've encountered this error several times with mixed causes.
– syntax error (check the command, make sure you use '-' two times (- – server, – – username (without spaces)))
– name resolution not OK (try the IP address)
Thank you Erik. Also having copied the commend from a web page maybe there were hidden spaces that messed the syntax. I retyped it and it completed successfully.
Here is how-to guide for the Intel Quad Port ET cards:
Thanks alot for this Erik! Nice stuff and good step-by-step guide!
Hi i have enjoyed reading this page. i also have a question
is this method the same for adding Sata driver for mother boards? i have installed on a usb stick but have nothing to attach as a data store. in the data store inventory
You could try adding a SATA driver using the procedure mentioned above.
Great post! But do you guys know if it is possible to add the driver to the ISO, so that it is avaialble during the install procedure?
I currently have a blade without local storage and ESXi 4.1 does not contain the right driver for my FC HBA’s.
I’ve heard that this is possible. It’s used with home/whitebox installation with unsupported hardware. Personally I’ve never done it.
Check out this script to add drivers to an ISO:
This script also has the option to create a bootable USB
it gives me Access denied
Wrong username and/or password?
Thanks for the post, it was well written and easy to follow. I had to install drivers for my CNA cards today post ESXi install.
Followed your instructions and I am getting “Install Failed: The metadata or bundle option must be specified.”
This is the actual command I am using:
vihostupdate.pl –server 10.88.48.11 –username root –install –-bundle f:offline-bundleINT-intel-lad-ddk-igb-184.108.40.206.1-offline_bundle-185976.zip
I have download the ISO file and mounted as a virtual image on the F Drive. Checked that the directory and file name is correct.
Any ideas on why I can’t get it to work would be appreciated.
Did you type the complete string by hand or did you copy it from the website?
Copying may include hidden
spaces that f**ks up the syntax. Try to retype it.
If this doesn’t help try putting the path between ” .. ”
I hope this helps.
Thank u For your explain … but i face a problem
I have ESXi 4.1 and i want to install a link sys EG1032 v3
i can’t find the .iso file required to install it, i tried to but the src files from the nic cd to the iso file but the error always with metadata file. please help
This page was a huge help to me. Thanks so much for putting it up.
worked as explained my intel X520-t2 NICs are now fully operational thanks!
IM having problems running esxi 5.1 won’t accept it! ! :(
We have installed 4.1ESxi with Dual-Port Intel Server Adapter working fine. Want to add
Quad Giga Port PCIe x4 Atheros AR8131 adapter. Please help me to install driver. We have Linux 2.6 driver.
For this card to work you need the ESXi drivers. The Linux 2.6 drivers won’t work for ESXi.
Erik, I’ve received a message “access denied” and in your printscreen it’s appeared a option “Enter password” but it did not appear to me. Can you help me, please? The “access denied” message appears before “Enter Password” message.
I’m running on 6.5 VMware ESXi and 6.5 VM CLI. Thank you a lot!
It seem this works a little bit different in 6.5. Try one of these methods: