NetBSD/distrib/atari/floppies/tos/build_image.sh
2009-04-03 22:36:34 +00:00

84 lines
2.0 KiB
Bash
Executable File

#!/bin/sh
# $NetBSD: build_image.sh,v 1.2 2009/04/03 22:36:34 perry Exp $
# This script is a quick hack to generate the various floppies in the
# 'installation/floppies' directory. This script cannot be run in the
# build environment, it is provided as a howto.
# When msdos support is added to makefs, it makes sense to provide a
# decent script that can be integrated into the build environment.
#
# Leo 10 Sept. 2002.
DESTDIR=/tmp/flop_images
TOOLDIR=/tmp/flop_tools
KERNEL_DIR=/tmp/kernels
MNT_DIR=/mnt2
VND_DEV=vnd0
SUDO=sudo
IMAGE720="boot BOOT"
IMAGE144="hades_boot HADES milan_isa_boot MILAN-ISAIDE"
IMAGE144="$IMAGE144 milan_pci_boot MILAN-PCIIDE"
TOOLS="chg_pid.ttp file2swp.ttp loadbsd.ttp rawwrite.ttp aptck.ttp"
unpack_tools() {
if [ ! -d $TOOLDIR ]; then
mkdir $TOOLDIR;
fi
for i in $TOOLS
do
cat ${i}.gz.uu | (cd $TOOLDIR; uudecode)
gunzip -f $TOOLDIR/${i}.gz
done
}
do_images() {
base_img=$1; geom=$2; shift 2
while : ; do
if [ -z "$1" ]; then
break;
fi
cat ${base_img}.fs.gz.uu | (cd /tmp; uudecode)
gunzip /tmp/${base_img}.fs.gz
$SUDO vnconfig $VND_DEV /tmp/${base_img}.fs $geom
$SUDO mount -t msdos /dev/${VND_DEV}c ${MNT_DIR}
# Copy the kernel first...
cp ${KERNEL_DIR}/netbsd-${2}.gz ${MNT_DIR}/netbsd
# Thereafter the tools, some may not fit :-(
for i in $TOOLS; do
cp $TOOLDIR/$i ${MNT_DIR} 2> /dev/null
if [ $? -ne 0 ]; then
echo "$i does not fit on ${1}.fs"
rm -f ${MNT_DIR}/$i
fi
done
echo "Contents of ${1}.fs:\n"; ls -l ${MNT_DIR}
$SUDO umount ${MNT_DIR}
$SUDO vnconfig -u ${VND_DEV}
mv /tmp/${base_img}.fs /tmp/$1.fs
gzip -9n /tmp/$1.fs
mv /tmp/$1.fs.gz $DESTDIR
shift 2
done
}
if [ ! -d $DESTDIR ]; then
mkdir $DESTDIR
fi
if [ ! -d $KERNEL_DIR ]; then
echo "Please put the kernel images in $KERNEL_DIR!!"
exit 1
fi
rm -f $TOOLDIR/* $DESTDIR/*
unpack_tools
do_images boot720 "512/18/1/80" ${IMAGE720}
do_images boot144 "512/18/2/80" ${IMAGE144}
echo "The images can be found in: $DESTDIR"