SYSLINUX=$IMGPATH/usr/bin/syslinux if [ ! -f $SYSLINUX ]; then echo "$SYSLINUX doesn't exist" exit 1 fi # prepare a directory with the kernel, initrd, and various message files # used to populate a boot image prepareBootTree() { (cd $BOOTDISKDIR; find . ! -name "*.msg" -maxdepth 1 ! -type d | cpio --quiet -p $MBD_BOOTTREE) cp $MBD_FSIMAGE $MBD_BOOTTREE/initrd.img cp $KERNELROOT/boot/vmlinuz-* $MBD_BOOTTREE/vmlinuz pngtopnm $BOOTDISKDIR/syslinux-splash.png | ppmtolss16 \#000000=0 \#c4c7ce=7 \#c60000=2 \#ffffff=15 \#7790c2=9 > $BOOTDISKDIR/splash.lss cp $BOOTDISKDIR/splash.lss $MBD_BOOTTREE/splash.lss rm -f $MBD_BOOTTREE/syslinux-splash.png for file in $BOOTDISKDIR/*.msg; do filename=`basename $file` sed -e "s/@VERSION@/$VERSION/g" $file > $MBD_BOOTTREE/$filename done if [ $? != 0 ]; then echo $0: Failed to copy messages from $BOOTDISKDIR to $MBD_BOOTTREE. umount $MBD_BOOTTREE rm -rf $MBD_BOOTTREE $MBD_TMPIMAGE exit 1 fi } # LATEUSBMODS go in the second stage. # FIXME: bleah, have to include sd_mod for usb-storage USBMODS="usb-ohci usb-uhci hid keybdev usb-storage sd_mod" # usb-storage goes on both so we can reload it. *sigh* LATEUSBMODS="mousedev usb-storage" IDEMODS="" SCSIMODS="sd_mod sr_mod" FSMODS="msdos vfat ext3 reiserfs" SECSTAGE="agpgart raid0 raid1 raid5 lvm-mod $FSMODS $IDEMODS $SCSIMODS $LATEUSBMODS st parport_pc parport" COMMONMODULES="vfat loop $USBMODS" LOCALMODULES="$COMMONMODULES aic7xxx megaraid ncr53c8xx sym53c8xx $IDEMODS $SCSIMODS" NETWORKMODULES="$COMMONMODULES nfs 3c59x eepro100 tulip pcnet32 8139too" # sis900 e100 hp100 natsemi" PCMCIAMAINMODULES="$COMMONMODULES nfs $IDEMODS $SCSIMODS" # images we only want on the CD (usually for space reasons) ISOLINUXMODULES="ehci-hcd ieee1394 ohci1394 sbp2" mkdir -p $TOPDESTPATH/images/pxeboot # XXX hack hack PCMCIAMODULES_EXCLUDED=" apa1480_cb iflash2+_mtd iflash2_mtd memory_cb memory_cs parport_cs parport_pc parport serial_cs serial_cb sram_mtd aironet4500_cs orinoco_cs orinoco orinoco_old_cs wavelan_cs wvlan_cs " PCMCIAMODULES_EXCLUDED_SED="sed" for m in $PCMCIAMODULES_EXCLUDED do PCMCIAMODULES_EXCLUDED_SED="$PCMCIAMODULES_EXCLUDED_SED -e 's/$m//g'" done PCMCIAMODULES=`echo $PCMCIAMODULES | eval "$PCMCIAMODULES_EXCLUDED_SED"` mkdir -p $TOPDESTPATH/images/pxeboot echo "Building initrd-everything.img" makeinitrd --initrdto $TOPDESTPATH/images/pxeboot/initrd-everything.img \ --pcmcia \ --initrdsize 5000 \ --loaderbin loader \ --modules "$LOCALMODULES $NETWORKMODULES $PCMCIAMAINMODULES $PCMCIAMODULES $ISOLINUXMODULES =scsi =net" [ $? = 0 ] || exit 1 if [ -f $IMGPATH/usr/lib/syslinux/isolinux.bin ]; then echo "Building isolinux directory" MBD_BOOTTREE=$TOPDESTPATH/isolinux MBD_FSIMAGE=$TOPDESTPATH/images/pxeboot/initrd-everything.img mkdir $MBD_BOOTTREE cp $IMGPATH/usr/lib/syslinux/isolinux.bin $MBD_BOOTTREE/isolinux.bin prepareBootTree # isolinux needs the config file to be isolinux.cfg mv $MBD_BOOTTREE/syslinux.cfg $MBD_BOOTTREE/isolinux.cfg else echo "No isolinux binaries. Skipping isolinux creation" fi echo "Building main moduleball" makemainmodules "=scsi =net $SECSTAGE" [ $? = 0 ] || exit 1 echo "Building netstg.img" makeinstimage "netstg" "=scsi $SECSTAGE" [ $? = 0 ] || exit 1 echo "Building hdstg.img" makeinstimage "hdstg" "=net $SECSTAGE" [ $? = 0 ] || exit 1 echo "Building stage2.img" makemainimage "stage2" "cramfs" [ $? = 0 ] || exit 1