Add the final? pieces to support mvme68k ramdisk support.
authorrahnds <rahnds@openbsd.org>
Sun, 16 Feb 1997 03:26:23 +0000 (03:26 +0000)
committerrahnds <rahnds@openbsd.org>
Sun, 16 Feb 1997 03:26:23 +0000 (03:26 +0000)
uses rdsetroot to create a ramdisk in a kernel image.

distrib/mvme68k/common/dot.commonutils [new file with mode: 0644]
distrib/mvme68k/list2sh.awk [new file with mode: 0644]
distrib/mvme68k/ramdisk/Makefile
distrib/mvme68k/ramdisk/list
distrib/mvme68k/runlist.sh [new file with mode: 0644]

diff --git a/distrib/mvme68k/common/dot.commonutils b/distrib/mvme68k/common/dot.commonutils
new file mode 100644 (file)
index 0000000..64f8403
--- /dev/null
@@ -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 (file)
index 0000000..43008da
--- /dev/null
@@ -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;
+}
index 1564c9c..e074c96 100644 (file)
@@ -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}
 
index 6e74e0e..14ce3f0 100644 (file)
@@ -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 (file)
index 0000000..8693fe5
--- /dev/null
@@ -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}