#!/bin/sh
# required in pwd:
# - etherboot-5.4.3.tar.bz2
#
http://downloads.sourceforge.net/etherboot/etherboot-5.4.3.tar.bz2
PACKAGE=etherboot
VERSION=5.4.3
CWD=$PWD
TMP=${TMP:-/tmp}
MNT=$PACKAGE-$$
IMGS="$PACKAGE.img ${PACKAGE}_pcmcia.img"
for IMG in $IMGS ; do
# build
echo "Building: $IMG"
rm -rf $TMP/$PACKAGE-$VERSION/
tar jxf $CWD/$PACKAGE-$VERSION.tar.bz2 -C $TMP/ || exit 1
chmod -R g-w $TMP/$PACKAGE-$VERSION/
chown -R root:root $TMP/$PACKAGE-$VERSION/
cd $TMP/$PACKAGE-$VERSION/src/ || exit 1
if [ $IMG = $PACKAGE.img ] ; then
BUILD_PCMCIA="" # etherboot.img
else
BUILD_PCMCIA="EXTRA_CFLAGS=-DCONFIG_PCMCIA" # etherboot_pcmcia.img
fi
make $BUILD_PCMCIA allzlilos &> make_allzlilos.output || exit 1
# prep image
dd if=/dev/zero of=$TMP/$IMG bs=1 count=0 seek=1440K &> /dev/null || exit 1
mkdosfs $TMP/$IMG &> /dev/null || exit 1
syslinux -s $TMP/$IMG || exit 1
mkdir -p $TMP/$MNT/
mount -t vfat $TMP/$IMG $TMP/$MNT/ -o loop || exit 1
# config & text setup
cat << EOF > $TMP/$MNT/syslinux.cfg
default ne
prompt 1
display message.txt
EOF
# be tidy. start with a cleared screen
echo -ne "\014" > $TMP/$MNT/message.txt
cat << EOF >> $TMP/$MNT/message.txt
Welcome to the Etherboot v$VERSION Bootdisk
The following is a complete list of drivers available on this disk. Since they
do not necessarily have a one-to-one name relationship with those in the Linux
kernel, you may have to try several at random until one works.
3c503 cs89x0 etherfabric ne r8169 tg3
3c509 davicom forcedeth ns83820 rtl8139 tlan
3c515 depca ide_disk ns8390 sis900 tulip
3c529 dmfe mt23108 pc_floppy sk_g16 undi
3c595 e1000 mt25218 pcnet32 skel-isa via-rhine
3c90x eepro mtd80x pnic skel via-velocity
amd8111e eepro100 myri10ge prism2_pci smc9000 w89c840
bnx2 epic100 natsemi prism2_plx sundance wd
Enter your selection at the prompt below.
EOF
# update config, copy drivers
# note the ugly kludge for 8.3 filenames. this is necessary!
echo -n "Copying drivers: "
cd $TMP/$PACKAGE-$VERSION/src/bin/
for ORGNAME in *.zlilo ; do
LABEL=$(basename $ORGNAME .zlilo)
case "$LABEL" in
etherfabric)
DOSNAME=ethrfbrc.zli
;;
forcedeth)
DOSNAME=forcdeth.zli
;;
pc_floppy)
DOSNAME=pc_flopy.zli
;;
prism2_pci)
DOSNAME=prsm2pci.zli
;;
prism2_plx)
DOSNAME=prsm2plx.zli
;;
via-rhine)
DOSNAME=viarhine.zli
;;
via-velocity)
DOSNAME=viavlcty.zli
;;
*)
DOSNAME=$LABEL.zli
;;
esac
echo -n "$LABEL "
echo -e "label $LABEL\n kernel $DOSNAME" >> $TMP/$MNT/syslinux.cfg
cp -p $ORGNAME $TMP/$MNT/$DOSNAME
done
echo
# image finale
umount $TMP/$MNT/
sync
mv $TMP/$IMG $CWD/
# tidy up
rm -rf $TMP/$MNT/ $TMP/$PACKAGE-$VERSION/
done