View unanswered posts | View active topics It is currently Sun Nov 23, 2014 6:09 am



Reply to topic  [ 1 post ] 
 ESX 4.0 Update 1 - MSI P35 Platinum (ICH9R / Rltk 8168) 
Author Message

Joined: Sat Mar 13, 2010 8:08 am
Posts: 2
Post ESX 4.0 Update 1 - MSI P35 Platinum (ICH9R / Rltk 8168)
I hereby want to confirm the motherboard MSI P35 Platinum to be working with ESX 4.0.

It has been a bit of a strugle though ;)

For the impacient, I've attached a some files which you can use to patch initrd.img pre_install, patch initrd.img post install and patch esxconsole after succesful first boot.

--------------------------------------
Specs:
Motherboard: MSI P35 Platinum
http://eu.msi.com/index.php?func=prodmbspec&maincat_no=1&cat2_no=&cat3_no=&prod_no=1212
Processor: Intel Core Quad Q6600
Memory: 4GB Kingston HyperX
Storage: Onboard SATA controller. AHCI mode.
Network: Onboard RealTek 8168 Gigabit.
--------------------------------------

UPDATE:
I noticed networking problems with driver (r8168.o). Even with newer version. The same problem has been described on the forum (connection lost).
Therefore I am now using the driver in this post:
http://www.vm-help.com/forum/viewtopic.php?f=12&t=1670&start=30&hilit=r8169

*Note: this driver is not used in the attachments yet!

--------------------------------------
The whole story
--------------------------------------
*- Note: following paths are contained within initrd.img!
*- Note: I know that this can be a whole lot quicker if you know how to make a driver package.

Problem 1:
ESX 4.0 does not want to install on this motherboard. During execution of /etc/vmware/init/init.d/32.networking-drivers it will fail, saying there are no compatible NIC's found.

Solution 1:
I've found this post (THANK YOU!! geppi); viewtopic.php?f=12&t=1272&start=0
It contains the r8168.o driver.

Problem 1.1:
In the previously mentioned package there is also a file /etc/vmware/simple.map. Which is great, but during installation it will get overwritten when loading system drivers.
You will notice a line "Rebuilding Map File" (executed by. /usr/lib/vmware/weasel/applychoices.py --> /usr/lib/vmware/weasel/customdrivers.py)

Solution 1.1:
- I've checked out the driver xml files in /usr/share/hwdata/pciids/ and decided to role my own. This file is attached to this post.
- Now we need to add this file to initrd.img. The following was done on a CentOS 5 machine (vmware workstation):

--> Copy initrd.img to /tmp
--> Extract attachment pre_install.tgz: to /tmp/hack

Code:
 
  #extract initrd.img
  cd /tmp
  mkdir initrd
  cd initrd
  gzip -dc ../initrd.img | cpio -id


Code:
  #copy the hack
  cp /tmp/hack /tmp/initrd -r


Code:
 
  #create a new initrd.img
  find ./ | cpio -H newc -o > /tmp/new_initrd.cpio
  cd /tmp
  gzip new_initrd.cpio
  mv new_initrd.cpio.gz new_initrd.img


- So now we have a new initrd.img which contains the driver and the necessary information for ESX to generate /etc/vmware/simple.map. Put on your .ISO or whatever boot mechanism you use.
obviously renaming it to initrd.img, otherwise isolinux will call the wrong one ;)

Problem 2:
After I thought I cracked it (around 02:15 last night), it turned out that the IDE DVDRW couldn't be detected during installation.

Solution 2:
- Get an empty USB drive (at least 900MB!).
- Create a bootable installation
fdisk /dev/sda
(delete all current partitions)
(create new partition)
n
1
<enter>
<enter>
t
(W95 FAT16 (LBA) - id=e)
(Dont forget to make it bootble, like me)
a
1
(Write changes)
w
q

- Format it.
Code:
 
  mkfs.vfat /dev/sda1

- Add a syslinux boot record
Code:
  syslinux /dev/sda1


