#
# kcbin.conf - unified binary for the kc floppy
-# $Id: instbin.conf,v 1.1.1.1 1995/10/18 08:37:34 deraadt Exp $
+# $Id: instbin.conf,v 1.2 1995/11/23 15:58:00 deraadt Exp $
#
srcdirs bin sbin usr.bin usr.sbin gnu/usr.bin
progs bad144 cat chmod chown chroot cp dd df disklabel ed expr fsck ftp gawk
progs gzip ifconfig init ln ls mkdir mknod more mount mount_cd9660
-progs mount_ffs mount_msdos mount_nfs mv newfs ping pwd reboot rm route
+progs mount_ffs mount_msdos mount_nfs mount_kernfs
+progs mv newfs ping pwd reboot rm route
progs sed sh shutdown slattach strings stty sync tar test tip umount
progs update
ln mount_ffs ffs
ln mount_msdos msdos
ln mount_nfs nfs
+ln mount_kernfs kernfs
ln reboot halt
libs -ledit -lutil -ltermcap -lcrypt -ll -lm
-# $Id: list,v 1.1.1.1 1995/10/18 08:37:34 deraadt Exp $
+# $Id: list,v 1.2 1995/11/23 15:58:01 deraadt Exp $
# copy the crunched binary, link to it, and kill it
COPY ${OBJDIR}/instbin instbin
LINK instbin sbin/mount_ffs
LINK instbin sbin/mount_msdos
LINK instbin sbin/mount_nfs
+LINK instbin sbin/mount_kernfs
LINK instbin sbin/newfs
LINK instbin sbin/ping
LINK instbin sbin/reboot
-# $Id: mtree.conf,v 1.1.1.1 1995/10/18 08:37:34 deraadt Exp $
+# $Id: mtree.conf,v 1.2 1995/11/23 15:58:02 deraadt Exp $
/set type=dir uname=root gname=wheel mode=0755
# .
# ./mnt2
..
+# ./kern
+kern
+# ./kern
+..
+
# ./sbin
sbin
# ./sbin
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
-# $Id: dot.hdprofile,v 1.1.1.1 1995/10/18 08:37:34 deraadt Exp $
+# $Id: dot.hdprofile,v 1.2 1995/11/23 15:57:57 deraadt Exp $
PATH=/sbin:/bin:/usr/bin:/usr/sbin:/
export PATH
echo "Mounting filesystems..."
mount -a
+ mount -t kernfs /kern /kern
# set up some sane defaults
echo 'erase ^?, werase ^W, kill ^U, intr ^C'
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
-# $Id: dot.profile,v 1.1.1.1 1995/10/18 08:37:34 deraadt Exp $
+# $Id: dot.profile,v 1.2 1995/11/23 15:57:58 deraadt Exp $
PATH=/sbin:/bin:/usr/bin:/usr/sbin:/
export PATH
# run update, so that installed software is written as it goes.
update
+ # mount the kern_fs so that we can examine the dmesg state
+ mount -t kernfs /kern /kern
+
# pull in the functions that people will use from the shell prompt.
. /.commonutils
. /.instutils
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
-# $Id: install.sh,v 1.2 1995/11/06 21:27:35 deraadt Exp $
+# $Id: install.sh,v 1.3 1995/11/23 15:57:59 deraadt Exp $
# NetBSD installation script.
# In a perfect world, this would be a nice C program, with a reasonable
echo "or you should have written down what NetBSD printed when booting."
echo "(Note that he geometry that's printed at boot time is preferred.)"
echo ""
+echo "You may choose to view the initial boot messages for your system"
+echo "again right now if you like."
+echo -n "View the boot messages again? [n] "
+getresp "n"
+case "$resp" in
+ y*|Y*)
+ more /kern/msgbuf
+ ;;
+ *)
+ echo ""
+ ;;
+esac
+
+echo ""
+echo "You will now enter the disk geometry information"
+echo ""
+
echo -n "Number of bytes per disk sector? [512] "
getresp 512
bytes_per_sect="$resp"
---- -- ------
NetBSD is a Berkeley Networking Release 2 (Net/2) and 4.4BSD-Lite
--derived system. It is a fully functional UN*X-like system which runs
-on several architectures and is being ported to more. NetBSD, as the
-name implies, is a creation of the members of the network community
+-derived Operating System. It is a fully functional UN*X-like system
+which runs on many architectures and is being ported to more. NetBSD,
+as the name implies, is a creation of the members of the network community
and without the net it's likely that this release wouldn't have come
about.
-NetBSD 1.0 is a milestone release. The hardest part of the 4.4BSD-Lite
-integration, the kernel, has been completed and has been running in
-"production use" for quite some time. Also, NetBSD 1.0 is the first
-true multi-architecture release of NetBSD. At the time of NetBSD 0.9,
-the i386 port was considered 'production quality' and the hp300 port was
-barely working. The NetBSD 1.0 source supports nine architectures, and
-complete binary releases for most of them will be made available.
-
-NetBSD 1.0 supports many new and improved features, the most important
-relating to file systems. New and improved versions of both the
-Berkeley Fast File System and the free implementation of the NFS
-protocol were provided, as part of the 4.4-Lite release. The new
-versions include such improvements as support for 64-bit file sizes,
-for local files, and "lease" support for NFS, to improve performance.
-In addition to the file system improvements, many other parts of the
-system have been improved considerably. For instance, the virtual
-memory code has substantially improved performance, and many of the
-kernel's interfaces have been cleaned up.
-
-Many new user programs have been added in NetBSD 1.0, as well,
+NetBSD 1.1 is a evolutionary release which contains a over a year of
+changes to the kernel, user-level utilities, and documentation.
+
+Continuing the multi-platform tradition, NetBSD has added ports to
+atari and mvme68k based machines. Kernel interfaces have continued to
+be refined, and now several subsystems and device drivers are shared
+among the different ports. We can look for this trend to continue.
+
+NetBSD 1.1 has significantly enhanced the binary emulation subsystem
+(which includes iBCS2, Linux, OSF/1, SunOS, SVR4, Solaris and Ultrix
+compatibility) and several kernel subsystems have been generalized
+to support this more readily. The binary emulation strategy is
+aimed at making the emulation as accurate as possible.
+
+NetBSD 1.1 is also the first release to see machine-independent disk
+striping. The concatenated disk driver (ccd), which was previously
+supported only by the hp300 port, has been vastly improved. Many
+bugs were fixed, and explicit references to device-dependent routines
+were removed and replaced by calls to the generic "vnode operation"
+routines. In addition, several features were added, including partition
+support, dynamic configuration and unconfiguration via a user space system
+utility program, and virtually unlimiting the number of component devices.
+
+Many new user programs have been added in NetBSD 1.1, as well,
bringing it closer to our goal of supplying a complete UN*X-like
-environment. Additionally, support for shared libraries has been
-added, for most architectures, allowing a significant savings in both
-RAM consumption and disk space.
+environment.
+
#include "whatis"
The Future of NetBSD:
--- ------ -- ------
+The NetBSD Foundation was recently incorporated as a non-profit
+organization. It's purpose is to encourage, foster and promote the
+free exchange of computer software, namely the NetBSD Operating
+System. The corporation will allow for many things to be handled more
+smoothly than could be done with our previous informal organization.
+In particular, it provides the framework to deal with other parties
+that wish to become involved in the NetBSD Project.
+
+We believe that the NetBSD Foundation will help improve the quality
+of NetBSD by:
+
+ * having a better organization to keep track of development
+ efforts, including co-ordination with groups working in
+ related fields.
+
+ * providing a framework to receive donations of goods and
+ services and to own the resources necessary to run the
+ NetBSD Project.
+
+ * providing a better position from which to undertake
+ promotional activities.
+
+ * periodically organizing workshops for developers and other
+ interested people to discuss ongoing work.
+
We hope to have regular releases of the full binary and source trees,
but these are difficult to coordinate, especially with all of the
architectures which we now support! We hope to support even _more_
available on a daily or nearly-daily basis.
We intend to integrate free, positive changes from whatever sources
-will provide them, providing that they are well thought-out and increase
-the usability of the system. This includes integrating the remainder of
-the 4.4BSD-Lite tape, as quickly as we can ensure that everything works
-properly.
+will provide them, providing that they are well thought-out and
+increase the usability of the system.
Above all, we hope to create a stable and accessible system, and to be
responsive to the needs and desires of NetBSD users, because it is for
[ 7.7M gzipped, 32.0M uncompressed ]
ksrc11 This set contains the sources to the NetBSD 1.1
- kernel, config(8), config.new(8) and dbsym(8).
+ kernel, config(8), config.old(8) and dbsym(8).
[ 4.5M gzipped, 20.8M uncompressed ]
ssrc11 This set contains the "share" sources, which include
In each of the source distribution set directories, there is a file
named "CKSUMS" which contains the checksums of the files in that
-directory, as generated by the cksum(1) command. You can use cksum to
+directory, as generated by the cksum(1) utility. You can use cksum to
check the integrity of the archives, if you suspect that one of the
files is corrupt and have access to a cksum binary.
go off to Brian Berliner, Jeff Polk, and the various other people
who've had a hand in making CVS a useful tool.
+Alistair G. Crooks <agc@westley.demon.co.uk> has been producing tar
+file snapshot reports for NetBSD-current users, a very valuable
+service.
+
+Dave Burgess <burgess@cynjut.infonet.net> has been maintaining the
+386BSD/NetBSD/FreeBSD FAQ for quite some time, and deserves to be
+recognized for it.
+
The following people (in alphabetical order) have made donations or
loans of hardware and/or money, to support NetBSD development, and
deserve credit for it:
not able to get in touch with you, to verify that you wanted to be
listed.)
-Dave Burgess <burgess@cynjut.infonet.net> has been maintaining the
-386BSD/NetBSD/FreeBSD FAQ for quite some time, and deserves to be
-recognized for it.
-
Finally, we thank all of the people who've put sweat and tears into
developing NetBSD since its inception in January, 1993. (Obviously,
there are a lot more people who deserve thanks here. If you're one of
Anything else is up to you!
NOTE: The hp300 installation procedure utilizes a `miniroot' filesystem
-which is placed into the swap area of the disk. The swap are must be
+which is placed into the swap area of the disk. The swap area must be
at least large enough to hold this miniroot image.
The following HP hardware is supported:
Controllers are numbered 0, 1, ... starting with the lowest select code.
SCSI controllers and HP-IB controllers are counted separately. Therefore,
-if you had a system with an internal HP-IB interface at select code 7,
+if you have a system with an internal HP-IB interface at select code 7,
a fast HP-IB interface at select code 14, and a SCSI interface at select
code 16, unit numers might be something like the following:
manual pages on your server system if you need more information about
exporting filesystems.
-You are now ready to SYS_INST. During the client's self-test cycle, press
-the space bar a few times. Shortly, you should see a menu of possible boot
-options appear. Select the option corresponding to SYS_INST. SYS_INST will
-load and prompt you for a command.
+You are now ready to load SYS_INST. During the client's self-test cycle,
+press the space bar a few times. Shortly, you should see a menu of possible
+boot options appear. Select the option corresponding to SYS_INST. SYS_INST
+will load and prompt you for a command.
If this is a new NetBSD installation, you will need to place a disklabel
on the disk.
This product includes software developed by Paul Kranenburg.
+ This product includes software developed by John Kohl.
+
This product includes software developed by Terrence R. Lambert.
This product includes software developed by Frank van der Linden.
This product includes software developed by TooLs GmbH.
- This product includes software developed by Winning Strategies, Inc.
-
This product includes software developed by Christos Zoulas.
-The mac68k-specific portion of the NetBSD 1.0 release is found in the
+The mac68k-specific portion of the NetBSD 1.1 release is found in the
"mac68k" subdirectory of the distribution. That subdirectory is laid
out as follows:
-.../NetBSD-1.0/mac68k/
+.../NetBSD-1.1/mac68k/
binary/ mac68k binary distribution sets;
see below.
utils/ The mac68k installation utilities.
The NetBSD/mac68k binary distribution sets contain the binaries which
-comprise the NetBSD 1.0 release for the mac68k. There are eight binary
+comprise the NetBSD 1.1 release for the mac68k. There are eight binary
distribution sets, and the "security" distribution set. The binary
distribution sets can be found in subdirectories of the "mac68k/binary"
-subdirectory of the NetBSD 1.0 distribution tree, and are as follows:
+subdirectory of the NetBSD 1.1 distribution tree, and are as follows:
- netbsd10 The NetBSD/mac68k 1.0 kernel binary. You MUST
+ netbsd10 The NetBSD/mac68k 1.1 kernel binary. You MUST
install this file. It is the kernel that you need
to boot the system.
[ 307K gzipped, 610K uncompressed ]
- base10 The NetBSD/mac68k 1.0 base binary distribution. You
+ base11 The NetBSD/mac68k 1.1 base binary distribution. You
MUST install this distribution set. It contains the
base NetBSD utilities that are necessary for the
system to run and be minimally functional. It
everything described below.
[ 6.2M gzipped, 18.4M uncompressed ]
- comp10 The NetBSD/mac68k Compiler tools. All of the tools
+ comp11 The NetBSD/mac68k Compiler tools. All of the tools
relating to C, C++, and FORTRAN (yes, there are two!).
This set includes the system include files
(/usr/include), the linker, the compiler tool chain,
call and library manual pages.
[ 4.0M gzipped, 12.7M uncompressed ]
- etc10 This distribution set contains the system
+ etc11 This distribution set contains the system
configuration files that reside in /etc and in several
other places. This set MUST be installed if you are
installing the system from scratch, but should NOT be
CAREFULLY upgrade your configuration files by hand.)
[ 50K gzipped, 280K uncompressed ]
- games10 This set includes the games and their manual pages.
+ games11 This set includes the games and their manual pages.
[ 1.0M gzipped, 3.0M uncompressed ]
- man10 This set includes all of the manual pages for the
+ man11 This set includes all of the manual pages for the
binaries and other software contained in the base set.
Note that it does not include any of the manual pages
that are included in the other sets.
[ 0.7M gzipped, 2.8M uncompressed ]
- misc10 This set includes the system dictionaries (which are
+ misc11 This set includes the system dictionaries (which are
rather large), the typesettable document set, and
man pages for other architectures which happen to be
installed from the source tree by default.
[ 1.6M gzipped, 5.7M uncompressed ]
- text10 This set includes NetBSD's text processing tools,
+ text11 This set includes NetBSD's text processing tools,
including groff, all related programs, and their
manual pages.
[ 0.8M gzipped, 2.9M uncompressed ]
-The mac68k security distribution set is named "secr10" and can be found
-in the "mac68k/security" subdirectory of the NetBSD 1.0 distribution
+The mac68k security distribution set is named "secr11" and can be found
+in the "mac68k/security" subdirectory of the NetBSD 1.1 distribution
tree. It contains the crypt libraries (for the DES encryption algorithm)
and the binaries which depend on it. It can only be found on those sites
which carry the complete NetBSD distribution and that can legally obtain
-NetBSD/mac68k 1.0 runs on several of the older Macintosh computers.
+NetBSD/mac68k 1.1 runs on several of the older Macintosh computers.
4MB of RAM should be sufficient to boot and the system can probably
be squeezed onto a 40MB hard disk by leaving off a package or two.
To actually do much compiling or anything more interesting than
booting, at least 8MB of RAM and more disk space is recommended.
-About 50MB will be necessary to install all of the NetBSD 1.0 binary
+About 50MB will be necessary to install all of the NetBSD 1.1 binary
distribution (note that this does not count swap space!). Much more
disk space is required to install the source and objects as well (about
another 105MB).
Supported models:
- Mac II
- Mac IIx
- Mac IIcx
- Mac IIci
- Mac SE/30
+ Mac II, Mac IIx, Mac IIcx, Mac IIci, Mac SE/30,
+ Mac IIsi, Mac IIvx, Mac IIvi, Performa 600
Supported devices on all of the above systems include:
Internal SCSI bus and most SCSI tapes, hard drives, and CD-ROMs
- Internal sound--enough to beep, anyway
+ Internal sound--enough to beep on some machines, anyway
Most basic NuBUS video cards (there have been some
problems with some 24-bit color cards)
Both internal serial ports
ADB keyboards and mice
+ Ethernet cards based on the Natl. Semiconductor 8390
+ (Asante, Apple, and a few others) [problems
+ reported on the Performa 600, though].
Some systems will boot and are usable from an external terminal
(serial tty or SL/IP):
- Mac IIsi
- Mac IIvx
+ LC III
+ Performa 550
possibly others
What isn't supported, but often asked about:
- Ethernet cards. There is a driver that is very close to working
- for a number of cards. Contributions are very welcome.
68040-based Macs. Work is in progress on getting a Quadra 700
running. This requires a new scsi driver and a new
ethernet driver.
+ PowerPC-based Macs. Work will begin on this, sometime soon.
+ It will be separate from this port, though. The PowerPC
+ is a much different processor.
Installation of base files:
Select the "Install" menu item from the "File" menu and install
- base10, netbsd, and any other packages you wish to install at
+ base11, netbsd, and any other packages you wish to install at
this time (see the contents section for information about what's
in each package). The installer will print out the filename of
each file as it is installed, and will take quite some time to
you saw.
If the system does come up, congratulations, you have successfully
-installed NetBSD 1.0. When you reboot into NetBSD, you should log
+installed NetBSD 1.1. When you reboot into NetBSD, you should log
in as "root" at the login prompt. There is no initial password, but
if you're using the machine in a networked environment, you should
create yourself an account and protect it and the "root" account with
good passwords.
-Some of the files in the NetBSD 1.0 distribution might need to be
+Some of the files in the NetBSD 1.1 distribution might need to be
tailored for your site. In particular, the /etc/sendmail.cf file will
almost definitely need to be adjusted, and other files in /etc will
probably need to be modified, as well. If you are unfamiliar with
-There is no upgrade to release 1.0 for the NetBSD/mac68k architecture.
-This is impractical as there is no good, standard point to provide an
-upgrade path from. It is hoped that there will be a good upgrade
-procedure for future releases.
+There is no upgrade to release 1.1 for the NetBSD/mac68k architecture.
+It is hoped that there will be a good upgrade procedure for future
+releases. Please feel free to volunteer to help replace these
+installation tools.
-NetBSD 1.0 is the first "real" release of NetBSD for the mac68k.
-Previous releases have been alpha or beta quality. There is still a
-lot of work to be done, but this should be a usable system for a number
-of people. Quite a few features are available: shared libraries, new
-file systems, binary compatibility with the other m68k ports for most
-binaries, SunOS compatibility, and numerous others.
+NetBSD 1.1 is the second "real" release of NetBSD for the mac68k.
+There is still a lot of work to be done and help is welcomed, but
+this should be a usable system for a number of people.
Installation is really only supported from the local Macintosh
hard drive or from an AppleShare volume. This means that you'll
need at least enough room for the largest file that you will have
-to install. This is the 6.2M base10 file. There has been talk
+to install. This is the 6.2M base11 file. There has been talk
of allowing an install from split files. If you have the time,
desire, and knowledge, please feel free to add that functionality.
the install utility must be in the same folder as the data files.
There will be two images of each file. One in "raw" Unix format
-and one in a binhex format. Therefore, base10 and base10.hqx both
-contain the same information, but base10.hqx has been encoded in
+and one in a binhex format. Therefore, base11 and base11.hqx both
+contain the same information, but base11.hqx has been encoded in
binhex format. Download the files; if necessary, decode them so
-you have all of the files as base10, etc10, etc. This can be
+you have all of the files as base11, etc11, etc. This can be
accomplished from the .hqx files by using _Stuffit Expander_ or
any one of a number of freeware and shareware Macintosh tools.
MacBSD Booter.
These three are compacted and in binhex form as mkfs.cpt.hqx,
-installer.1.0.cpt.hqx, and booter.1.4.cpt.hqx, respectively.
+installer.1.0.cpt.hqx, and booter.1.9.cpt.hqx, respectively.
Extract them as you would any other Macintosh applications. The
sources should be in the same place with "src" somewhere in the
./usr/lib/libedit.so.0.0
./usr/lib/libg++.so.2.0
./usr/lib/libgnumalloc.so.0.0
-./usr/lib/libi386.so.0.0
+./usr/lib/libi386.so.0.1
./usr/lib/libkvm.so.4.0
./usr/lib/libm.so.0.1
./usr/lib/libpcap.so.0.0
./usr/include/machine/exec.h
./usr/include/machine/float.h
./usr/include/machine/frame.h
+./usr/include/machine/freebsd_machdep.h
+./usr/include/machine/gdt.h
./usr/include/machine/ieeefp.h
./usr/include/machine/limits.h
./usr/include/machine/linux_machdep.h
./usr/lib/libtermcap_pic.a
./usr/lib/libutil_pic.a
./usr/lib/scrt0.o
+./usr/share/man/cat2/i386_get_ioperm.0
./usr/share/man/cat2/i386_get_ldt.0
+./usr/share/man/cat2/i386_iopl.0
+./usr/share/man/cat2/i386_set_ioperm.0
./usr/share/man/cat2/i386_set_ldt.0
-# $NetBSD: Make.crunch,v 1.2 1995/10/13 16:38:20 gwr Exp $
+# $NetBSD: Make.crunch,v 1.3 1995/11/21 21:18:48 gwr Exp $
#
# This is included by subdirectories building a crunched binary.
# Assume the following are already defined: TOP, CBIN
strip ${CBIN}
${CBIN}.mk ${CBIN}.cache ${CBIN}.c: ${CRUNCHCONF}
- crunchgen ${CRUNCHCONF}
+ crunchgen -D ${BSDSRCDIR} -L ${DESTDIR}/usr/lib ${CRUNCHCONF}
--- /dev/null
+#
+# $NetBSD: Make.static,v 1.1 1995/11/21 21:18:51 gwr Exp $
+#
+# This is logically appended to some other makefile, i.e.
+# using: make -f Makefile -f $(OUTDIR)/Make.static ...
+STRIP_CMD=strip
+
+${OUTDIR}/${PROG} : ${OBJS} ${LIBC} ${DPADD}
+ ${CC} -static ${LDFLAGS} -o ${OUTDIR}/${PROG} ${OBJS} ${LDADD}
+ ${STRIP_CMD} ${OUTDIR}/${PROG}
+
#!/bin/sh
-# $NetBSD: install.sh,v 1.2.2.1 1995/11/02 00:07:25 gwr Exp $
+# $NetBSD: install.sh,v 1.4 1995/11/21 21:18:53 gwr Exp $
#
# Copyright (c) 1995 Jason R. Thorpe.
# All rights reserved.
# In a perfect world, this would be a nice C program, with a reasonable
# user interface.
-VERSION=1.0A
+VERSION=1.1
+export VERSION # XXX needed in subshell
ROOTDISK="" # filled in below
-FILESYSTEMS="/tmp/filesystems" # used thoughout
+FILESYSTEMS="/tmp/.filesystems" # used thoughout
FQDN="" # domain name
trap "umount /tmp > /dev/null 2>&1" 0
-#
-# Functions...
-#
-
getresp() {
read resp
if [ "X$resp" = "X" ]; then
fi
}
+isin() {
+# test the first argument against the remaining ones, return succes on a match
+ _a=$1; shift
+ while [ $# != 0 ]; do
+ if [ "$_a" = "$1" ]; then return 0; fi
+ shift
+ done
+ return 1
+}
+
+rmel() {
+# remove first argument from list formed by the remaining arguments
+ _a=$1; shift
+ while [ $# != 0 ]; do
+ if [ "$_a" != "$1" ]; then
+ echo "$1";
+ fi
+ shift
+ done
+}
+
+twiddle() {
+# spin the propeller so we don't get bored
+ while : ; do
+ sleep 1; echo -n "/\b";
+ sleep 1; echo -n "-\b";
+ sleep 1; echo -n "\\\b";
+ sleep 1; echo -n "|\b";
+ done > /dev/tty & echo $!
+}
+
+#
+# machine dependent section
+#
+
+can_read_dev() {
+ dd if=/dev/$1 of=/dev/null count=1 > /dev/null 2>&1
+}
+
+# List of all disks supported by the miniroot:
+ALLDISKS="sd0 sd2 xd0 xd1 xy0 xy1"
+md_get_diskdevs() {
+ # return available disk devices
+ for dev in $ALLDISKS
+ do
+ can_read_dev r${dev}c && echo $dev
+ done
+}
+
+md_get_cddevs() {
+ # return available CD-ROM devices
+ for dev in cd0 cd1
+ do
+ can_read_dev r${dev}c && echo $dev
+ done
+}
+
+md_get_ifdevs() {
+ # return available network interfaces
+ for dev in le0 ie0 ie1
+ do
+ (ifconfig $dev >/dev/null 2>&1) && echo $dev
+ done
+}
+
+md_installboot() {
+ # $1 is the root disk
+ echo -n "Installing boot block..."
+ cd /usr/mdec
+ cp -p ./ufsboot /mnt/ufsboot
+ sync ; sleep 1 ; sync
+ ./installboot /mnt/ufsboot bootxx /dev/r${1}a
+ echo "done."
+}
+
+md_checkfordisklabel() {
+ # $1 is the disk to check
+ disklabel $1 > /dev/null 2> /tmp/checkfordisklabel
+ if grep "no disk label" /tmp/checkfordisklabel; then
+ rval="1"
+ elif grep "disk label corrupted" /tmp/checkfordisklabel; then
+ rval="2"
+ else
+ rval="0"
+ fi
+
+ rm -f /tmp/checkfordisklabel
+}
+
+md_labeldisk() {
+ # $1 is the disk to label
+ disklabel -e $1
+}
+
+# Note, while they might not seem machine-dependent, the
+# welcome banner and the punt message may contain information
+# and/or instructions specific to the type of machine.
+md_welcome_banner() {
+echo "
+Welcome to the NetBSD/sun3 ${VERSION} installation program.
+" ; cat << \__welcome_banner_1
+
+This program is designed to help you install NetBSD on your system in a
+simple and rational way. You'll be asked several questions, and it will
+be useful to have the installation notes and a calculator at hand.
+
+As with anything which modifies your disk's contents, this program can
+cause SIGNIFICANT data loss, and you are advised to make sure all your
+disks are backed up before beginning the installation process.
+
+Default answers are displyed in brackets after the questions.
+You can hit Control-C at any time to quit, but if you do so at a
+prompt, you may have to hit return. Also, quitting in the middle of
+installation may leave your system in an inconsistent state.
+
+__welcome_banner_1
+}
+
+md_not_going_to_install() {
+cat << \__not_going_to_install_1
+
+OK, then. Enter 'halt' or 'reboot' at the prompt,
+or proceed with manual installation commands.
+
+__not_going_to_install_1
+}
+
+md_congrats() {
+cat << \__congratulations_1
+
+CONGRATULATIONS! You have successfully installed NetBSD! To boot the
+installed system, enter 'reboot' at the command prompt.
+
+__congratulations_1
+}
+
+# Note: I don't use the MFS hack. Just remount root instead.
+md_remount() {
+ # Make sure root was remounted (creates /etc/fstab)
+ if [ ! -f /etc/fstab ]
+ then
+ # This is normally done by .profile
+ sh /.remount
+ fi
+}
+
+# end of machine dependent section
+
getrootdisk() {
cat << \__getrootdisk_1
-The installation program needs to know which disk to consider
-the root disk. Note the unit number may be different than
-the unit number you used in the standalone installation
-program.
+The installation program needs to know which disk will be
+the root disk of the system about to be installed.
Available disks are:
__getrootdisk_1
- dmesg | grep "^rd" | grep "slave"
- dmesg | grep "^sd" | grep "slave"
+ _DKDEVS=`md_get_diskdevs`
+ echo "$_DKDEVS"
echo ""
echo -n "Which disk is the root disk? "
getresp ""
- if dmesg | grep "^$resp " | grep "slave" > /dev/null ; then
+ if isin $resp $_DKDEVS ; then
ROOTDISK="$resp"
else
echo ""
fi
}
-checkfordisklabel() {
- disklabel -r $1 > /dev/null 2> /tmp/checkfordisklabel
- if grep "no disk label" /tmp/checkfordisklabel; then
- rval="1"
- elif grep "disk label corrupted" /tmp/checkfordisklabel; then
- rval="2"
- else
- rval="0"
- fi
-
- rm -f /tmp/checkfordisklabel
-}
-
labelmoredisks() {
cat << \__labelmoredisks_1
You may label the following disks:
__labelmoredisks_1
- dmesg | grep "^rd" | grep "slave" | grep -v "${ROOTDISK} "
- dmesg | grep "^sd" | grep "slave" | grep -v "${ROOTDISK} "
+ echo "$_DKDEVS"
echo ""
echo -n "Label which disk? [done] "
getresp "done"
case "$resp" in
- done)
+ "done")
;;
*)
- if dmesg | grep "^$resp " | grep "slave" \
- > /dev/null ; then
- # XXX CODE ME
- echo "Yup, it exists."
+ if echo "$_DKDEVS" | grep "^$resp" > /dev/null ; then
+ md_labeldisk $resp
else
echo ""
echo "The disk $resp does not exist."
# $1 - IP address
# $2 - symbolic name
- # Create an entry in the hosts table. If no host table
- # exists, create one. If the IP address already exists,
- # replace it's entry.
- if [ ! -f /tmp/hosts ]; then
- echo "127.0.0.1 localhost" > /tmp/hosts
- fi
+ # Create an entry in the hosts table.
+ # If the IP address already exists, replace it.
+ grep -v "^$1 " /etc/hosts > /tmp/hosts
+ echo "$1 $2 $2.$FQDN" >> /tmp/hosts
- if grep "^$1 " /tmp/hosts > /dev/null; then
- grep -v "^$1 " /tmp/hosts > /tmp/hosts.new
- mv /tmp/hosts.new /tmp/hosts
- fi
-
- echo "$1 $2 $2.$FQDN" >> /tmp/hosts
+ # Use it now.
+ cp /tmp/hosts /etc/hosts
}
addifconfig() {
__configurenetwork_1
- dmesg | grep "^le" | grep "ipl"
+ _IFS=`md_get_ifdevs`
+ echo $_IFS
echo ""
echo -n "Configure which interface? [done] "
getresp "done"
;;
*)
- if dmesg | grep "^$resp " | grep "^le" | grep "ipl" \
- > /dev/null ; then
+ if isin $resp $_IFS ; then
_interface_name=$resp
+ # Keep in the list in case it's misconfigured
+ # and the user want's to re-do it.
+
# Get IP address
resp="" # force one iteration
while [ "X${resp}" = X"" ]; do
# Get symbolic name
resp="" # force one iteration
while [ "X${resp}" = X"" ]; do
- echo -n "Symbolic name? "
+ echo -n "Symbolic (host) name? "
getresp ""
_interface_symname=$resp
done
fi
_ftp_file=`echo ${resp} | awk '{print $1}'`
- echo "get ${_ftp_file} |\"tar -zxvpf -\"" >> \
+ echo "get ${_ftp_file} |\"tar --unlink -zxvpf -\"" >> \
/tmp/ftp-script.sh
done
fi
# Extract file
- cat $_common_filename | (cd /mnt; tar -zxvpf -)
+ cat $_common_filename | (cd /mnt; tar --unlink -zxvpf -)
echo "Extraction complete."
}
# Get the cdrom device info
cat << \__install_cdrom_1
-The following SCSI disk or disk-like devices are installed on your system;
-please select the CD-ROM device containing the installation media:
+The following CD-ROM devices are installed on your system; please select
+the CD-ROM device containing the installation media:
__install_cdrom_1
- dmesg | grep "^sd" | grep "rev"
+ _CDDEVS=`md_get_cddevs`
+ echo "$_CDDEVS"
echo ""
echo -n "Which is the CD-ROM with the installation media? [abort] "
getresp "abort"
;;
*)
- if dmesg | grep "^$resp " | grep "slave" \
- > /dev/null ; then
+ if isin $resp $_CDDEVS ; then
_cdrom_drive=$resp
else
echo ""
1)
(
cd /mnt
- dd if=$TAPE | tar -zxvpf -
+ dd if=$TAPE | tar --unlink -zxvpf -
)
;;
2)
(
cd /mnt
- tar -zxvpf $TAPE
+ dd if=$TAPE | tar --unlink -xvpf -
)
;;
echo "Extraction complete."
}
+get_timezone() {
+cat << \__get_timezone_1
+
+Select a time zone:
+
+__get_timezone_1
+ ls /mnt/usr/share/zoneinfo # XXX
+ echo ""
+ if [ X"$TZ" = "X" ]; then
+ TZ=`ls -l /etc/timezone 2>/dev/null | awk -F/ '{print $NF}'`
+ fi
+ echo -n "What timezone are you in [$TZ]? "
+ getresp "$TZ"
+ case "$resp" in
+ "")
+ echo "Timezone defaults to GMT"
+ TZ="GMT"
+ ;;
+ *)
+ TZ="$resp"
+ ;;
+ esac
+ export TZ
+}
+
#
# End of functions.
# Begin working
#
-echo ""
-echo "Welcome to the NetBSD ${VERSION} installation program."
-cat << \__welcome_banner_1
-
-This program is designed to help you put NetBSD on your hard disk,
-in a simple and rational way. You'll be asked several questions,
-and it would probably be useful to have your disk's hardware
-manual, the installation notes, and a calculator handy.
-
-In particular, you will need to know some reasonably detailed
-information about your disk's geometry. This program can determine
-some limited information about certain specific types of HP-IB disks.
-If you have SCSI disks, however, prior knowledge of disk geometry
-is absolutely essential.
-
-As with anything which modifies your hard disk's contents, this
-program can cause SIGNIFICANT data loss, and you are advised
-to make sure your hard drive is backed up before beginning the
-installation process.
-
-Default answers are displyed in brackets after the questions.
-You can hit Control-C at any time to quit, but if you do so at a
-prompt, you may have to hit return. Also, quitting in the middle of
-installation may leave your system in an inconsistent state.
-
-__welcome_banner_1
+# Good {morning,afternoon,evening,night}.
+md_welcome_banner
echo -n "Proceed with installation? [n] "
getresp "n"
case "$resp" in
echo "Cool! Let's get to it..."
;;
*)
- cat << \__welcome_banner_2
-
-OK, then. Enter 'halt' at the prompt to halt the machine. Once the
-machine has halted, power-cycle the system to load new boot code.
-
-__welcome_banner_2
+ md_not_going_to_install
exit
;;
esac
-# Make sure root was remounted (creates /etc/fstab)
-if [ ! -f /etc/fstab ]
-then
- echo "Need to remount root read/write first."
- exit 1
-fi
-
-# Install the shadowed disktab file; lets us write to it for temporary
-# purposes without mounting the miniroot read-write.
-# XXX: I just go ahead and remount root. -gwr
-# XXX: cp /etc/disktab.shadow /tmp/disktab.shadow
+# Make our root read/write (or at least parts of it).
+md_remount
while [ "X${ROOTDISK}" = "X" ]; do
getrootdisk
# Make sure there's a disklabel there. If there isn't, puke after
# disklabel prints the error message.
-checkfordisklabel ${ROOTDISK}
-case $rval in
+md_checkfordisklabel ${ROOTDISK}
+case "$resp" in
1)
cat << \__disklabel_not_present_1
FATAL ERROR: There is no disklabel present on the root disk! You must
-label the disk with SYS_INST before continuing.
+label the disk using the RAMDISK kernel before continuing.
__disklabel_not_present_1
exit
cat << \__disklabel_corrupted_1
FATAL ERROR: The disklabel on the root disk is corrupted! You must
-re-label the disk with SYS_INST before continuing.
+re-label the disk using the RAMDISK kernel before continuing.
__disklabel_corrupted_1
exit
getresp "y"
case "$resp" in
y*|Y*)
- disklabel -W ${ROOTDISK}
disklabel -e ${ROOTDISK}
;;
disks on your system.
__disklabel_notice_2
+_DKDEVS=`rmel ${ROOTDISK} ${_DKDEVS}`
resp="X" # force at least one iteration
while [ "X$resp" != X"done" ]; do
labelmoredisks
You will now have the opportunity to enter filesystem information.
You will be prompted for device name and mount point (full path,
-including the prepending '/' character).
+including the leading '/' character).
Note that these do not have to be in any particular order. You will
be given the opportunity to edit the resulting 'fstab' file before
esac
# Loop though the file, place filesystems on each device.
-echo "Creating filesystems..."
-(
- while read line; do
- _device_name=`echo $line | awk '{print $1}'`
- newfs /dev/r${_device_name}
- echo ""
- done
-) < ${FILESYSTEMS}
+while read dev mnt
+do
+ echo -n "Create filesystem on $dev? [y] "
+ getresp "n" < /dev/tty
+ case "$resp" in
+ y*|Y*)
+ newfs /dev/r${dev}
+ ;;
+ *)
+ echo "skipped $dev"
+ ;;
+ esac
+done < ${FILESYSTEMS}
# Get network configuration information, and store it for placement in the
# root filesystem later.
fi
fi
+ echo -n "Enter IP address of primary nameserver: [none] "
+ getresp "none"
+ if [ "X${resp}" != X"none" ]; then
+ echo "domain $FQDN" > /tmp/resolv.conf
+ echo "nameserver $resp" >> /tmp/resolv.conf
+ echo "search $FQDN" >> /tmp/resolv.conf
+
+ echo -n "Would you like to use the nameserver now? [y] "
+ getresp "y"
+ case "$resp" in
+ y*|Y*)
+ cp /tmp/resolv.conf \
+ /etc/resolv.conf
+ ;;
+
+ *)
+ ;;
+ esac
+ fi
+
echo ""
echo "The host table is as follows:"
echo ""
- cat /tmp/hosts
+ cat /etc/hosts
echo ""
echo "You may want to edit the host table in the event that"
echo "you need to mount an NFS server."
getresp "n"
case "$resp" in
y*|Y*)
- vi /tmp/hosts
+ vi /etc/hosts
;;
*)
;;
esac
-# Now that the 'real' fstab is configured, we munge it into a 'shadow'
-# fstab which we'll use for mounting and unmounting all of the target
-# filesystems relative to /mnt. Mount all filesystems.
+# Now that the 'real' fstab is configured, create a temporary fstab
+# which we'll use for mounting and unmounting all of the target
+# filesystems relative to /mnt. Save the original (our root).
+[ -f /etc/fstab.save ] || cp /etc/fstab /etc/fstab.save
+cp /etc/fstab.save /etc/fstab
awk '{
if ($2 == "/")
printf("%s /mnt %s %s %s %s\n", $1, $3, $4, $5, $6)
else
printf("%s /mnt%s %s %s %s %s\n", $1, $2, $3, $4, $5, $6)
-}' < /tmp/fstab > /tmp/fstab.shadow
+}' < /tmp/fstab >> /etc/fstab
echo ""
# Must mount filesystems manually, one at a time, so we can make sure the
# mount points exist.
(
- while read line; do
- _dev=`echo $line | awk '{print $1}'`
- _mp=`echo $line | awk '{print $2}'`
- _fstype=`echo $line | awk '{print $3}'`
- _opt=`echo $line | awk '{print $4}'`
-
+ while read _dev _mp _fstype _opt junk
+ do
# If not the root filesystem, make sure the mount
# point is present.
- if [ "X{$_mp}" != X"/mnt" ]; then
+ if [ "X${_mp}" != X"/mnt" ]; then
mkdir -p $_mp
fi
# Mount the filesystem. If the mount fails, exit
# with an error condition to tell the outer
- # later to bail.
+ # layer to bail.
if ! mount -v -t $_fstype -o $_opt $_dev $_mp ; then
- # error message displated by mount
+ # error message displayed by mount
exit 1
fi
done
# Ask the user which media to load the distribution from.
cat << \__install_sets_1
-It is now time to extract the installation sets onto the hard disk.
-Make sure The sets are either on a local device (i.e. tape, CD-ROM) or on a
-network server.
+It is now time to extract the installation sets onto the disk.
+Make sure The sets are either on a local device (i.e. tape, CD-ROM)
+or on a network server.
__install_sets_1
-resp="" # force at least one iteration
-while [ "X${resp}" = X"" ]; do
- echo -n "Install from (f)tp, (t)ape, (C)D-ROM, or (N)FS? [f] "
- getresp "f"
+if [ -f /base.tar.gz ]; then
+ echo -n "Install from sets in the current root filesystem? [y] "
+ getresp "y"
case "$resp" in
- f*|F*)
- install_ftp
+ y*|Y*)
+ for _f in /*.tar.gz; do
+ echo -n "Install $_f ? [y]"
+ getresp "y"
+ case "$resp" in
+ y*|Y*)
+ cat $_f | (cd /mnt; tar --unlink -zxvpf -)
+ _yup="TRUE"
+ ;;
+ *)
+ ;;
+ esac
+ echo "Extraction complete."
+ done
;;
-
- t*|T*)
- install_tape
+ *)
+ _yup="FALSE"
;;
+ esac
+else
+ _yup="FALSE"
+fi
- c*|C*)
- install_cdrom
- ;;
+# Go on prodding for alternate locations
+resp="" # force at least one iteration
+while [ "X${resp}" = X"" ]; do
+ # If _yup is not FALSE, it means that we extracted sets above.
+ # If that's the case, bypass the menu the first time.
+ if [ X"$_yup" = X"FALSE" ]; then
+ echo -n "Install from (f)tp, (t)ape, (C)D-ROM, or (N)FS? [f] "
+ getresp "f"
+ case "$resp" in
+ f*|F*)
+ install_ftp
+ ;;
- n*|N*)
- install_nfs
- ;;
+ t*|T*)
+ install_tape
+ ;;
- *)
- echo "Invalid response: $resp"
- resp=""
- ;;
- esac
+ c*|C*)
+ install_cdrom
+ ;;
+
+ n*|N*)
+ install_nfs
+ ;;
+
+ *)
+ echo "Invalid response: $resp"
+ resp=""
+ ;;
+ esac
+ else
+ _yup="FALSE" # So we'll ask next time
+ fi
# Give the user the opportunity to extract more sets. They don't
# necessarily have to come from the same media.
esac
done
+# Get timezone info
+get_timezone
+
# Copy in configuration information and make devices in target root.
(
cd /tmp
- for file in fstab hostname.* hosts myname mygate; do
+ cp /etc/hosts hosts
+ for file in fstab hostname.* hosts myname mygate resolv.conf; do
if [ -f $file ]; then
- echo "Copying $file..."
+ echo -n "Copying $file..."
cp $file /mnt/etc/$file
+ echo "done."
fi
done
+ echo -n "Installing timezone link..."
+ rm -f /mnt/etc/localtime
+ ln -s /usr/share/zoneinfo/$TZ /mnt/etc/localtime
+ echo "done."
+
echo -n "Making devices..."
+ pid=`twiddle`
cd /mnt/dev
sh MAKEDEV all
+ kill $pid
echo "done."
- echo "Copying kernel..."
+ echo -n "Copying kernel..."
cp /netbsd /mnt/netbsd
+ echo "done."
+
+ md_installboot ${ROOTDISK}
)
# Unmount all filesystems and check their integrity.
-umount -a
-echo "Checking filesystem integrity..."
-fsck -pf
+echo -n "Syncing disks..."
+pid=`twiddle`
+sync; sleep 4; sync; sleep 2; sync; sleep 2
+kill $pid
+echo "done."
-# Install boot code on target disk.
-echo "Installing boot block..."
-disklabel -W ${ROOTDISK}
-disklabel -B ${ROOTDISK}
+echo "Unmounting filesystems..."
+umount -va
-cat << \__congratulations_1
-
-CONGRATULATIONS! You have successfully installed NetBSD on your hard disk!
-To boot the installed system, enter halt at the command prompt. Once the
-system has halted, power-cycle the machine in order to load new boot code.
-Make sure you boot from the disk.
+echo "Checking filesystem integrity..."
+fsck -pf
-__congratulations_1
+# Pat on the back.
+md_congrats
# ALL DONE!
-exit
+exit 0
#
-# $NetBSD: mini_bin.list,v 1.1.1.1 1995/10/08 23:07:48 gwr Exp $
+# $NetBSD: mini_bin.list,v 1.2 1995/11/21 21:18:56 gwr Exp $
#
# miniroot files from /bin:
COPY ${DESTDIR}/bin/cat bin
COPY ${DESTDIR}/bin/chmod bin
COPY ${DESTDIR}/bin/cp bin
-# COPY ${DESTDIR}/bin/csh bin
COPY ${DESTDIR}/bin/date bin
COPY ${DESTDIR}/bin/dd bin
COPY ${DESTDIR}/bin/df bin
COPY ${DESTDIR}/bin/echo bin
COPY ${DESTDIR}/bin/ed bin
COPY ${DESTDIR}/bin/expr bin
+COPY ${DESTDIR}/bin/hostname bin
COPY ${DESTDIR}/bin/kill bin
COPY ${DESTDIR}/bin/ln bin
COPY ${DESTDIR}/bin/ls bin
COPY ${DESTDIR}/bin/rmdir bin
COPY ${DESTDIR}/bin/sh bin
+COPY ${DESTDIR}/bin/sleep bin
COPY ${DESTDIR}/bin/stty bin
COPY ${DESTDIR}/bin/sync bin
#
-# $NetBSD: mini_sbin.list,v 1.1.1.1 1995/10/08 23:07:50 gwr Exp $
+# $NetBSD: mini_sbin.list,v 1.2 1995/11/21 21:18:57 gwr Exp $
#
# XXX - Need these? ping,
COPY ${DESTDIR}/sbin/mount_ffs sbin
LINK sbin/mount_ffs sbin/mount_ufs
+COPY ${DESTDIR}/sbin/mount_kernfs sbin
COPY ${DESTDIR}/sbin/mount_nfs sbin
COPY ${DESTDIR}/sbin/newfs sbin
COPY ${DESTDIR}/sbin/ping sbin
#
-# $NetBSD: mini_usr.conf,v 1.1.1.1 1995/10/08 23:07:50 gwr Exp $
+# $NetBSD: mini_usr.conf,v 1.2 1995/11/21 21:18:59 gwr Exp $
#
# common/mini_usr.conf
#
# A few related ones are thrown in to save space:
# chgrp, rcp
#
+# Many others were kept separate, somewhat arbitrarily,
+# but mostly things that are somewhat large, or that are
+# normally used separately, or have weird make rules...
-srcdirs /usr/src/bin /usr/src/sbin /usr/src/usr.bin /usr/src/usr.sbin
+srcdirs bin
+progs rcp
-progs chown chroot cksum cmp eeprom ftp more printf
-progs rcp rsh sed strings tftp tip update
+srcdirs usr.sbin
+progs bad144 chown chroot eeprom rdate update
-ln chown chgrp
+srcdirs usr.bin
+progs basename chflags cksum cmp cut ftp
+progs rsh sed strings tftp
-# These are linked -static so they are not needed here.
-# srcdirs /usr/src/gnu/usr.bin
-# progs gzip, tar
-# ln gzip gzcat gunzip
+ln chown chgrp
-libs -ltermcap
#
-# $NetBSD: mini_usr.list,v 1.1.1.1 1995/10/08 23:07:46 gwr Exp $
+# $NetBSD: mini_usr.list,v 1.2 1995/11/21 21:19:00 gwr Exp $
#
# copy the crunched binary, link to it, and kill it
# usr/sbin:
+LINK mini_usr usr/sbin/bad144
LINK mini_usr usr/sbin/chown
LINK mini_usr usr/sbin/chroot
LINK mini_usr usr/sbin/eeprom
+LINK mini_usr usr/sbin/rdate
LINK mini_usr usr/sbin/update
# usr/bin:
+LINK mini_usr usr/bin/basename
+LINK mini_usr usr/bin/chflags
LINK mini_usr usr/bin/chgrp
LINK mini_usr usr/bin/cksum
LINK mini_usr usr/bin/cmp
+LINK mini_usr usr/bin/cut
LINK mini_usr usr/bin/ftp
-LINK mini_usr usr/bin/more
-LINK mini_usr usr/bin/printf
LINK mini_usr usr/bin/rsh
LINK mini_usr usr/bin/sed
LINK mini_usr usr/bin/strings
LINK mini_usr usr/bin/tftp
-LINK mini_usr usr/bin/tip
SPECIAL rm mini_usr
-# These are linked statically, so just copy from ${DESTDIR}:
-
-COPY ${DESTDIR}/usr/bin/tar usr/bin
-COPY ${DESTDIR}/usr/bin/gzip usr/bin
-LINK usr/bin/gzip usr/bin/gunzip
-LINK usr/bin/gzip usr/bin/gzcat
-
--- /dev/null
+#
+# $NetBSD: mini_xx.list,v 1.1 1995/11/21 21:19:01 gwr Exp $
+# Build -static versions of some programs.
+#
+
+# These were re-linked with -static locally:
+
+COPY ${OBJDIR}/awk usr/bin
+
+COPY ${OBJDIR}/grep usr/bin
+LINK usr/bin/grep usr/bin/egrep
+LINK usr/bin/grep usr/bin/fgrep
+
+COPY ${OBJDIR}/more usr/bin
+
+COPY ${OBJDIR}/tip usr/bin
+
+COPY ${OBJDIR}/vi usr/bin
+
+# These are normally -static so just copy:
+
+COPY ${DESTDIR}/usr/bin/tar usr/bin
+
+COPY ${DESTDIR}/usr/bin/gzip usr/bin
+LINK usr/bin/gzip usr/bin/gunzip
+LINK usr/bin/gzip usr/bin/gzcat
+
--- /dev/null
+#
+# $NetBSD: mini_xx.mk,v 1.1 1995/11/21 21:19:04 gwr Exp $
+# Hacks for re-linking some programs -static
+#
+
+MINI_XX = awk grep more tip vi
+mini_xx : ${MINI_XX}
+
+clean_xx:
+ -rm -f mini_xx ${MINI_XX}
+
+awk : FORCE
+ cd ${BSDSRCDIR}/gnu/usr.bin/gawk ;\
+ $(MAKE) -f Makefile -f ${TOP}/common/Make.static \
+ OUTDIR=${.CURDIR} ${.CURDIR}/awk
+
+grep : FORCE
+ cd ${BSDSRCDIR}/gnu/usr.bin/grep ;\
+ $(MAKE) -f Makefile -f ${TOP}/common/Make.static \
+ OUTDIR=${.CURDIR} ${.CURDIR}/grep
+
+more : FORCE
+ cd ${BSDSRCDIR}/usr.bin/more ;\
+ $(MAKE) -f Makefile -f ${TOP}/common/Make.static \
+ OUTDIR=${.CURDIR} ${.CURDIR}/more
+
+tip : FORCE
+ cd ${BSDSRCDIR}/usr.bin/tip ;\
+ $(MAKE) -f Makefile -f ${TOP}/common/Make.static \
+ OUTDIR=${.CURDIR} ${.CURDIR}/tip
+
+vi : FORCE
+ cd ${BSDSRCDIR}/usr.bin/vi/common ;\
+ $(MAKE) -f Makefile -f ${TOP}/common/Make.static \
+ OUTDIR=${.CURDIR} ${.CURDIR}/vi
+
+FORCE:
-# $NetBSD: miniroot.list,v 1.1.1.1 1995/10/08 23:07:48 gwr Exp $
+# $NetBSD: miniroot.list,v 1.2 1995/11/21 21:19:05 gwr Exp $
+
+# These are scripts:
+COPY ${DESTDIR}/usr/bin/false bin
+COPY ${DESTDIR}/usr/bin/true bin
# From usr/mdec:
COPY ${DESTDIR}/usr/mdec/bootxx usr/mdec
COPY ${DESTDIR}/usr/mdec/installboot usr/mdec
COPY ${DESTDIR}/usr/mdec/netboot usr/mdec
+COPY ${DESTDIR}/usr/mdec/tapeboot usr/mdec
COPY ${DESTDIR}/usr/mdec/ufsboot usr/mdec
LINK usr/mdec/ufsboot ufsboot
-# XXX - How to do installboot?
# various files that we need in /etc for the install
COPY ${DESTDIR}/etc/disktab etc
COPY ${DESTDIR}/etc/group etc
+COPY ${DESTDIR}/etc/hosts etc
COPY ${DESTDIR}/etc/master.passwd etc
COPY ${DESTDIR}/etc/passwd etc
COPY ${DESTDIR}/etc/protocols etc
SPECIAL /bin/rm dev/MAKEDEV
SPECIAL mkfifo dev/pipe
-# and the common installation tools
-COPY ${TOPDIR}/common/dot.cmnutils .cmnutils
-
-# the disktab explanation file (XXX need this?)
-# COPY ${TOPDIR}/common/mr.disktab etc/disktab.preinstall
-
# and the miniroot installation tools
-COPY ${TOPDIR}/common/mr.instutils .instutils
COPY ${TOPDIR}/common/mr.profile .profile
+COPY ${TOPDIR}/common/mr.remount .remount
COPY ${TOPDIR}/common/mr.termcap usr/share/misc/termcap
# and the "install" command
#
-# $NetBSD: miniroot.tree,v 1.1.1.1 1995/10/08 23:07:47 gwr Exp $
+# $NetBSD: miniroot.tree,v 1.2 1995/11/21 21:19:07 gwr Exp $
#
/set type=dir uname=root gname=wheel mode=0755
# ./usr
..
+
+# ./var
+var
+
+# ./var/tmp
+tmp mode=01777
+
+# ./var/tmp/vi.recover
+vi.recover mode=01777
+# ./var/tmp/vi.recover
+..
+
+# ./var/tmp
+..
+
+# ./var
+..
#
-# $NetBSD: mr.profile,v 1.1.1.1 1995/10/08 23:07:47 gwr Exp $
+# $NetBSD: mr.profile,v 1.2 1995/11/21 21:19:08 gwr Exp $
#
+# Copyright (c) 1995 Jason R. Thorpe
# Copyright (c) 1994 Christopher G. Demetriou
# All rights reserved.
#
TERM=ansi
export TERM
+umask 022
+
# set up some sane defaults
-echo 'erase ^?, werase ^H, kill ^U, intr ^C'
-stty newcrt werase '^H' intr '^C' kill '^U' erase '^?'
-echo ''
+echo intr '^C' kill '^U' erase '^?' werase '^W' newcrt
+stty intr '^C' kill '^U' erase '^?' werase '^W' newcrt
-# start running update, so that installed software is written as it goes.
+# run update, so that installed software is written as it goes.
update
-# pull in the function definitions that people will use from the shell prompt.
-. /.cmnutils
-. /.instutils
+# get the terminal type?
+# (nah, ansi is good enough)
+
+# remount root
+sh /.remount
# run the installation script.
-umask 022
-install
+echo 'To install NetBSD, enter the command: install'
+echo 'Otherwise, enter the command: halt'
+# /install XXX - Not yet...
+
The easiest is loading from tape, which is done as follows:
mt -f /dev/nrst0 rewind
- mt -f /dev/nrst0 fsf 1
- dd bs=16k if=/dev/nrst0 of=/dev/rsd0b
+ mt -f /dev/nrst0 fsf 2
+ dd bs=32k if=/dev/nrst0 of=/dev/rsd0b
(For help with other methods, please see the install notes.)
To reboot using the swap partition, first use "halt",
then at the PROM monitor prompt use a command like:
- b sd(0,0,1)netbsd -s
- ^-- 1 selects the swap partition
+ b sd(,,1) -s
To view this message again, type: cat /.welcome
#
-# $NetBSD: rd_bin.conf,v 1.1.1.1 1995/10/08 23:07:47 gwr Exp $
+# $NetBSD: rd_bin.conf,v 1.2 1995/11/21 21:19:10 gwr Exp $
#
# common/rd_bin.conf - unified binary for the ramdisk.
#
# Here are all the programs, ordered by source location:
# Special programs used to save space...
-#srcdirs /usr/src/distrib/utils
-srcdirs ../../utils
+srcdirs distrib/utils
progs init_s ssh tls
ln init_s init oinit
ln ssh sh
ln x_dd dd
ln x_ifconfig ifconfig
-srcdirs /usr/src/sbin
+srcdirs sbin
progs edlabel mknod mount
progs mount_cd9660 mount_ffs mount_nfs
progs reboot umount
ln mount_cd9660 cd9660
ln reboot halt
-srcdirs /usr/src/bin
+srcdirs bin
progs cat echo ln mkdir mt mv pwd sync
-srcdirs /usr/src/usr.bin
+srcdirs usr.bin
progs rsh tftp
-# srcdirs /usr/src/usr.sbin
+# srcdirs usr.sbin
-# srcdirs /usr/src/gnu/usr.bin
+# srcdirs gnu/usr.bin
# progs cpio, gzip, tar
# ln gzip gzcat gunzip
-# $NetBSD: Makefile,v 1.2 1995/10/13 16:46:47 gwr Exp $
+# $NetBSD: Makefile,v 1.3 1995/11/21 21:19:12 gwr Exp $
TOP= ${.CURDIR}/..
LISTS= ${TOP}/common/mini_sbin.list \
${TOP}/common/mini_bin.list \
${TOP}/common/${CBIN}.list \
+ ${TOP}/common/mini_xx.list \
${TOP}/common/${IMAGE}.list
-MOUNT_POINT= /mnt
-DISKTYPE= miniroot
-BDEV= /dev/sd2b
-CDEV= /dev/rsd2b
-
KERNEL=${SRCSYSDIR}/arch/sun3/compile/GENERIC/netbsd
-# These are all the parameters for the miniroot: (6MB)
-NBLKS= 12288
-# old format, minfree, opt, b/i trks, sects, cpg
+MOUNT_POINT= /mnt
+#BDEV= /dev/sd2b
+#CDEV= /dev/rsd2b
+BDEV= /dev/sd0d
+CDEV= /dev/rsd0d
+
+# These are all the parameters for the miniroot: (8MB)
+DISKTYPE= miniroot
+NBLKS= 16384
+# old format, minfree, opt, b/i trks, sects, cpg
NEWFSARGS= -O -m 0 -o space -i 8192 -t 8 -u 32 -c 16
-${IMAGE}.fs: ${CBIN} do_mount do_files do_bootxx do_kernel do_umount
- dd if=${CDEV} of=$@ bs=64b count=`expr ${NBLKS} / 64`
+CLEANFILES= ${IMAGE}.gz
-# Only do these for the miniroot, not the ramdisk.
-do_bootxx:
+${IMAGE}.gz: ${TREE} ${LISTS} ${CBIN} mini_xx
+ -newfs ${NEWFSARGS} -s ${NBLKS} ${CDEV} ${DISKTYPE}
+ mount ${BDEV} ${MOUNT_POINT}
+ mtree -def ${TREE} -p ${MOUNT_POINT}/ -u
+ TOPDIR=${TOP} CURDIR=${.CURDIR} \
+ OBJDIR=${.OBJDIR} TARGDIR=${MOUNT_POINT} \
+ sh ${TOP}/common/RunList.sh ${LISTS}
sync ; sleep 1 ; sync
cd ${MOUNT_POINT} ;\
usr/mdec/installboot -v ufsboot usr/mdec/bootxx ${CDEV}
-
-# Copy the generic kernel
-do_kernel:
- cp -p ${KERNEL} ${MOUNT_POINT}/netbsd
+ cp ${KERNEL} ${MOUNT_POINT}/netbsd
+ sync
+ @echo ""
+ @df -i ${MOUNT_POINT}
+ @echo ""
+ -umount ${MOUNT_POINT}
+ dd if=${CDEV} bs=16b count=`expr ${NBLKS} / 16` |\
+ gzip > ${IMAGE}.tmp
+ -mv -f ${IMAGE}.tmp ${IMAGE}.gz
# Do not delete this if I change my mind and kill make...
-.PRECIOUS: ${IMAGE}.fs
-
-# Rules used making ${IMAGE}.fs (do_*)
-.include "${TOP}/common/Make.fsimage"
+.PRECIOUS: ${IMAGE}.gz
# Rules for making ${CBIN} ...
.include "${TOP}/common/Make.crunch"
-clean cleandir:
+clean cleandir: clean_xx
-rm -f a.out core *.core *.o
-rm -f ${CLEANFILES}
# Standard rules needed by the above...
.include <bsd.obj.mk>
+
+# Hacks for re-linking some program -static
+.include "${TOP}/common/mini_xx.mk"
-# $NetBSD: Makefile,v 1.2 1995/10/13 16:51:30 gwr Exp $
+# $NetBSD: Makefile,v 1.3 1995/11/21 21:19:14 gwr Exp $
TOP= ${.CURDIR}/..
LISTS= ${TOP}/common/${CBIN}.list \
${TOP}/common/${IMAGE}.list
+KERNEL=${SRCSYSDIR}/arch/sun3/compile/RAMDISK/netbsd
+
MOUNT_POINT= /mnt
-DISKTYPE= rdroot
BDEV= /dev/rd0
-CDEV?= /dev/rd0
-
-KERNEL=${SRCSYSDIR}/arch/sun3/compile/RAMDISK/netbsd
+CDEV= /dev/rd0
# These are all the parameters for the root fs: (256K)
+DISKTYPE= rdroot
NBLKS= 512
-# args: old fmt, minfree, opt, b/i trks, sects, cpg
+# old format, minfree, opt, b/i trks, sects, cpg
NEWFSARGS= -O -m 0 -o space -i 2048 -t 2 -u 16 -c 16
-CLEANFILES= netbsd-rd rdsetroot
+CLEANFILES= netbsd-rd rdsetroot ${IMAGE}.fs
netbsd-rd : rdsetroot ${IMAGE}.fs
cp ${KERNEL} netbsd-tmp
rdsetroot: ${TOP}/common/rdsetroot.c
$(CC) -o $@ -DDEBUG ${TOP}/common/rdsetroot.c
-${IMAGE}.fs: ${CBIN} do_mount do_files do_umount
+${IMAGE}.fs: ${TREE} ${LISTS} ${CBIN}
+ -newfs ${NEWFSARGS} -s ${NBLKS} ${CDEV} ${DISKTYPE}
+ mount ${BDEV} ${MOUNT_POINT}
+ mtree -def ${TREE} -p ${MOUNT_POINT}/ -u
+ TOPDIR=${TOP} CURDIR=${.CURDIR} \
+ OBJDIR=${.OBJDIR} TARGDIR=${MOUNT_POINT} \
+ sh ${TOP}/common/RunList.sh ${LISTS}
+ sync
+ @echo ""
+ @df -i ${MOUNT_POINT}
+ @echo ""
+ -umount ${MOUNT_POINT}
dd if=${CDEV} of=$@ count=${NBLKS}
# Do not delete this if I change my mind and kill make...
.PRECIOUS: ${IMAGE}.fs
-# Rules used making ${IMAGE}.fs (do_*)
-.include "${TOP}/common/Make.fsimage"
-
# Rules for making ${CBIN} ...
.include "${TOP}/common/Make.crunch"
+# This is listed in rd_bin.conf but is built here.
${CBIN} : libhack.o
# Use stubs to eliminate some large stuff from libc
-# $NetBSD: Makefile.inc,v 1.2 1995/10/13 18:10:07 gwr Exp $
+# $NetBSD: Makefile.inc,v 1.2.4.1 1995/11/21 21:26:41 gwr Exp $
# utils one might want in a crunched binary
BSDSRCDIR?= /usr/src
LDSTATIC= -static
-install:
+install: .NOTMAIN
@echo "install not expected"
#
-# $NetBSD: ttys,v 1.1.1.1 1995/03/30 05:44:08 leo Exp $
+# $NetBSD: ttys,v 1.1.1.1.2.1 1995/11/21 07:21:35 leo Exp $
#
# from: @(#)ttys 5.1 (Berkeley) 4/17/89
#
#
# If the console is marked insecure, single-user requires
# the root password.
-console "/usr/libexec/getty Pc" vt200 off secure
-ttye0 "/usr/libexec/getty Pc" vt200 on secure # ite0 console
-ttye1 "/usr/libexec/getty Pc" vt200 on secure # ite1
+console "/usr/libexec/getty Pc" vt220 off secure
+ttye0 "/usr/libexec/getty Pc" vt220 on secure # ite0 console
+ttye1 "/usr/libexec/getty Pc" vt220 on secure # ite1
ttyp0 none network
ttyp1 none network
ttyp2 none network
# SUCH DAMAGE.
#
# @(#)MAKEDEV 5.5 (Berkeley) 5/28/91
-# $Id: MAKEDEV,v 1.1.1.1 1995/10/18 08:38:02 deraadt Exp $
+# $Id: MAKEDEV,v 1.2 1995/11/23 15:59:42 deraadt Exp $
#
# Device "make" file. Valid arguments:
# std standard devices
st*)
name=st; blk=11; chr=18;
- case $unit in
- 0|1|2|3) offset=`expr $unit \* 16`;;
- *) echo bad unit for $name in: $arg;;
- esac
+ offset=`expr $unit \* 16`;
mk r$name$unit c $chr `expr $offset + 0`
mk nr$name$unit c $chr `expr $offset + 1`
mk er$name$unit c $chr `expr $offset + 2`
#
-# $NetBSD: disktab,v 1.2 1995/10/08 23:26:03 gwr Exp $
+# $NetBSD: disktab,v 1.2.2.1 1995/11/21 21:03:50 gwr Exp $
#
# Disk geometry and partition layout tables.
# Key:
:ta=4.4BSD:oa#0:pa#512:\
:ob#0:pb#0:oc#0:pc#512:
miniroot|Installation root-on-swap FS image:\
- :ty=simulated:se#512:ns#32:nt#8:nc#48:\
- :ta=4.4BSD:oa#0:pa#12288:\
- :ob#0:pb#0:oc#0:pc#12288:
+ :ty=simulated:se#512:ns#32:nt#8:nc#64:\
+ :ta=4.4BSD:oa#0:pa#16384:\
+ :ob#0:pb#0:oc#0:pc#16384:
-/dev/sd0a / ufs rw 1 1
+/dev/sd0a / ffs rw 1 1
/dev/sd0b none swap sw 0 0
-/dev/sd0g /usr ufs rw 1 2
+/dev/sd0g /usr ffs rw 1 2
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- $Id: i386b-nat.c,v 1.2 1995/11/20 09:21:12 deraadt Exp $
+ $Id: i386b-nat.c,v 1.3 1995/11/23 15:56:20 deraadt Exp $
*/
#include <sys/types.h>
#include "defs.h"
#include "inferior.h"
-int tregmap[] = {tEAX, tECX, tEDX, tEBX, tESP, tEBP, tESI, tEDI,
- tEIP, tEFLAGS, tCS, tSS, tDS, tES};
-
void
fetch_inferior_registers (regno)
int regno;
ptrace (PT_GETREGS, inferior_pid,
(PTRACE_ARG3_TYPE) &inferior_registers, 0);
- memcpy (®isters[REGISTER_BYTE (0)], &inferior_registers, NUM_REGS * 4);
+ memcpy (®isters[REGISTER_BYTE (0)], &inferior_registers, 4*NUM_REGS);
registers_fetched ();
}
{
struct reg inferior_registers;
- memcpy (&inferior_registers, ®isters[REGISTER_BYTE (0)], NUM_REGS * 4);
+ memcpy (&inferior_registers, ®isters[REGISTER_BYTE (0)], 4*NUM_REGS);
ptrace (PT_SETREGS, inferior_pid,
(PTRACE_ARG3_TYPE) &inferior_registers, 0);
if (target_read_memory(pcb->pcb_tss.tss_esp+4, regs, sizeof regs, 0))
error("Cannot read ebx, esi, and edi.");
for (i = 0, regno = 0; regno < 3; regno++)
- supply_register(regno, &i);
- supply_register(3, ®s[2]);
- supply_register(4, &pcb->pcb_tss.tss_esp);
- supply_register(5, &pcb->pcb_tss.tss_ebp);
- supply_register(6, ®s[1]);
- supply_register(7, ®s[0]);
- supply_register(8, ®s[3]);
+ supply_register(regno, (char *)&i);
+ supply_register(3, (char *)®s[2]);
+ supply_register(4, (char *)&pcb->pcb_tss.tss_esp);
+ supply_register(5, (char *)&pcb->pcb_tss.tss_ebp);
+ supply_register(6, (char *)®s[1]);
+ supply_register(7, (char *)®s[0]);
+ supply_register(8, (char *)®s[3]);
for (i = 0, regno = 9; regno < 10; regno++)
- supply_register(regno, &i);
+ supply_register(regno, (char *)&i);
#if 0
i = 0x08;
- supply_register(10, &i);
+ supply_register(10, (char *)&i);
i = 0x10;
- supply_register(11, &i);
+ supply_register(11, (char *)&i);
#endif
/* XXX 80387 registers? */
}
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- $Id: nm.h,v 1.1.1.1 1995/10/18 08:40:06 deraadt Exp $
+ $Id: nm.h,v 1.2 1995/11/23 15:56:21 deraadt Exp $
*/
#ifndef NM_I386BSD_H
to get the offset in the core file of the register values. */
#define KERNEL_U_ADDR USRSTACK
-#define REGISTER_U_ADDR(addr, blockend, regno) \
-{ \
- extern int tregmap[]; \
- addr = blockend + 4 * tregmap[regno]; \
-}
-
#endif /* NM_I386BSD_H */
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- $Id: tm.h,v 1.1.1.1 1995/10/18 08:40:06 deraadt Exp $
+ $Id: tm.h,v 1.2 1995/11/23 15:56:22 deraadt Exp $
*/
/* Override number of expected traps from sysv. */
/* Shared library code */
#include "solib.h"
-/* We can't yet read %fs and %gs. */
-#undef NUM_REGS
-#define NUM_REGS 14
-
/* We define our own fetch and store methods. */
#define FETCH_INFERIOR_REGISTERS