[CentOS] Help: Marvell sk98lin driver missing from Centos 3 PXE initrd.img

Thu Aug 17 01:34:45 UTC 2006
Mike Valenzuela <mickle.mouse at gmail.com>

I'm new to the lists so sorry about any faux pas I may have made.  Also I
apologize for the length, but I wanted to be sure I covered most of the
details.

I'm trying to do a PXE install on an Intel 1435VP2 server machine.  The PXE
install has worked on all the older machines in the cluster, so I know PXE
is working.  However, these new Intel server machines only support PXE
booting from their Marvell NIC (I already tried getting the latest BIOS to
avoid this hassle).  Since the cluster is running open mosix, Centos 3.7 is
which the latest which can be used.  The kernel and initrd image in the
isolinux directory (on cd or in the repos) has no driver for the Marvell
NIC.  lspci -n and lspci shows the following information for the Marvell NIC
:

02:00.0 Class 0200: 11ab:4361 (rev 17)
02:00.0 Ethernet Controller: Marvell Technology Group Ltd. 88E8050 Gigabit
Ethernet Controller (rev 17)

I have tried the following:

cp /tftpboot/linux-install/initrd.img /tmp/initrd.img.gz
cp /tftpboot/linux-install/initrd.img
/tftpboot/linux-install/initrd.img.orig
cd /tmp
gzip -d initrd.img.gz
mkdir /tmp/initrd.fs
mount -o loop initrd.img initrd.fs
gzip -d < /mnt/initrd.fs/modules/modules.cgz | cpio -i --make-directories

This makes the folders /tmp/2.4.21-40.ELBOOT/i386/ filled with the drivers
in the initrd.img file.  Then I grabbed a copy of the vanilla 2.4.21-40,
went to Intel's website to grab the driver files I needed (turns out that
they were included in the vanilla source, hence a patch file of size 0 was
generated), and continued to build the sk98lin driver for i386 (I tried both
default settings processor type and i386).  The first iteration through all
I did was make menuconfig and turn on Marvell as a module, the second time I
specified processor type as i386.  I grabbed the sk98lin.o file and threw it
in /tmp/2.4.21-40.ELBOOT/i386/, where all the other drivers were located.
To compress this back into a .cgz file I did the following

cd /tmp/
find 2.4.21-40.ELBOOT -print | cpio -o -H crc | gzip -9 > modules.cgz

Then I made a copied over the modules.cgz in /tmp/initrd.fs/modules.  I
edited /tmp/initrd.fs/modules/pcitable adding the line:
0x11ab  0x4361  "sk98lin"       "Gigabit Ethernet Controller"
(With tabs not spaces)

I also added the following line to /tmp/initrd.fs/modules/modules.pcimap
sk98lin              0x000011ab 0x00004361 0xffffffff 0xffffffff 0x00000000
0x00000000 0x00000000

After unmounting initrd.fs, I re-gziped initrd.img, and copied over
/tftpboot/linux-install/initrd.img

However, my problem still remains.  When I pxe boot, the machine is detected
and everything.  Just before getting the kickstart file, it complains
"Unable to find any devices of the type needed for this installation type".
Obviously I did something wrong, but I don't know why it is still broken or
how to fix it.  I suspect that somehow I built the the sk98lin module
incorrectly.  Has anyone already made a fix for this initrd file?  I'd
appreciate an easy download.  Thanks in advanced for any pointers and/or
help.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.centos.org/pipermail/centos/attachments/20060816/c558ed0d/attachment-0004.html>