1#!/bin/sh 2# $NetBSD: build_image.sh,v 1.2 2009/04/03 22:36:34 perry Exp $ 3# This script is a quick hack to generate the various floppies in the 4# 'installation/floppies' directory. This script cannot be run in the 5# build environment, it is provided as a howto. 6# When msdos support is added to makefs, it makes sense to provide a 7# decent script that can be integrated into the build environment. 8# 9# Leo 10 Sept. 2002. 10 11DESTDIR=/tmp/flop_images 12TOOLDIR=/tmp/flop_tools 13KERNEL_DIR=/tmp/kernels 14MNT_DIR=/mnt2 15VND_DEV=vnd0 16SUDO=sudo 17 18IMAGE720="boot BOOT" 19IMAGE144="hades_boot HADES milan_isa_boot MILAN-ISAIDE" 20IMAGE144="$IMAGE144 milan_pci_boot MILAN-PCIIDE" 21TOOLS="chg_pid.ttp file2swp.ttp loadbsd.ttp rawwrite.ttp aptck.ttp" 22 23unpack_tools() { 24 if [ ! -d $TOOLDIR ]; then 25 mkdir $TOOLDIR; 26 fi 27 for i in $TOOLS 28 do 29 cat ${i}.gz.uu | (cd $TOOLDIR; uudecode) 30 gunzip -f $TOOLDIR/${i}.gz 31 done 32} 33 34do_images() { 35 base_img=$1; geom=$2; shift 2 36 37 while : ; do 38 if [ -z "$1" ]; then 39 break; 40 fi 41 cat ${base_img}.fs.gz.uu | (cd /tmp; uudecode) 42 gunzip /tmp/${base_img}.fs.gz 43 $SUDO vnconfig $VND_DEV /tmp/${base_img}.fs $geom 44 $SUDO mount -t msdos /dev/${VND_DEV}c ${MNT_DIR} 45 46 # Copy the kernel first... 47 cp ${KERNEL_DIR}/netbsd-${2}.gz ${MNT_DIR}/netbsd 48 49 # Thereafter the tools, some may not fit :-( 50 for i in $TOOLS; do 51 cp $TOOLDIR/$i ${MNT_DIR} 2> /dev/null 52 if [ $? -ne 0 ]; then 53 echo "$i does not fit on ${1}.fs" 54 rm -f ${MNT_DIR}/$i 55 fi 56 done 57 echo "Contents of ${1}.fs:\n"; ls -l ${MNT_DIR} 58 59 $SUDO umount ${MNT_DIR} 60 $SUDO vnconfig -u ${VND_DEV} 61 mv /tmp/${base_img}.fs /tmp/$1.fs 62 gzip -9n /tmp/$1.fs 63 mv /tmp/$1.fs.gz $DESTDIR 64 shift 2 65 done 66} 67 68 69if [ ! -d $DESTDIR ]; then 70 mkdir $DESTDIR 71fi 72 73if [ ! -d $KERNEL_DIR ]; then 74 echo "Please put the kernel images in $KERNEL_DIR!!" 75 exit 1 76fi 77rm -f $TOOLDIR/* $DESTDIR/* 78 79unpack_tools 80do_images boot720 "512/18/1/80" ${IMAGE720} 81do_images boot144 "512/18/2/80" ${IMAGE144} 82 83echo "The images can be found in: $DESTDIR" 84