IMPORTANT: First of all please consider that following my instructions below to embed a 3rd-party driver
into ESX3i is and remain UNSUPPORTED forever. You will not get any help from the vmware stuff personnel
until the below mentioned driver will be officially integrated as an update into the main upstream distribution.
Be also aware that integrating 3rd party driver in this way could seriously damage or alter any data stored
in your datastore, if the driver has not passed VMware's strong quality regression,NFR, harness tests before.
Please consider also that using the oem.tgz file can be somedays overwritten without notice.
You are alone, be careful on that.
But I want give back something to this lovely community, giving me a lot of information and even VMware for
ESX3i a small-footprint OS that can run 24x7 from a USB-drive having a rock solid filesystem VMFS and
beeing a small subset of the industry proven ESX3. This will be the future of the next generation of computing
Embedding ESX3i into the BIOS of any server, laptop, desktop and workstation and you get "virtualization at
Making things easier to maintain and handle even portable across systems, easier to backup and distribute.
Easier for the developer for buiding specialized appliances without the need using a full blown operating
system with all the security concerns in it.
I brought two months ago a 3ware 9650SE SATA-RAID Controller after reading in the 3ware forum that the
newest 3ware driver can run under ESX3i.
Where can I find the ESX3i driver?
BTW here is my calculated MD5 checksum "cb3e6d0cc53b61833d3ba7194f9631fa 3w_9xxx.o"
But how do I enable this driver inside ESX3i?
I read a little bit around and downloaded the newest driver from 3ware, extracted the 3w_9xxx.o driver and
uploaded it with scp into my esx3i server into the /mod directory. Afterward from the unsupported shell I loaded
manually the driver into the ESX3i by executing /sbin/vmkload_mod /mod/3w_9xxx.o. I was very happy to
format the RAID5 with VMFS and see my RAID5 array up and running every time after a rescan while rebooting
Testing it a while I could not find any show stopper or strange behavior, so I considered to add this driver into
But how the hell can I automate this stuff?
First of all is essentially to know the PCI-ID of the mentioned card after loading the driver manually into the
running kernel with /sbin/vmkload_mod /mod/3w_9xxx.o and executing lspci -p from the unsupported shell.
The output of lspci was ... 13c1:1004 13c1:1004 ... wonderful.
OK I discovered that /etc/vmware/simple.map
has a list of all supported devices with vendor-id/device-id sub-vendor-id/sub-device-id. So I inserted into
/etc/vmware/simple.map 13c1:1004 0000:0000 storage 3w_9xxx and saved the file
The little thing to know now is the way ESX3i loads this driver automatically. Looking inside
/vmfs/volumes/Hypervisor1 there are all the tgz compressed stuff to load after
booting the kernel.
I tried to be not invasive and exchanged the empty oem.tgz file with my generated oem.tgz file.
The name sounds reasonable to use it for this tweak!
Here are the steps:
- Press Alt-F1 on the DCUI-console and enter -> unsupported <- and the root password if set
- cd /tmp
- make mkdir -p /mod
- make mkdir -p /etc/vmware
- make mkdir -p /usr/share/hwdata
- cd /tmp/mod
- get the driver from another ssh server with scp user@host:/tmp/3w_9xxx.o .
- cd /tmp/etc/vmware
- copy simple.map from /etc/vmware in this directory
- vi simple.map
- insert 13c1:1003 0000:0000 storage 3w_9xxx for the PCI-X Card before the line
beginning with 14e4:1600
- insert 13c1:1004 0000:0000 storage 3w_9xxx for the PCIe Card
- save and quit (:wq)
- cd /tmp/usr/share/hwdata
- copy pci.ids from /usr/share/hwdata in this directory
- vi pci.ids
- search for 13c1 3ware
- insert the following lines
- 1003 3ware 9650SE-series SATA-RAID Controller (PCI-X)
- 1004 3ware 9650SE-series SATA-RAID Controller (PCIe)
- save and quit (:wq)
- cd /tmp
- chown -R 201:201 ./mod
- chown -R 201:201 ./etc
- chown -R 201:201 ./usr
- chmod -R 755 ./mod
- chmod -R 755 ./etc
- chmod -R 755 ./usr
- chmod 644 ./etc/vmware/simple.map
- chmod 644 ./usr/share/hwdata/pci.ids
- chmod 755 ./mod/3w_9xxx.o
- tar -cvzf oem.tgz etc mod usr
Now you have tweaked the oem.tgz file with the 3ware driver in it and simple.map.
Copy this file into /vmfs/volumes/Hypervisor1 and chmod 755 oem.tgz and
chown root:root oem.tgz it. Repeat the above step also for /vmfs/volumes/Hypervisor2
Cross your fingers and reboot. If every thing is in place the 3ware driver will
be loaded automatically.
My questions now to the vmware guys are:
1) At what time can I expect this driver in the upstream esx3i bundle?
2) The 3ware controller type is unknown in VIClient -> Configuration -> Storage
Adapters. Where can I change it?
3) Is there a chance to see an ssh server for maintenance purposes in the future?
Enjoy it and tell me if this advice was useful, please consider to give me some points/credits if
this topic helped you in one way or another.
NOTE:the oem.tgz file below contains new PCI ID's for ICH8 and ICH8M SATA controller!
This document was generated from the following thread: How to tweak the 3ware 9650SE SATA RAID controller driver into ESX3i