[syslinux] How do I build an initrd.img for use with pxelinux

Richard Skelton Richard.Skelton at infineon.com
Tue Jun 8 06:54:43 PDT 2004

I have built a Red Hat 7.2 system kernel 2.4.7-10 using pxelinux from 
I have then installed the latest Broadcom BCM5700 Linux Driver Version
7.1.22 as per the README.TXT:-
rpm -ivh bcm5700-7.1.22-1.src.rpm
cd /usr/src/redhat
rpm -bb SPECS/bcm5700.spec
rpm -ivh --force RPMS/i386/bcm5700-7.1.22-1.i386.rpm

The system reboots fine and is using the new driver
I now want to update my initrd.img which I use to PXE build my machines as
the existing image with the older bcm5700.o fails to load with the newer
chip set on my new IBM Opteron box:-(

I made a copy of the bcm5700.o  version 7.1.22 and used this file as a 
replacement  in the procedure below.

zcat  /tftp/initrd.img > /tmp/initrd.e2fs
mkdir /mnt/initrd
mount  -o loop /tmp/initrd.e2fs /mnt/initrd
mkdir /tmp/modules
cd /tmp/modules
zcat /mnt/initrd/modules/modules.cgz|cpio -i --make-directories
cp /tmp/bcm5700.o 2.4.7-10BOOT
cp /tmp/pcitable /mnt/initrd/modules/pcitable
find -name "*.o" -type f | cpio -oH crc | gzip -9 >
ls -l /mnt/initrd/modules
umount /mnt/initrd
cat /tmp/initrd.e2fs | gzip  -9 > /tftp/initrd-new.img

When I use this image to kickstart the machine I built the driver on it
fails to load the bcm5700.o so my kickstart fails to find my ks.cfg.

Do I have to compile the bcm5700.o in a special environment?

My pxelinux config file :-

default ibm
serial 0,9600
label ibm
  kernel vmlinuz
  append load_ramdisk=1 console=ttyS0,9600 initrd=initrd-new.img network 
ksdevice=eth0 lang= devfs=nomount ramdisk_size=9216 ide4=0 ide5=0 ide6=0 
ide7=0 ide8=0 ide9=0




Richard Skelton
Richard.Skelton at infineon.com
Infineon Technologies UK Ltd
Infineon House
Great Western Court
Hunts Ground Road
Stoke Gifford
BS32 8HP
Tel +44(0)117 9528808

More information about the Syslinux mailing list