Mike Valenzuela
2006-Aug-17 01:34 UTC
[CentOS] Help: Marvell sk98lin driver missing from Centos 3 PXE initrd.img
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-0002.html>
Ian Kaufman
2006-Aug-17 23:23 UTC
[CentOS] Help: Marvell sk98lin driver missing from Centos 3 PXE initrd.img
Hi Mike, It may not be what you did, but rather the sk98lin drivers being horribly broken, especially with the newer Yukon 88E805X gigabit NICs. I just struggled with a backported version of the sky2 driver in the 2.6.9-34.0.2 kernel and the 88E8055 Yukon NIC (as found on the latest Fujitsu T4210 tablet convertible). Unfortunately, the backported drivers I was sent only go back as far as 2.6.7 for compatibility. John Linville at Red Hat has some 2.4.21-44 test kernels that have slightly newer sky2 drivers: http://people.redhat.com/linville/kernels/rhel3/ I used his RHEL4 test kernels and it worked well, but alas other issues kept me from using it, and I had to backport the driver myself. Ian