I had my doubts about posting this one cause it definitely breaks your support. But a quick search on google revealed that it has been posted before so if you’re gonna do it why not use “my” procedure. Again I would like to stress that this should only be done for test purposes. Mark Erica was so kind to email me this procedure that they used to replace a faulty driver. The driver would be in the next version of ESXi or probably a patch but due to the severe problems they could not wait.
This is how they injected a driver into an installable and running ESXi server:
- Log-on to the ESXi host with SSH
- Go to directory where tars are saved and you should find binmod.tgz there:
cd /bootbank
ls -l- Copy the current original binmod.tgz to temporarily disk location, in this example datastore/test/binmod:
cp binmod.tgz /vmfs/volumes/datastore/test/binmod/binmod.tgz
- Untar/zip the file:
tar -xzvf binmod.tgz
- Copy the new driver to the extracted binmod.tgz directory:
cp /vmfs/volumes/datastore/test/unm_nic.o /vmfs/volumes/datastore/test/binmod/mod/unm_nic.o
- Change rights of new file:
chmod 755 unm_nic.o
- Make sure you changed the right of the file:
cd /vmfs/volumes/datastore/test/binmod
ls -l- tar/gzip the binmod again:
tar -cvzf binmod.tgz usr bin etc lib mod sbin
Notice that all directories have to be packed from root level: usr bin etc lib mod sbin- Go to the bootbank to replace the old binmod.tgz with the new one:
cd /bootbank
rm binmod.tgz
cp /vmfs/volumes/datastore/test/binmod/binmod.tgz /bootbank/binmod.tgz- Make sure you replaced the binmod.tgz correctly, check timestamps:
ls -l- Reboot server
- Check if the correct driver has been installed after the reboot:
cd /mod
ls -l
The result should be new driver file
So you see it’s fairly easy to inject drivers, keep in mind that this is at your own risk. I just noticed VM-Help also has a procedure on his website.
I really love the fact that more and more people are starting to contribute to Yellow-Bricks by sending me scoops, tips, tricks or even commenting. Thanks guys, and if you want to contribute in anyway just drop me an email on duncan [@] yellow-bricks.com
Roger Lund says
Great stuff!
I think it is fantastic that people are getting under the hood of ESXi
Roger L
http://rogerlunditblog.blogspot.com/
ASL says
This is great but I need to inject network drivers, until I do I cannot do anything…..any ideas? I’m running from a USB key if that helps..
Duncan Epping says
this article is about injecting network drivers. but first thing you need to do is get the esxi network driver before you start!
SoHow says
So how do you do this if your server does not install esx 4.0 due to the lack of network support ? Essentially I cannot install esxi 4.0 b/c i get the failed LVM module because my card is not supported. I have a driver for the card compiled and I can get into the shell by typing “unsupported”. What do I do from there?
Marcel says
My ESXi does not have SSH running
PORT STATE SERVICE
80/tcp open http
427/tcp open svrloc
443/tcp open https
902/tcp open iss-realsecure
8000/tcp open http-alt
Try it with the windows tool to get the 3ware 9550 running
pfff hell i think i buy a new RAID controller
cougar694u says
Although this works, the vihostupdate is the “supported” method.
As far as those who don’t have network connectivity yet, I used a host that was on the network already, configured it, injected the drivers, then imaged the SD card.
Upon popping into the new hardware, it picked up the hardware.
Yassine Souabni says
Hi, I’m currently testing ESXi4 on both my laptop and desktop pcs.
The problem is that my network peripherals are not recognized.
Desktop :
D-Link DFE-530TX PCI (révisionC) fast ethernet
Laptop :
Marvel Yukon 88E8042 PCI-E Fast Ethernet Controller
My question :
Esx is a Linux based system, will it be OK if I download linux
versions of the drivers and inject them as described above?
Pete says
Also need to have the physical network cable plugged it for Hyper-V to pick up the card.
Tried this first and it didn’t look like it worked – then plugged in a network to my router and it picked up the card!