From 48c5c018690b2aca2006db948fbb541a35369584 Mon Sep 17 00:00:00 2001 From: rahnds Date: Sun, 16 Feb 1997 03:26:23 +0000 Subject: [PATCH] Add the final? pieces to support mvme68k ramdisk support. uses rdsetroot to create a ramdisk in a kernel image. --- distrib/mvme68k/common/dot.commonutils | 129 +++++++++++++++++++++++++ distrib/mvme68k/list2sh.awk | 39 ++++++++ distrib/mvme68k/ramdisk/Makefile | 39 ++++++-- distrib/mvme68k/ramdisk/list | 6 +- distrib/mvme68k/runlist.sh | 13 +++ 5 files changed, 214 insertions(+), 12 deletions(-) create mode 100644 distrib/mvme68k/common/dot.commonutils create mode 100644 distrib/mvme68k/list2sh.awk create mode 100644 distrib/mvme68k/runlist.sh diff --git a/distrib/mvme68k/common/dot.commonutils b/distrib/mvme68k/common/dot.commonutils new file mode 100644 index 00000000000..64f840321c8 --- /dev/null +++ b/distrib/mvme68k/common/dot.commonutils @@ -0,0 +1,129 @@ +# +# $NetBSD: dot.commonutils,v 1.1 1995/07/18 04:13:18 briggs Exp $ +# +# Copyright (c) 1994 Christopher G. Demetriou +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. All advertising materials mentioning features or use of this software +# must display the following acknowledgement: +# This product includes software developed by Christopher G. Demetriou. +# 4. The name of the author may not be used to endorse or promote products +# derived from this software without specific prior written permission +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +# Installation utilites (functions), to get NetBSD installed on +# the hard disk. These are meant to be invoked from the shell prompt, +# by people installing NetBSD. + +Set_tmp_dir() +{ + def_tmp_dir=`pwd` + if [ "$def_tmp_dir" = "/" -o "$def_tmp_dir" = "/mnt" ]; then + def_tmp_dir=/mnt/usr/distrib + fi + + echo -n "What directory should be used to find and/or store " + echo "installtion" + echo -n "files? [$def_tmp_dir] " + read tmp_dir + if [ "$tmp_dir" = "" ]; then + tmp_dir=$def_tmp_dir + fi + if [ ! -d "$tmp_dir" ]; then + /bin/rm -rf $tmp_dir + mkdir -p $tmp_dir + fi +} + +Tmp_dir() +{ + if [ "$tmp_dir" = "" ]; then + Set_tmp_dir + fi + cd $tmp_dir +} + +Load_fd() +{ + Tmp_dir + which= + while [ "$which" != "a" -a "$which" != "b" ]; do + echo -n "Read from which floppy drive ('a' or 'b')? [a] " + read which + if [ "X$which" = "X" ]; then + which=a + fi + done + while echo -n "Insert floppy (hit ^C to terminate, enter to load): " + do + mount -t msdos /dev/fd0$which /mnt2 + cp -rp /mnt2/* . + umount /mnt2 + done +} + +Load_tape() +{ + Tmp_dir + echo -n "Which tape drive will you be using? [rst0] " + read which + if [ "X$which" = "X" ]; then + which=rst0 + fi + echo -n "Insert the tape into the tape drive and hit return to " + echo -n "continue..." + read foo + echo "Extracting files from the tape..." + tar xvfp /dev/$which + echo "Done." +} + +Extract() +{ + Tmp_dir + echo -n "Would you like to list the files as they're extracted? [n] " + read verbose + case $verbose in + y*|Y*) + tarverbose=v + ;; + *) + tarverbose= + ;; + esac + echo -n "Are you installing a '-current' snapshot? [n] " + read snapshot + case $snapshot in + y*|Y*) + snapshot=y + ;; + *) + snapshot=n + ;; + esac + if [ $snapshot = n ] + then + cat "$1".??? | gunzip | (cd / ; tar xfp$tarverbose -) + else + cat "$1".tar.gz | gunzip | (cd /mnt ; tar xfp$tarverbose -) + fi +} diff --git a/distrib/mvme68k/list2sh.awk b/distrib/mvme68k/list2sh.awk new file mode 100644 index 00000000000..43008da5be9 --- /dev/null +++ b/distrib/mvme68k/list2sh.awk @@ -0,0 +1,39 @@ +# $NetBSD: list2sh.awk,v 1.1 1995/07/18 04:12:59 briggs Exp $ + +BEGIN { + printf("cd ${CURDIR}\n"); + printf("\n"); +} +/^$/ || /^#/ { + print $0; + next; +} +$1 == "COPY" { + printf("echo '%s'\n", $0); + printf("cp %s ${TARGDIR}/%s\n", $2, $3); + next; +} +$1 == "LINK" { + printf("echo '%s'\n", $0); + printf("(cd ${TARGDIR}; ln %s %s)\n", $2, $3); + next; +} +$1 == "SPECIAL" { + printf("echo '%s'\n", $0); + printf("(cd ${TARGDIR};"); + for (i = 2; i <= NF; i++) + printf(" %s", $i); + printf(")\n"); + next; +} +{ + printf("echo '%s'\n", $0); + printf("echo 'Unknown keyword \"%s\" at line %d of input.'\n", $1, NR); + printf("exit 1\n"); + exit 1; +} +END { + printf("\n"); + printf("exit 0\n"); + exit 0; +} diff --git a/distrib/mvme68k/ramdisk/Makefile b/distrib/mvme68k/ramdisk/Makefile index 1564c9c38aa..e074c968288 100644 --- a/distrib/mvme68k/ramdisk/Makefile +++ b/distrib/mvme68k/ramdisk/Makefile @@ -8,9 +8,11 @@ CRUNCHCONF?= ${.CURDIR}/${CBIN}.conf BASE=miniroot MOUNT_POINT= /mnt1 -BDEV= /dev/vnd0a -CDEV= /dev/rvnd0a -RDEV= /dev/vnd0c +BDEV= /dev/rd0a +CDEV= /dev/rrd0a +RDEV= /dev/rd0c + +KERNEL= ${SRCSYSDIR}/arch/mvme68k/compile/MINIROOT/bsd all: ${CBIN} ${IMAGE} @echo "all done" @@ -29,14 +31,29 @@ ${IMAGE}: do_prep do_mount do_files do_umount_copy do_unconfig rm rd.pid;\ fi +rdsetroot: ${TOP}/common/rdsetroot.c + ${HOSTCC} -o rdsetroot ${TOP}/common/rdsetroot.c + +setroot: bsd + rdsetroot bsd < miniroot-12.fs + +bsd: ${KERNEL} + cp ${KERNEL} bsd + +writetape: + echo rewinding tape < /dev/rst0 + buffer -i /usr/mdec/stboot -o /dev/nrst0 + buffer -i /usr/mdec/bootst -o /dev/nrst0 + buffer -B -p75 -i bsd -o /dev/nrst0 + echo rewinding tape < /dev/rst0 + + do_prep: ${CBIN} do_unconfig - #sh ${.CURDIR}/start_rdconfig.sh ${CDEV} ${NBLKS} - dd if=/dev/zero of=${IMAGE} bs=1k count=2048 - vnconfig -cv ${RDEV} ${IMAGE} - disklabel -r -w ${RDEV} ${DISKTYPE} + sh ${.CURDIR}/start_rdconfig.sh ${RDEV} ${NBLKS} + disklabel -w ${RDEV} ${DISKTYPE} do_mount: - -newfs ${NEWFSARGS} -s ${NBLKS} ${BDEV} ${DISKTYPE} + -newfs ${NEWFSARGS} -s ${NBLKS} ${CDEV} ${DISKTYPE} mount ${BDEV} ${MOUNT_POINT} do_umount_copy: @@ -48,7 +65,11 @@ do_umount_copy: do_unconfig: -umount ${MOUNT_POINT} - -vnconfig -u ${RDEV} + if [ -e rd.pid ] ; then \ + kill `< rd.pid`; \ + rm rd.pid; \ + fi + .PRECIOUS: ${IMAGE} diff --git a/distrib/mvme68k/ramdisk/list b/distrib/mvme68k/ramdisk/list index 6e74e0ed812..14ce3f05fe2 100644 --- a/distrib/mvme68k/ramdisk/list +++ b/distrib/mvme68k/ramdisk/list @@ -1,4 +1,4 @@ -# $OpenBSD: list,v 1.1 1997/02/15 04:27:17 rahnds Exp $ +# $OpenBSD: list,v 1.2 1997/02/16 03:26:25 rahnds Exp $ COPY ${OBJDIR}/raminst raminst LINK raminst bin/cat @@ -72,8 +72,8 @@ COPY ${DESTDIR}/etc/services etc COPY ${DESTDIR}/etc/spwd.db etc # and the common installation tools -COPY ${TOPDIR}/inst-common/dot.commonutils .commonutils -COPY ${TOPDIR}/inst-common/termcap.vt usr/share/misc/termcap +COPY ${TOPDIR}/common/dot.commonutils .commonutils +COPY ${TOPDIR}/common/termcap.vt usr/share/misc/termcap # the disktab explanation file COPY disktab.preinstall etc diff --git a/distrib/mvme68k/runlist.sh b/distrib/mvme68k/runlist.sh new file mode 100644 index 00000000000..8693fe51865 --- /dev/null +++ b/distrib/mvme68k/runlist.sh @@ -0,0 +1,13 @@ +# $NetBSD: runlist.sh,v 1.1 1995/07/18 04:13:01 briggs Exp $ + +if [ "X$1" = "X-d" ]; then + SHELLCMD=cat + shift +else + SHELLCMD="sh" +fi + +( while [ "X$1" != "X" ]; do + cat $1 + shift +done ) | awk -f ${TOPDIR}/list2sh.awk | ${SHELLCMD} -- 2.20.1