blob: a70fc65cc8a0ae0ecee47e68c5fbfb1e06c05f56 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
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
|