On Fri, 2009-12-18 at 04:20 -0600, James Hogarth wrote: > For reference to the source material (and proper credit) I used these > as guides to getting this working: > > http://www.linuxdynasty.org/how-to-automate-the-install-of-vmware-tools-after-any-kernel-update.html > > http://drcs.ca/blog/?p=181 > > 2009/12/18 James Hogarth <james.hoga...@gmail.com> > After a little head scratching and hiccups I managed to get my > vmware guests kickstarting and including the vmware tools > install and config as part of the kickstart process... using > the vmxnet driver. > > Testing in our environments has shown the vmxnet driver to be > superior and we wanted to use it on our guests but of course > since it isn't part of the kernel source the guests had to be > built with e1000 emulated NICs and then changed over > afterwards.... > > Seeing that there are probably others in the same situation I > thought that popping the steps I took onto the mailing list > would be good for others - and when I have to do it in 6 > months for Centos 5.5 again (or 6) I can search this list for > the instructions ;) > > This should work in any rpm based kickstartable distrobution > but was tested on Centos 5.4 x86_64. > > First you will need a reference system with VMwareTools > already installed onto in order to get the kernel module and > check the PCI IDs your modules are. > > From the PXE or kickstart ISO you are using unpack your initrd > to a work directory.... > > mkdir /tmp/work > cd /tmp/work > cp /mnt/dvd/images/pxeboot/initrd.img . > mkdir initrd > cd initrd > > > zcat ../initrd.img | cpio -id > > On the reference PC check the PCI ID for your modules.... > > lspci | grep -i -E 'vmware.*ethernet|ethernet.*vmware' > > It will look something like: > > 00:11.0 Ethernet controller: VMware VMXNET Ethernet Controller (rev > 10) > > Next get the full vendor/product ID for the driver where the > PCI ID is 00:11.0 in the example above. > > lspci -n | grep -i '15ad' > > Look for the line matching the PCI ID found above and make a > note of the product ID... > > The example from my case is: > > lspci -n00:11.0 0200: 15ad:0720 (rev 10) | grep -i '15ad' > > Where the vendor ID can be seen as 15ad and the product ID to > make a note of is above is 0720 > > Next we need to expand the modules cpio archive to add our > vmware module to it. > > mkdir /tmp/work/modules > > > cd /tmp/work/modules > zcat ../initrd/modules/modules.cgz | cpio -id > cd /tmp/work/modules/2.6.*/x86_64 > cp /lib/modules/`uname -r`/misc/vmxnet*.ko . > chmod 744 vmxnet* > > Depending on the version of VMwareToosl you have you may have > separate vmxnet.o and vmxnet.ko modules in /lib/modules/`uname > -r`/misc - and you may also jave vmxnet and vmxnet3 > modules.... For the 2.6 kernel you will need the vmxnet*.ko > modules. If your module is symlinked to the .o version (as in > my case) make sure you grab the actual file ;) > > Next pack back up the modules cpio archive.... > > cd /tmp/work/modules > find . | cpio -o -H crc | gzip -9 > > /tmp/work/initrd/modules/modules.cgz > > Note that the type is crc here.... > > Next we need to tell our kernel/initrd about our new > modules.... > > cd /tmp/work/initrd/modules > vi pci.ids > > Look for the section with the vmware vendor ID of 15ad and add > your ethernet modules to this... for reference here is my part > of that file after the addition: > > 15ad VMware > 0405 SVGA II Adapter > 0710 SVGA Adapter > 0720 VMware VMXNET Ethernet Controller (rev 10) > > Note that you might need the vmxnet3 driver added too > depending on your version of VMwareTools.... > > Next append to the initrd modules-info alias info.... > > vmxnet > eth > "VMware VMXNET Ethernet Controller (rev 10)" > > > > Remember to add a vmxnet3 section if required... On the > reference system get the entries required for the > modules.alias file.... > > grep vmxnet /lib/modules/2.6.18-164.6.1.el5/modules.alias > alias pci:v000015ADd00000720sv*sd*bc*sc*i* vmxnet > > > alias pci:v00001022d00002000sv*sd*bc*sc*i* vmxnet > > Append these to the modules.alias file > in /tmp/work/initrd/modules > > Next pack all this back up.... > > cd /tmp/work/initrd > find . | cpio -o -H newc | gzip -9 > /tmp/work/initrd.img.vmxnet > > > > Copy this initrd.img file to your PXE tree or ISO or however > you want to use this (renaming it if need be)... > > That's the hard work done and that will allow a kickstart of > the system using the vmxnet network driver instead of the > e1000 driver. But that is only good for the kickstart itself > this next final bit is to allow the system to still have a > network interface after the kickstart is over.... > > On the spacewalk server create a post script for your > kickstart containing something like the following: > > /usr/bin/yum install -y --nogpgcheck VMwareTools > sed -i -e '/^\#.*$/d' -e '/^HWADDR=.*$/d' > /etc/sysconfig/network-scripts/ifcfg-eth0 > > > echo "rkernel=`uname -r` > if [ -e /etc/vmware-tools/not_configured ]; then > echo "vmware-tools not configured for running kernel $rkernel" > echo "running vmware-config-tools.pl" > > > /usr/bin/vmware-config-tools.pl -d > echo "vmware-tools now compiled for running kernel $rkernel" > echo "restarting system" > > reboot > fi" >> /etc/rc.local > > This assumes that the VMwareToosl rpm is somewhere in your > channels. It removes any comments from the ifcfg-eth0 file and > removes the HWADDR restriction so that the system doesn't > rename it to ifcfg-eth0.bak or somesuch on changes to network > interface - this was valid for Centos 5.4 YMMV.... The > rc.local addition is important as vmware-tools-config.pl > detects module to install based on the running kernel - this > is of course different in the kickstart. This will also allow > a kernel upgrade and if need be the system will auto-configure > on next boot. The reboot is there to ensure that any network > services etc or any dependencies on network/vmware running > during start up are met. > > Hope this is helpful to someone apart from me next distro > update ;) > > James >
Automating the install/update of vmware-tools after a kernel install sounds like something that's begging for a "trigger" RPM. I need to migrate my ESX VMs to use vmxnet, so I'll go through this process and post my results. Thanks for the info. -- Andy Speagle "THE Student" - UCATS Wichita State University
signature.asc
Description: This is a digitally signed message part
_______________________________________________ Spacewalk-list mailing list Spacewalk-list@redhat.com https://www.redhat.com/mailman/listinfo/spacewalk-list