VMware Cloud Community
Scottish_Captai
Enthusiast
Enthusiast

ICH8 full support (AHCI non-RAID and non-AHCI non-RAID) under ESXi

Greetings to all.

I've recently managed to "fix" the ata_piix driver included with ESXi so that it recognizes the Intel 965 (and others?)/82801x ICH8 chipset. The included ata_piix.o module will recognize the 8086:2820 and 8086:2825 device ID's of the ICH8 in non-AHCI mode (aka "native" mode) and allow you to use attached SATA drives as vmhba devices. The included simple.map and pci.ids files are setup to recognize the ICH8 in either non-AHCI mode (using ata_piix.o) or AHCI mode (using the stock ahci.o module). This is NOT a patch to simple.map and pci.ids (though those had to be modified anyways), the included ata_piix.o is different from the ata_piix.o included by VMware (so don't bother adding the ICH8 devices to simple.map/pci.ids yourself and wondering why it's not working- the stock ata_piix.o does not support ICH8 properly).

I've wrapped everything up in a custom oem.tgz file that should handle most ICH8 cases regardless. If you are running a ICH7, or ICH9 chipset- DO NOT USE THIS FILE. If you fall under either of /those/ categories, you'll have to manually modify simple.map and pci.ids yourself to get things rolling. Once again, the attached oem.tgz file is for ICH8 chipsets ONLY.

My test rig for this little project is a SFF IBM box running a Core 2 Duo 1.86ghz processor, 4GB of RAM, Q965/GMA3000 graphics, ICH8 (non-AHCI) SATA controller, one 80GB Seagate drive, two Pro/1000 Intel NIC's and an onboard Broadcom BCM5755 NIC. Thusfar, everything in the machine is now supported (including of course the SATA). I've had this particular box sitting here for about 4 hours now installing various VM's and compiling software/benchmarking the OS's under each VM with no ill results. For all intensive purposes, this is a hack and is completely unsupported by anyone including myself- but it works, so hey... I know there's a few other people out there with ICH8 boxes, so this should help you get things rolling if you can't enable AHCI mode.

If you can't figure this stuff out for yourself (what oem.tgz, simple.map, or pci.ids is/are), then I will try to help, but you should be able to figure this stuff out via Google. Yes, it is possible to use this file to actually install ESXi to disk drive (which is what I did) and run off a ICH8 directly (rather then USB boot), but again, this is beyond my willingness to explain here and is documented sufficiently on Google.

Cheers.

-SC

Reply
0 Kudos
27 Replies
Dave_Mishchenko
Immortal
Immortal

I've deleted your other thread. Do you mind if I put a copy of this on my website and what's the specific model of IBM PC?

Reply
0 Kudos
Scottish_Captai
Enthusiast
Enthusiast

Not a problem.

The specific model is a Lenovo/IBM M55 Thinkcentre, type 8810. Most other models in the M55 family support AHCI except for the 8810 (I've been locked in a discussion with Lenovo for weeks now on why they removed AHCI from the 8810), so obviously it's better to use AHCI then non-AHCI + ICH8 patched ata_piix.o.

I just had a friend try this out on his Gigabyte based Q965 board, and he says it's good to go in non-AHCI mode as well, so I would assume this patch should work for a lot of hardware out there.

Cheerio.

-SC

Reply
0 Kudos
franc1
Contributor
Contributor

Hi,

I am so impressive about that because I think that's all I need but I have to ask you two questions to be more clear .....

First I want to know if after the installation it will be possible for me to create the datastore inside the same SATA disk or will have to create a NFS disk or install a Raid controller?

Secondly could you point me to the links you find out to add the new oem.tgz in your ESXi installation?

Many thanks

Reply
0 Kudos
Dave_Mishchenko
Immortal
Immortal

With this file, ESXi will be able to recognize your ICH8 controller and you will be able to create a datastore on drives attached to it. To add the custom oem.tgz it would be best to boot from a USB flash drive (see www.vm-help.com) . After you get the host to boot ESXi you can

1) Copy the oem.tgz file to the host with SSH (see the link above on how to enable that)

