Jeff,
I cant thank you enough. I not only did this for the kernel but I did this for the pxeboot's jumpstart installation of 4.5.
Thanks again for taking the time to respond.
---- On Sat, 7 Jun 2008, Jeff Collins (jeff@chpscchome.org) wrote:
I had a somewhat similar problem with a Dell 2600 running Centos 4.4. I found that 4.6 no longer had the megaraid driver for my card, so I:Here is a detailed description of what I did, and perhaps this may be of help if you adapt it to your situation.============================================================================================== This is a brief description of how to set up the 4.6 kernel so that it will boot on list.The reason that the stock CentOS 4.6 kernel will not boot on list is that LSI and Dell madethe decision to remove support for the PERC/LSI controller adapter shipped with the PowerEdge2600 from the 4.6 kernel. The new megaraid subsystem supports the PERC/LSIcontrollers shipped with the newer PowerEdge 2900 models. The stock 4.5 and 4.6 kernelswill not boot on an older 2600.The 4.4 kernel is called 2.6.9-42.EL or 2.6.9-42.ELsmp in the symmetric multiprocessor version.The 4.6 kernel that first shipped is called 2.6.9-67. The current topof tree is 2.6.9-67.0.15 as of May 13 2008). When we compare the megaraid_sas.cdrivers (for example), we see that a lot of generic support has been taken out of the newerversion, compared with the driver from 4.4 (2.6.9-42.EL).For a full scan of the differences between all source files in the megaraid directory, seenewdifftxt in this directory.So what we have to do is take out a top of tree 4.6 kernel, wipe out all the code in themegaraid directory, put back all the old megaraid code, then build a kernel. To get theold source kernel, use www.rpmfind.org to search for the proper kernel:kernel-2.6.9-42.EL.src.rpm. The current top of tree source magically appears in/usr/src/redhat/BUILD/kernel-2.6.9/linux-2.6.9 when we performyum install kernel* and follow the instructions to build a custom kernel.This is not trivial, but all the instructions are athttp://wiki.centos.org/HowTos/Custom_KernelThe basic steps I took were slightly different:-----------------------------------------------1) Download the stock 4.4 kernel source using rpmfind2) Build the stock 4.4 kernel, install, and test boot it to validate the process.3) Save off the megaraid directory code which is probably in/usr/src/redhat/BUILD/kernel-2.6.9/linux-2.6.9/drivers/scsi/megaraid4. Change the name of the prior kernel to something like/usr/src/redhat/BUILD.old, etcSo you get [root@list scsi]# ls /usr/src/redhat/BUILD BUILD.old RPMS SOURCES SOURCES.old SPECS SPECS.old SRPMS5. Download the top of tree kernel sources for the version we are on (Centos 4)6. Blast the contents of/usr/src/redhat/BUILD/kernel-2.6.9/linux-2.6.9/drivers/scsi/megaraidand replace with the old megaraid code you saved.7. Build and test the kernel (The instructions tell us to use rpmbuild to create a full rpmpackage, but I took the shortcut of just making a stock kernel from the top of theBUILD/kernel-2.6.9/linux-2.6.9 directory. The steps area. make oldconfigb. make menuconfig (you can take out extra modules if you wish, but make sureyou know what you are doing. It is easy to create a kernel that does not boot)c. make -j 4 bzImaged. cp ./arch/i386/boot/bzImage /boot/vmlinuz-2.6.9-your-versione. cp System.map /boot/System.map-2.6.9-your-versionf. make -j 4 modulesg. make modules_installh. mkinitrd /boot/mkinitrd-2.6.9-your-version.img 2.6.9-your-versioni. edit /etc/grub.conf to add your kerneli. sync; rebootj. Choose your kernel (do not make it the default until it has been tested!)k. Test your kernelSo on list we end up with four Linux kernels:The first is the old smp kernel first shipped as CentOS 4.4.The second is a test kernel for use in creating a custom install CD set.The third is the patched 4.6 kernel we are running.The fourth is the uniprocessor stock kernel shipped as CentOS 4.4.Since grub counting is 0 based, we have set the default to 2 so we boot thethird kernel by default (2.6.9-jgc).Here is the grub.conf file in /etc===========================================================================# grub.conf generated by anaconda## Note that you do not have to rerun grub after making changes to this file# NOTICE: You have a /boot partition. This means that# all kernel and initrd paths are relative to /boot/, eg.# root (hd0,1)# kernel /vmlinuz-version ro root=/dev/sda6# initrd /initrd-version.img#boot=/dev/sda2default=2timeout=5splashimage=(hd0,1)/grub/splash.xpm.gzhiddenmenutitle CentOS-4 i386 (2.6.9-42.ELsmp) root (hd0,1) kernel /vmlinuz-2.6.9-42.ELsmp ro root=LABEL=/ rhgb quiet initrd /initrd-2.6.9-42.ELsmp.imgtitle CentOS-4 i386 (2.6.9-prep) root (hd0,1) kernel /vmlinuz-2.6.9-prep ro root=LABEL=/ rhgb quiet initrd /initrd-2.6.9-prepimgtitle CentOS-4 i386 (2.6.9-jgc) root (hd0,1) kernel /vmlinuz-2.6.9-jgc ro root=LABEL=/ rhgb quiet initrd /initrd-2.6.9-jgc.imgtitle CentOS-4 i386-up (2.6.9-42.EL) root (hd0,1) kernel /vmlinuz-2.6.9-42.EL ro root=LABEL=/ rhgb quiet initrd /initrd-2.6.9-42.EL.imgtitle dos rootnoverify (hd0,0) chainloader +1 ============================================================================Perhaps this will be of some help to you, Jeff CollinsCommunity Health Partnership of Santa Clara County