- Now copy the Vmware ESX4.0 media to the USB disk.
Code:
 
  mkdir /mnt/usb
  mount /dev/sda1 /mnt/usb
  cp /dev/cdrom/* /mnt/usb/ -r


- Create the following /mnt/usb/syslinux.conf

Quote:
default menu.c32

prompt 0
menu title ESX build 208167
timeout 300

LABEL esx
menu default
menu label Install ESX in graphical mode
kernel isolinux/vmlinuz
append initrd=isolinux/initrd.img vmkopts=debugLogToSerial:1 mem=512M askmedia

LABEL esx-text
menu label Install ESX in text mode
kernel isolinux/vmlinuz
append initrd=isolinux/initrd.img vmkopts=debugLogToSerial:1 mem=512M text askmedia

LABEL usb-ks
menu label ESX Scripted Install using USB ks.cfg
kernel isolinux/vmlinuz
append initrd=isolinux/initrd.img vmkopts=debugLogToSerial:1 mem=512M ks=usb quiet

LABEL first-disk-safe
menu label ESX Scripted Install to first disk
kernel isolinux/vmlinuz
append initrd=isolinux/initrd.img vmkopts=debugLogToSerial:1 mem=512M ks=file:///usr/lib/vmware/weasel/examples/ks-first-safe.cfg quiet

LABEL first-disk
menu label ESX Scripted Install to first disk (overwrite VMFS)
kernel isolinux/vmlinuz
append initrd=isolinux/initrd.img vmkopts=debugLogToSerial:1 mem=512M ks=file:///usr/lib/vmware/weasel/examples/ks-first.cfg quiet

LABEL skip-install
menu label ^Boot from first hard disk
localboot 0x80


- Copy that menu.c32 file.
Code:
 
  cp /usr/lib/syslinux/menu.c32 /mnt/usb


- Don't forget to copy the new_initrd.img!
Code:
  cp /tmp/new_initrd.img /mnt/usb/isolinux/initrd.img



Problem 3:
Ahhh finally, once I figured out the parameter askmedia could be used as kernel parameter (which took me a couple of fails), I could succesfully install ESX 4.0.
But then ... booting into ESX, turned out to get the same error as during installation (problem 1). I couldn't mount my usb on the recovery console either ?!

Solution 3:
This solution is very similar to solution 1. Except that we need to use the simple.map, because this file won't be generated during boot.

So again, i modified the initrd.img, but this time the ESX installed version.

Code:
 
  mkdir /mnt/esx_bootdisk


Note: The drive could be different for you
Code:
  mount /dev/sda1 /mnt/esx_bootdisk
 
  #Copy initrd.img to /tmp
  cp /mnt/esx_bootdisk/initrd.img /tmp


--> Extract attachment post_install_pre_boot.tgz: to /tmp/hack

Code:
  #extract initrd.img
  cd /tmp
  mkdir initrd
  cd initrd
  gzip -dc ../initrd.img | cpio -id


Code:
  #copy the hack
  cp /tmp/hack /tmp/initrd -r


--> Add the information in /etc/vmware/simple.map.ADD to /etc/vmware/simple.map

Code:
  #create a new initrd.img
  find ./ | cpio -H newc -o > /tmp/new_initrd.cpio
  cd /tmp
  gzip new_initrd.cpio
  mv new_initrd.cpio.gz new_initrd.img


Code:
  #copy it over the old one.
  cp /mnt/esx_bootdisk/initrd.img  /mnt/esx_bootdisk/initrd.img.default
  cp /tmp/new_initrd.img /mnt/esx_bootdisk/initrd.img


Problem 4:
So I figured I'd cracked it. I posted this message and that was that. Then I booted the server this morning. Damn, same error as Problem 3. I can't keep patching initrd.img every boot!

Solution 4:
- So I did a bit of digging. Everytime Vmware reboots it will execute 'esxcfg-boot -b'. This will rebuild initrd.img. Log files for the process can be found (esxconsole!) in /var/log/vmware/esxcfg-boot.log
I read the log file and understood what was going on. It wants a manifest + an xml (to build simple.map) and the driver (r8168.o).

- In order for this to work, solution 3 must result in a succesful boot.
- Log in to the console.

--> Extract attachment post_boot.tgz: to /tmp/hack

Code:
  cp /tmp/hack / -r
  esxcfg-boot -b


- Make sure to check /var/log/vmware/esxcfg-boot.log. The driver file must have been copied!

--------------------------------------
The end
--------------------------------------

Hope this helps other people here!


Attachments:
post_boot.tgz [31.75 KiB]
Downloaded 187 times
post_install_pre_boot.tgz [31.33 KiB]
Downloaded 184 times
pre_install.tgz [31.63 KiB]
Downloaded 184 times
Sat Mar 13, 2010 9:06 am
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 1 post ] 

Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by STSoftware for PTF.