2) Then follow steps 20 and following here - http://www.vm-help.com/esx/esx3i/customize_oem_tgz.php.

Reply
0 Kudos
Quad9
Contributor
Contributor

Thank you Scottish.

Following the steps (.) It works for my MB Intel DG35EC booting from USB drive and I can add SATA HDD as storage.

However, I am trying to install ESXi on SATA HDD and boot from it, instead booting from USB. Is a reverse way to put the new "oem.tgz" back to the installation ISO image? So that I can install ESXi from it to local drive.

if anyone know, please reply here.

I appreciate your effort to fix this issue.

Cheers,

DX

Reply
0 Kudos
Dave_Mishchenko
Immortal
Immortal

If you want to modify the CD, you have to replace oem.tgz on the root of the CD and also within the DD image in install.tgz. As an alternative to rebuilding the CD, you could do this from a PXE server. But basically you could

1) replace oem.tgz on the CD in the root folder and then boot from the CD. The oem.tgz in the root folder is used to boot ESXi for the install process.

2) after you install ESXi, you could boot the host with a Linux live CD and replace oem.tgz in the Hypervisor1 partition and then you should be able to boot ESXi from the SATA HD.

Or as an alternative to step 2, if you're able to get step 1 to work then after the install of ESXi (when you're prompted to rebooted) you should be able to access the console. From there you may be able to get the file (i.e. copy it with SCP in the console) and then replace oem.tgz on Hyperviser1. The Linux boot CD might be an easier option.

Reply
0 Kudos
Scottish_Captai
Enthusiast
Enthusiast

First I want to know if after the installation it will be possible for me to create the datastore inside the same SATA disk or will have to create a NFS disk or install a Raid controller?

Yes, I got ESXi installed to the disk drive with no problems (using the OEM.tgz file above), and created a VMFS datastore on the same SATA drive with no problems. Ran the box for a few days straight like this, worked fine- read/write performance was pretty decent too inside the VM's.

Secondly could you point me to the links you find out to add the new oem.tgz in your ESXi installation?

http://www.grid.org/blog/cameron/development-using-vmware-server-esxi

http://www.grid.org/blog/cameron/updating-vmware-esxi-disk-dump-file

I should note that this procedure not only requires a USB stick, but is hardly for the faint of heart. If you don't have access to a Linux system, well, I don't know what you'd do- as the above instructions require Linux to complete (basically, you're turning a USB stick into an installation USB stick and then modifying the installation image to contain the OEM.tgz file).

However, I am trying to install ESXi on SATA HDD and boot from it, instead booting from USB. Is a reverse way to put the new "oem.tgz" back to the installation ISO image? So that I can install ESXi from it to local drive.

As I said above- those two links will tell you how to:

A) Make a USB stick that can be used to "install" ESXi to a disk drive

B) Update the installation image to include the OEM.tgz file by default.

I used this exact procedure to create a bootable USB installation stick, which I used to install ESXi to my 80GB SATA drive. After that was done, create the VMFS datastore and away you go!...

-SC

Reply
0 Kudos
Quad9
Contributor
Contributor

You guys are amazing!

Following your guidance, I got it working.

Thank you very much!!

DX

Reply
0 Kudos
setauR
Contributor
Contributor

Hi All,

Reply
0 Kudos
setauR
Contributor
Contributor

Hi everyone,

I have a case where I've updated the bootable esxi usb with the oem.tgx for ICH8 but the storage is still not detected. The device is intel 2820 and in bios for the storage I can set only SATA mode "IDE emulation" or "RAID". When set to IDE and booted to esxi the "lspci -v" shows my controller as

"IDE interface mass storage controller: Intel Corp. 4 port SATA IDE Cntroller (ICH8) "

But the "fdisk -l" does not show this drive as well as "esxcfg-vmhbadevs.

What migh be the case here?

Reply
0 Kudos
Dave_Mishchenko
Immortal
Immortal

What device ID is it coming up with the controller in IDE mode and what about if you switch it to RAID mode and try the install again.

Reply
0 Kudos
setauR
Contributor
Contributor

The dev ID when set to "SATA Emulation - IDE" is "PCI\VEN_8086&DEV_2820&SUBSYS_2802103C&REV_02\3&B1BFB68&0&FA"

