58e0c54cf3
Not tested on all platforms.
84 lines
2.0 KiB
Bash
Executable File
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"
|