When in "SATA Emulation - RAID" the dev ID is "PCI\VEN_8086&DEV_2822&SUBSYS_2802103C&REV_02\3&B1BFB68&0&FA"(in Windows it shows up as "Intel(R) ICH8R/DO/DH SATA RAID Controller")

But in raid mode the controller is not listed by "fdisk -v", so I gues it is not recognized by the installer.

I have tried to modify the installer with BIOS in IDE mode to support installation on IDE drives ("http://www.vm-help.com/esx/esx3i/ESXi_install_to_IDE_drive/ESXi_install_to_IDE_drive.php") but that didn't help either. The PC itself (HP dc7700) is mentioned in the forums and so far nobody has installed esxi with the native controller (only with additional raid card). We have 5 of those PCs at work and no supported raid card to buy in my country (at least one that will not cost more than the PC itself).

Reply
0 Kudos
Dave_Mishchenko
Immortal
Immortal

In either mode, ESXi by default will not recognize the controller. Here's the extract from simple.map for that range.

8086 27df 0000 0000 storage ide 82801G (ICH7 Family) IDE Controller

8086 2828 0000 0000 storage ata_piix Mobile SATA Controller IDE (ICH8M)

8086 2920 0000 0000 storage ata_piix 4 port SATA IDE Controller (ICH9)

But the modified oem.tgz file does recognize the 2820 device, so you would want to copy that to your USB drive (you'll need to copy it as oem.tgz).

Reply
0 Kudos
setauR
Contributor
Contributor

I did update the installer with Your oem.tgz file. After doing that the controller shows up if I execute "lspci -v". This only happens in IDE bios mode (2820). And it even asigns a drive for it "vmhba0". But still no storage shows up in vmware console.

I have created two usb bootable disks - one that does an installation (I have updated the oem.tgz and the TargetFilter.py to support installing on IDE drives) but this didn't help as the installer still complains that there is no storage to install to. Anotrher usb with bootable esxi where I have also changed the oem.tgz - it boots but has no persistant storage.

Reply
0 Kudos
darx
Contributor
Contributor

I have got the same issue. There are no Controllers identified in messages as being owned by the module, even though it is loaded successfully.

I am having the raid show up as 2822 as well. IDE is 2820

Reply
0 Kudos
socoj2
Contributor
Contributor

I have an M55 model 8810 and couldnt get this to work its still not detecting the drives.

Ahh NM had to enable AHCI in the bios. and that did it.

Reply
0 Kudos
R4V3R
Contributor
Contributor

Hi, i have a similar PC, a lenovo M57 SFF, its a perfect machine, intel q35 chipset, and support for 8gb of memory.

unfortunately, i cant even get to install esxi on it, since i get a pink screen right after the modules are loaded, when it is configuring the processor, or something like this...

this machine has support for SATA AHCI and AHCI legacy, and i dont think the problem is the controller.

any ideas?

Reply
0 Kudos
walls
Enthusiast
Enthusiast

I've noticed that alot of people have had issues installing ESXi to an HP DC7700.

To build upon Scottish Captain's work - for the above mentioned setup, it is entirely possible to install ESXi using the onboard SATA controller.

1) In BIOS, set the controller type to RAID (doesn't matter if you only have a single drive)

2) Use Scottish Captain's oem.tgz

3) When you receive the "cannot find disk" error, switch to the console and log in as root. issue the command "vmkloader_mod ahci", then continue the install as per normal.

ESXi will now find the SATA controller and also use it in SCSI emulation mode, allowing you to use the rest of your disk as vmfs3.

I've attached a differnt version of oem.tgz, as I initially created this for the purpose and tested successfully with it, although I have since tested Scottish Captain's and it works just as well.

This is tested only on a DC7700 SFF with ESXi u4.

Reply
0 Kudos
jsmurray
Enthusiast
Enthusiast

A warning to those using the HP DC7600. Update 3 worked fine on this ICH7 controller, but Update 4 does not. You cannot change enable AHCI in the Bios, and hence I have been unable to get my SATA adapter to be recognised.

Reply
0 Kudos