diff --git a/distrib/prep/Makefile b/distrib/prep/Makefile new file mode 100644 index 000000000000..e93b21a8e51e --- /dev/null +++ b/distrib/prep/Makefile @@ -0,0 +1,7 @@ +# $NetBSD: Makefile,v 1.1 2001/01/16 16:54:00 nonaka Exp $ + +SUBDIR= floppies + +TARGETS+= release + +.include diff --git a/distrib/prep/floppies/Makefile b/distrib/prep/floppies/Makefile new file mode 100644 index 000000000000..1743ddee5c42 --- /dev/null +++ b/distrib/prep/floppies/Makefile @@ -0,0 +1,11 @@ +# $NetBSD: Makefile,v 1.1 2001/01/16 16:53:59 nonaka Exp $ + +SUBDIR= ramdisk +SUBDIR+= kernel-generic +SUBDIR+= kernel-ramdisk +SUBDIR+= bootfloppy.generic bootfloppy_com0.generic +SUBDIR+= bootfloppy.sysinst bootfloppy_com0.sysinst + +TARGETS+= release + +.include diff --git a/distrib/prep/floppies/Makefile.inc b/distrib/prep/floppies/Makefile.inc new file mode 100644 index 000000000000..f07b923ee04d --- /dev/null +++ b/distrib/prep/floppies/Makefile.inc @@ -0,0 +1,8 @@ +# $NetBSD: Makefile.inc,v 1.1 2001/01/16 16:53:59 nonaka Exp $ + +.include "../../../Makefile.inc" + +# REV is revision without dots, as in "15Q" +# VER is revision with dots, as in "1.5Q" +REV!=sh ${KERNSRCDIR}/conf/osrelease.sh -s +VER!=sh ${KERNSRCDIR}/conf/osrelease.sh diff --git a/distrib/prep/floppies/bootfloppy-common/Makefile.inc b/distrib/prep/floppies/bootfloppy-common/Makefile.inc new file mode 100644 index 000000000000..c7535ffeb790 --- /dev/null +++ b/distrib/prep/floppies/bootfloppy-common/Makefile.inc @@ -0,0 +1,36 @@ +# $NetBSD: Makefile.inc,v 1.1 2001/01/16 16:53:58 nonaka Exp $ + +TOP= ${.CURDIR}/.. + +.include "${TOP}/Makefile.inc" +.include + +IMAGE?= boot.fs +KERNDIR?= cd ${.CURDIR}/../kernel-ramdisk && ${PRINTOBJDIR} +KERN?= ${KERNDIR}/netbsd.INSTALL.gz + +MDEC?= ${DESTDIR}/usr/mdec +MKBOOTIMAGE?= ${MDEC}/mkbootimage +BOOTLOADER?= ${MDEC}/boot_com0 +MDSETIMAGE?= mdsetimage + +realall: ${IMAGE} + +${IMAGE}: ${KERN} + ${MKBOOTIMAGE} ${BOOTLOADER} ${.TARGET} ${KERN} + +.ifndef RELEASEDIR +release: + @echo set RELEASEDIR first! + @false +.else +release: + -mkdir -p ${RELEASEDIR}/installation/floppy + cp -p ${IMAGE} ${RELEASEDIR}/installation/floppy + gzip -9c ${IMAGE} > ${RELEASEDIR}/installation/floppy/${IMAGE}.gz +.endif + +clean cleandir distclean: + rm -f *.core ${IMAGE} ${CLEANFILES} + +.include diff --git a/distrib/prep/floppies/bootfloppy.generic/Makefile b/distrib/prep/floppies/bootfloppy.generic/Makefile new file mode 100644 index 000000000000..b9ad4949e6c3 --- /dev/null +++ b/distrib/prep/floppies/bootfloppy.generic/Makefile @@ -0,0 +1,10 @@ +# $NetBSD: Makefile,v 1.1 2001/01/16 16:53:58 nonaka Exp $ + +IMAGE= generic.fs +BOOTLOADER= ${MDEC}/boot + +.include +KERNDIR!= cd ${.CURDIR}/../kernel-generic && ${PRINTOBJDIR} +KERN= ${KERNDIR}/netbsd.GENERIC.gz + +.include "../bootfloppy-common/Makefile.inc" diff --git a/distrib/prep/floppies/bootfloppy.sysinst/Makefile b/distrib/prep/floppies/bootfloppy.sysinst/Makefile new file mode 100644 index 000000000000..af37aec0d691 --- /dev/null +++ b/distrib/prep/floppies/bootfloppy.sysinst/Makefile @@ -0,0 +1,10 @@ +# $NetBSD: Makefile,v 1.1 2001/01/16 16:54:00 nonaka Exp $ + +IMAGE= sysinst.fs +BOOTLOADER= ${MDEC}/boot + +.include +KERNDIR!= cd ${.CURDIR}/../kernel-ramdisk && ${PRINTOBJDIR} +KERN= ${KERNDIR}/netbsd.INSTALL.gz + +.include "../bootfloppy-common/Makefile.inc" diff --git a/distrib/prep/floppies/bootfloppy_com0.generic/Makefile b/distrib/prep/floppies/bootfloppy_com0.generic/Makefile new file mode 100644 index 000000000000..9ae20ba3a056 --- /dev/null +++ b/distrib/prep/floppies/bootfloppy_com0.generic/Makefile @@ -0,0 +1,10 @@ +# $NetBSD: Makefile,v 1.1 2001/01/16 16:54:00 nonaka Exp $ + +IMAGE= generic_com0.fs +BOOTLOADER= ${MDEC}/boot_com0 + +.include +KERNDIR!= cd ${.CURDIR}/../kernel-generic && ${PRINTOBJDIR} +KERN= ${KERNDIR}/netbsd.GENERIC.gz + +.include "../bootfloppy-common/Makefile.inc" diff --git a/distrib/prep/floppies/bootfloppy_com0.sysinst/Makefile b/distrib/prep/floppies/bootfloppy_com0.sysinst/Makefile new file mode 100644 index 000000000000..b2b617997fb3 --- /dev/null +++ b/distrib/prep/floppies/bootfloppy_com0.sysinst/Makefile @@ -0,0 +1,10 @@ +# $NetBSD: Makefile,v 1.1 2001/01/16 16:54:00 nonaka Exp $ + +IMAGE= sysinst_com0.fs +BOOTLOADER= ${MDEC}/boot_com0 + +.include +KERNDIR!= cd ${.CURDIR}/../kernel-ramdisk && ${PRINTOBJDIR} +KERN= ${KERNDIR}/netbsd.INSTALL.gz + +.include "../bootfloppy-common/Makefile.inc" diff --git a/distrib/prep/floppies/kernel-generic/Makefile b/distrib/prep/floppies/kernel-generic/Makefile new file mode 100644 index 000000000000..9e4ccd76c502 --- /dev/null +++ b/distrib/prep/floppies/kernel-generic/Makefile @@ -0,0 +1,34 @@ +# $NetBSD: Makefile,v 1.1 2001/01/16 16:54:00 nonaka Exp $ + +TOP= ${.CURDIR}/.. + +.include "${TOP}/Makefile.inc" +.include +.include + +KERN= ${KERNOBJDIR}/GENERIC/netbsd +KERNEL= netbsd.GENERIC.gz + +CLEANFILES+= ${KERNEL} netbsd.tmp netbsd.tmp.gz + +all: ${KERNEL} + +${KERNEL}: ${KERN} + cp ${KERN} netbsd.tmp + gzip -9 netbsd.tmp + mv netbsd.tmp.gz ${.TARGET} + +.ifndef RELEASEDIR +release: + @echo set RELEASEDIR first! + @false +.else +release: + -mkdir -p ${RELEASEDIR}/binary/kernel + cp -p ${KERNEL} ${RELEASEDIR}/binary/kernel +.endif + +clean cleandir distclean: + rm -f *.core ${CLEANFILES} + +.include diff --git a/distrib/prep/floppies/kernel-ramdisk/Makefile b/distrib/prep/floppies/kernel-ramdisk/Makefile new file mode 100644 index 000000000000..c945339b0d5b --- /dev/null +++ b/distrib/prep/floppies/kernel-ramdisk/Makefile @@ -0,0 +1,37 @@ +# $NetBSD: Makefile,v 1.1 2001/01/16 16:53:59 nonaka Exp $ + +TOP= ${.CURDIR}/.. + +.include "${TOP}/Makefile.inc" +.include +.include + +KERN= ${KERNOBJDIR}/INSTALL/netbsd +RAMDISKDIR!= cd ${.CURDIR}/../ramdisk && ${PRINTOBJDIR} +RAMDISK= ${RAMDISKDIR}/ramdisk.fs +KERNEL= netbsd.INSTALL.gz + +CLEANFILES+= ${KERNEL} netbsd.tmp netbsd.tmp.gz + +all: ${KERNEL} + +${KERNEL}: ${KERN} ${RAMDISK} + cp ${KERN} netbsd.tmp + mdsetimage -v netbsd.tmp ${RAMDISK} + gzip -9 netbsd.tmp + mv netbsd.tmp.gz ${.TARGET} + +.ifndef RELEASEDIR +release: + @echo set RELEASEDIR first! + @false +.else +release: + -mkdir -p ${RELEASEDIR}/binary/kernel + cp -p ${KERNEL} ${RELEASEDIR}/binary/kernel +.endif + +clean cleandir distclean: + rm -f *.core ${CLEANFILES} + +.include diff --git a/distrib/prep/floppies/list2sh.awk b/distrib/prep/floppies/list2sh.awk new file mode 100644 index 000000000000..d3c8396b97a8 --- /dev/null +++ b/distrib/prep/floppies/list2sh.awk @@ -0,0 +1,55 @@ +# $NetBSD: list2sh.awk,v 1.1 2001/01/16 16:53:59 nonaka Exp $ + +BEGIN { + printf("cd ${CURDIR}\n"); + printf("\n"); +} +/^$/ || /^#/ { + print $0; + next; +} +$1 == "COPY" { + printf("echo '%s'\n", $0); + printf("rm -f ${TARGDIR}/%s\n", $3); + printf("cp %s ${TARGDIR}/%s\n", $2, $3); + next; +} +$1 == "LINK" { + printf("echo '%s'\n", $0); + printf("rm -f ${TARGDIR}/%s\n", $3); + printf("(cd ${TARGDIR}; ln %s %s)\n", $2, $3); + next; +} +$1 == "SYMLINK" { + printf("echo '%s'\n", $0); + printf("rm -f ${TARGDIR}/%s\n", $3); + printf("(cd ${TARGDIR}; ln -s %s %s)\n", $2, $3); + next; +} +$1 == "COPYDIR" { + printf("echo '%s'\n", $0); + printf("(cd ${TARGDIR}/%s && find . ! -name . | xargs /bin/rm -rf)\n", + $3); + printf("(cd %s && find . ! -name . | cpio -pdamu ${TARGDIR}/%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/prep/floppies/ramdisk/Makefile b/distrib/prep/floppies/ramdisk/Makefile new file mode 100644 index 000000000000..c4e3615b94e4 --- /dev/null +++ b/distrib/prep/floppies/ramdisk/Makefile @@ -0,0 +1,73 @@ +# $NetBSD: Makefile,v 1.1 2001/01/16 16:53:58 nonaka Exp $ + +TOP= ${.CURDIR}/.. + +.include "${TOP}/Makefile.inc" +IMAGE= ramdisk.fs + +AUXDEPENDS= disktab.preinstall dot.profile termcap.src + +CBIN= ramdiskbin + +MOUNT_POINT?= /mnt +# DEV/RDEV file system device, CDEV/RCDEV vnconfig device +VND?= vnd0 +VND_DEV= /dev/${VND}a +VND_RDEV= /dev/r${VND}a +VND_CDEV= /dev/${VND}c +VND_CRDEV= /dev/r${VND}c +MDEC= ${DESTDIR}/usr/mdec + +LISTS= list +CRUNCHCONF= ${CBIN}.conf +MTREE= mtree.conf + +CRUNCHGEN?= crunchgen + +SIZE= 2048k +DISKTYPE= floppyinstfs +DBG= -Os -mmultiple + +all: ${IMAGE} + +${IMAGE}: ${CBIN} ${AUXDEPENDS} ${MTREE} ${LISTS} + rm -f ${IMAGE}.tmp + dd if=/dev/zero of=${IMAGE}.tmp bs=${SIZE} count=1 + vnconfig -t ${DISKTYPE} -v -c ${VND_CDEV} ${IMAGE}.tmp + disklabel -f ${.CURDIR}/disktab -rw ${VND_CDEV} ${DISKTYPE} + newfs -B be -m 0 -o space -i 6144 -c 128 ${VND_RDEV} + mount ${VND_DEV} ${MOUNT_POINT} + mtree -def ${.CURDIR}/${MTREE} -p ${MOUNT_POINT}/ -u + TOPDIR=${TOP} CURDIR=${.CURDIR} OBJDIR=${.OBJDIR} \ + TARGDIR=${MOUNT_POINT} sh ${TOP}/runlist.sh ${.CURDIR}/${LISTS} + @echo "" + @df -i ${MOUNT_POINT} + @echo "" + umount ${MOUNT_POINT} + vnconfig -u ${VND_CDEV} + mv -f ${IMAGE}.tmp ${IMAGE} + +unconfig: + -umount -f ${MOUNT_POINT} + -vnconfig -u ${VND_CDEV} + -/bin/rm -f ${IMAGE} + +${CBIN}.mk ${CBIN}.cache ${CBIN}.c: ${CRUNCHCONF} + ${CRUNCHGEN} -D ${TOP}/../../.. -L ${DESTDIR}/usr/lib ${.ALLSRC} + +${CBIN}: ${CBIN}.mk ${CBIN}.cache ${CBIN}.c libhack.o + make -f ${CBIN}.mk DBG="${DBG}" all + +HACKSRC= ${TOP}/../../utils/libhack +.include "${HACKSRC}/Makefile.inc" +HACKOBJS= gethost.o getnet.o getpwent.o localeconv.o perror.o \ + setlocale.o strerror.o strsignal.o utmp.o yplib.o + +release: + +clean cleandir distclean: + rm -f ${IMAGE} ${IMAGE}.tmp ${CBIN} ${CBIN}.mk ${CBIN}.cache + rm -f *.core *.o *.cro *.c + +.include +.include diff --git a/distrib/prep/floppies/ramdisk/disktab b/distrib/prep/floppies/ramdisk/disktab new file mode 100644 index 000000000000..7773c3958975 --- /dev/null +++ b/distrib/prep/floppies/ramdisk/disktab @@ -0,0 +1,36 @@ +# $NetBSD: disktab,v 1.1 2001/01/16 16:53:58 nonaka Exp $ +# +# Disk geometry and partition layout tables. +# Key: +# dt controller type +# ty type of disk (fixed, removeable, simulated) +# d[0-4] drive-type-dependent parameters +# ns #sectors/track +# nt #tracks/cylinder +# nc #cylinders/disk +# sc #sectors/cylinder, ns*nt default +# su #sectors/unit, sc*nc default +# se sector size, DEV_BSIZE default +# rm rpm, 3600 default +# sf supports bad144-style bad sector forwarding +# sk sector skew per track, default 0 +# cs sector skew per cylinder, default 0 +# hs headswitch time, default 0 +# ts one-cylinder seek time, default 0 +# il sector interleave (n:1), 1 default +# bs boot block size, default BBSIZE +# sb superblock size, default SBSIZE +# o[a-h] partition offsets in sectors +# p[a-h] partition sizes in sectors +# b[a-h] partition block sizes in bytes +# f[a-h] partition fragment sizes in bytes +# t[a-h] partition types (filesystem, swap, etc) +# +# All partition sizes reserve space for bad sector tables. +# (5 cylinders needed for maintenance + replacement sectors) +# + +floppyinstfs|NetBSD floppy install filesystem:\ + :ty=floppy:se#512:nt#1:rm#300:ns#64:nc#64:\ + :pa#4096:oa#0:ba#4096:fa#512:ta=4.2BSD:\ + :pc#4096:oc#0: diff --git a/distrib/prep/floppies/ramdisk/disktab.preinstall b/distrib/prep/floppies/ramdisk/disktab.preinstall new file mode 100644 index 000000000000..730577326fdc --- /dev/null +++ b/distrib/prep/floppies/ramdisk/disktab.preinstall @@ -0,0 +1,29 @@ +# $NetBSD: disktab.preinstall,v 1.1 2001/01/16 16:53:58 nonaka Exp $ +# +# Disk geometry and partition layout tables. +# Key: +# dt controller type +# ty type of disk (fixed, removeable, simulated) +# d[0-4] drive-type-dependent parameters +# ns #sectors/track +# nt #tracks/cylinder +# nc #cylinders/disk +# sc #sectors/cylinder, ns*nt default +# su #sectors/unit, sc*nc default +# se sector size, DEV_BSIZE default +# rm rpm, 3600 default +# sf supports bad144-style bad sector forwarding +# sk sector skew per track, default 0 +# cs sector skew per cylinder, default 0 +# hs headswitch time, default 0 +# ts one-cylinder seek time, default 0 +# il sector interleave (n:1), 1 default +# bs boot block size, default BBSIZE +# sb superblock size, default SBSIZE +# o[a-h] partition offsets in sectors +# p[a-h] partition sizes in sectors +# b[a-h] partition block sizes in bytes +# f[a-h] partition fragment sizes in bytes +# t[a-h] partition types (filesystem, swap, etc) +# + diff --git a/distrib/prep/floppies/ramdisk/dot.profile b/distrib/prep/floppies/ramdisk/dot.profile new file mode 100644 index 000000000000..f491b78aa609 --- /dev/null +++ b/distrib/prep/floppies/ramdisk/dot.profile @@ -0,0 +1,91 @@ +# $NetBSD: dot.profile,v 1.1 2001/01/16 16:53:58 nonaka Exp $ +# +# Copyright (c) 1995 Jason R. Thorpe +# 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 for the +# NetBSD Project. See http://www.netbsd.org/ for +# information about NetBSD. +# 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. +# +# <> + +PATH=/sbin:/bin:/usr/bin:/usr/sbin:/ +export PATH +TERM=vt100 +export TERM +HOME=/ +export HOME + +umask 022 + +if [ "X${DONEPROFILE}" = "X" ]; then + DONEPROFILE=YES + export DONEPROFILE + + # set up some sane defaults + echo 'erase ^H, werase ^W, kill ^U, intr ^C, status ^T' + stty newcrt werase ^W intr ^C kill ^U erase ^H status ^T 9600 + + # mount root read-write + mount -u /dev/md0a / + + # mount a /tmp on mfs, to avoid filling the md + mount -t mfs swap /tmp + + # get the terminal type + _forceloop="" + while [ "X${_forceloop}" = X"" ]; do + eval `tset -s -m ":?$TERM"` + if [ "X${TERM}" != X"unknown" ]; then + _forceloop="done" + fi + done + + # Installing or upgrading? + _forceloop="" + while [ "X${_forceloop}" = X"" ]; do + echo -n '(I)nstall, (S)hell or (H)alt ? ' + read _forceloop + case "$_forceloop" in + i*|I*) + /sysinst + ;; + + s*|S*) + /bin/sh + ;; + + h*|H*) + /sbin/halt + ;; + + *) + _forceloop="" + ;; + esac + done +fi diff --git a/distrib/prep/floppies/ramdisk/list b/distrib/prep/floppies/ramdisk/list new file mode 100644 index 000000000000..b0cae597a79a --- /dev/null +++ b/distrib/prep/floppies/ramdisk/list @@ -0,0 +1,86 @@ +# $NetBSD: list,v 1.1 2001/01/16 16:53:58 nonaka Exp $ + +# copy the crunched binary, link to it, and kill it +COPY ${OBJDIR}/ramdiskbin ramdiskbin +LINK ramdiskbin sysinst +LINK ramdiskbin bin/cat +LINK ramdiskbin bin/chmod +LINK ramdiskbin bin/cp +LINK ramdiskbin bin/dd +LINK ramdiskbin bin/df +LINK ramdiskbin bin/ed +LINK ramdiskbin bin/ln +LINK ramdiskbin bin/ls +LINK ramdiskbin bin/mkdir +LINK ramdiskbin bin/mv +LINK ramdiskbin bin/pax +LINK ramdiskbin bin/pwd +LINK ramdiskbin bin/rcmd +LINK ramdiskbin bin/rcp +LINK ramdiskbin bin/rm +LINK ramdiskbin bin/sh +LINK ramdiskbin bin/stty +LINK ramdiskbin bin/sync +LINK ramdiskbin bin/test +LINK ramdiskbin bin/[ +LINK ramdiskbin sbin/disklabel +LINK ramdiskbin sbin/dmesg +LINK ramdiskbin sbin/fsck +LINK ramdiskbin sbin/fsck_ffs +LINK ramdiskbin sbin/halt +LINK ramdiskbin sbin/ifconfig +LINK ramdiskbin sbin/init +LINK ramdiskbin sbin/mknod +LINK ramdiskbin sbin/mount +LINK ramdiskbin sbin/mount_cd9660 +LINK ramdiskbin sbin/mount_ffs +LINK ramdiskbin sbin/mount_kernfs +LINK ramdiskbin sbin/mount_mfs +LINK ramdiskbin sbin/mount_msdos +LINK ramdiskbin sbin/mount_nfs +LINK ramdiskbin sbin/newfs +LINK ramdiskbin sbin/ping +LINK ramdiskbin sbin/reboot +LINK ramdiskbin sbin/restore +LINK ramdiskbin sbin/route +LINK ramdiskbin sbin/rrestore +LINK ramdiskbin sbin/shutdown +LINK ramdiskbin sbin/umount +LINK ramdiskbin usr/bin/chgrp +LINK ramdiskbin usr/bin/ftp +LINK ramdiskbin usr/bin/gunzip +LINK ramdiskbin usr/bin/gzcat +LINK ramdiskbin usr/bin/gzip +LINK ramdiskbin usr/bin/more +LINK ramdiskbin usr/bin/sed +LINK ramdiskbin usr/bin/tar +LINK ramdiskbin usr/bin/tset +LINK ramdiskbin usr/sbin/chown +LINK ramdiskbin usr/sbin/chroot +SPECIAL /bin/rm ramdiskbin + +# copy the MAKEDEV script and make some devices +COPY ${DESTDIR}/dev/MAKEDEV dev/MAKEDEV +SPECIAL cd dev; sh MAKEDEV ramdisk +SPECIAL /bin/rm dev/MAKEDEV + +# and the termcap file +COPY ${CURDIR}/termcap.src usr/share/misc/termcap + +# various files that we need in /etc for the install +COPY ${CURDIR}/../../../../etc/group etc/group +COPY ${CURDIR}/../../../../etc/master.passwd etc/master.passwd +COPY ${CURDIR}/../../../../etc/netconfig etc/netconfig +COPY ${CURDIR}/../../../../etc/protocols etc/protocols +COPY ${CURDIR}/../../../../etc/services etc/services +SPECIAL pwd_mkdb -p -d . etc/master.passwd +SPECIAL rm etc/pwd.db etc/spwd.db + +# the disktab explanation file +COPY ${CURDIR}/disktab.preinstall etc/disktab.preinstall + +# and the installation scripts +COPY ${CURDIR}/dot.profile .profile + +# Minimize use of MFS +SYMLINK /tmp var/tmp diff --git a/distrib/prep/floppies/ramdisk/mtree.conf b/distrib/prep/floppies/ramdisk/mtree.conf new file mode 100644 index 000000000000..93a83183847b --- /dev/null +++ b/distrib/prep/floppies/ramdisk/mtree.conf @@ -0,0 +1,82 @@ +# $NetBSD: mtree.conf,v 1.1 2001/01/16 16:53:58 nonaka Exp $ + +/set type=dir uname=root gname=wheel mode=0755 +# . +. + +# ./bin +bin +# ./bin +.. + +# ./dev +dev +# ./dev +.. + +# ./dist +dist +# ./dist +.. + +# ./etc +etc +# ./etc +.. + +# ./mnt +mnt +# ./mnt +.. + +# ./mnt2 +mnt2 +# ./mnt2 +.. + +# ./sbin +sbin +# ./sbin +.. + +# ./tmp +tmp mode=01777 +# ./tmp +.. + +# ./var +var +# ./var +.. + +# ./usr +usr + +# ./usr/bin +bin +# ./usr/bin +.. + +# ./usr/mdec +mdec +# ./usr/mdec +.. + +# ./usr/sbin +sbin +# ./usr/sbin +.. + +# ./usr/share +share + +# ./usr/share/misc +misc +# ./usr/share/misc +.. + +# ./usr/share +.. + +# ./usr +.. diff --git a/distrib/prep/floppies/ramdisk/ramdiskbin.conf b/distrib/prep/floppies/ramdisk/ramdiskbin.conf new file mode 100644 index 000000000000..fe40f128b5e5 --- /dev/null +++ b/distrib/prep/floppies/ramdisk/ramdiskbin.conf @@ -0,0 +1,44 @@ +# $NetBSD: ramdiskbin.conf,v 1.1 2001/01/16 16:53:58 nonaka Exp $ +# +# ramdiskbin.conf - unified binary for the install ramdisk + +srcdirs bin sbin usr.bin usr.sbin gnu/usr.bin + +progs cat chmod chown chroot cp dd df disklabel dmesg ed +progs fdisk fsck fsck_ffs ftp gzip ifconfig init ln ls +progs mkdir mknod more mount mount_cd9660 mount_ffs +progs mount_msdos mount_nfs mv newfs pax ping pwd +progs rcmd rcp reboot restore rm route sed sh shutdown +progs stty sync test tip tset umount +progs sysinst + +special dd srcdir distrib/utils/x_dd +special dmesg srcdir distrib/utils/x_dmesg +special ftp srcdir distrib/utils/x_ftp +special gzip srcdir distrib/utils/x_gzip +special ifconfig srcdir distrib/utils/x_ifconfig +special init srcdir distrib/utils/init_s +special more srcdir distrib/utils/more +special ping srcdir distrib/utils/x_ping +special route srcdir distrib/utils/x_route +special sh srcdir distrib/utils/x_sh +special sysinst srcdir distrib/utils/sysinst +special sysinst srcdir distrib/utils/sysinst/arch/prep + +ln chown chgrp +ln gzip gzcat gunzip +ln more less +ln mount_cd9660 cd9660 +ln mount_ffs ffs +ln mount_msdos msdos +ln mount_nfs nfs +ln newfs mount_mfs +ln pax tar +ln reboot halt +ln restore rrestore +ln rcmd rsh +ln sh -sh # init invokes the shell this way +ln test [ + +libs libhack.o +libs -ledit -lutil -lcurses -ltermcap -lcrypt -ll -lm -lz diff --git a/distrib/prep/floppies/ramdisk/termcap.src b/distrib/prep/floppies/ramdisk/termcap.src new file mode 100644 index 000000000000..50a45c2133c4 --- /dev/null +++ b/distrib/prep/floppies/ramdisk/termcap.src @@ -0,0 +1,61 @@ +dumb|80-column dumb tty:\ + :am:\ + :co#80:\ + :bl=^G:cr=^M:do=^J:sf=^J: +unknown|unknown terminal type:\ + :gn:tc=dumb: +lpr|printer|line printer:\ + :bs:hc:os:\ + :co#132:li#66:\ + :bl=^G:cr=^M:do=^J:ff=^L:le=^H:sf=^J: +glasstty|classic glass tty interpreting ASCII control characters:\ + :am:\ + :co#80:\ + :bl=^G:cl=^L:cr=^M:do=^J:kb=^H:kd=^J:kl=^H:le=^H:nw=^M^J:\ + :ta=^I: +vt52|dec vt52:\ + :bs:\ + :co#80:it#8:li#24:\ + :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ + :ae=\EG:as=\EF:bl=^G:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :\ + :cr=^M:do=\EB:ho=\EH:kb=^H:kd=\EB:kl=\ED:kr=\EC:ku=\EA:\ + :le=\ED:nd=\EC:nw=^M^J:sf=^J:sr=\EI:ta=^I:up=\EA: +vt100|vt100-am|dec vt100 (w/advanced video):\ + :am:bs:ms:xn:xo:\ + :co#80:it#8:li#24:vt#3:\ + :@8=\EOM:DO=\E[%dB:K1=\EOq:K2=\EOr:K3=\EOs:K4=\EOp:K5=\EOn:\ + :LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:UP=\E[%dA:\ + :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ + :ae=\E(B:as=\E(0:bl=^G:cb=\E[1K:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\ + :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:do=^J:\ + :eA=\E(B:ho=\E[H:k0=\EOy:k1=\EOP:k2=\EOQ:k3=\EOR:\ + :k4=\EOS:k5=\EOt:k6=\EOu:k7=\EOv:k8=\EOl:k9=\EOw:k;=\EOx:\ + :kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:\ + :ku=\EOA:le=^H:mb=\E[5m:md=\E[1m:me=\E[m\017:mr=\E[7m:\ + :nd=\E[C:r2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:\ + :..sa=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;:\ + :sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:ue=\E[m:\ + :up=\E[A:us=\E[4m: +xterm-r6|xterm-old|xterm X11R6 version:\ + :am:bs:km:mi:ms:xn:\ + :co#80:it#8:li#24:\ + :*6=\E[4~:@0=\E[1~:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:\ + :DO=\E[%dB:F1=\E[23~:F2=\E[24~:F3=\E[25~:F4=\E[26~:\ + :F5=\E[28~:F6=\E[29~:F7=\E[31~:F8=\E[32~:F9=\E[33~:\ + :FA=\E[34~:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:\ + :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ + :ae=\E(B:al=\E[L:as=\E(0:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:\ + :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:\ + :dl=\E[M:do=^J:eA=\E(B:ei=\E[4l:ho=\E[H:im=\E[4h:\ + :is=\E7\E[r\E[m\E[?7h\E[?1;3;4;6l\E[4l\E8\E>:k1=\EOP:\ + :k2=\EOQ:k3=\EOR:k4=\EOS:k5=\E[15~:k6=\E[17~:k7=\E[18~:\ + :k8=\E[19~:k9=\E[20~:k;=\E[21~:kD=\E[3~:kI=\E[2~:kN=\E[6~:\ + :kP=\E[5~:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:\ + :ks=\E[?1h\E=:ku=\EOA:le=^H:md=\E[1m:me=\E[m:ml=\El:\ + :mr=\E[7m:mu=\Em:nd=\E[C:\ + :r2=\E7\E[r\E[m\E[?7h\E[?1;3;4;6l\E[4l\E8\E>:rc=\E8:\ + :sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:ta=^I:\ + :te=\E[2J\E[?47l\E8:ti=\E7\E[?47h:ue=\E[m:up=\E[A:\ + :us=\E[4m: +xterm|vs100|xterms|xterm terminal emulator (X Window System):\ + :tc=xterm-r6: diff --git a/distrib/prep/floppies/runlist.sh b/distrib/prep/floppies/runlist.sh new file mode 100644 index 000000000000..74bb0f61b99f --- /dev/null +++ b/distrib/prep/floppies/runlist.sh @@ -0,0 +1,13 @@ +# $NetBSD: runlist.sh,v 1.1 2001/01/16 16:53:59 nonaka Exp $ + +if [ "X$1" = "X-d" ]; then + SHELLCMD=cat + shift +else + SHELLCMD="sh -e" +fi + +( while [ "X$1" != "X" ]; do + cat $1 + shift +done ) | awk -f ${TOPDIR}/list2sh.awk | ${SHELLCMD} diff --git a/distrib/utils/sysinst/arch/prep/Makefile b/distrib/utils/sysinst/arch/prep/Makefile new file mode 100644 index 000000000000..e67954511362 --- /dev/null +++ b/distrib/utils/sysinst/arch/prep/Makefile @@ -0,0 +1,14 @@ +# $NetBSD: Makefile,v 1.1 2001/01/16 16:54:01 nonaka Exp $ +# +# Makefile for prep +# + +# have to have all of them here for crunch ... + +SRCS= menu_defs.c msg_defs.c main.c install.c upgrade.c \ + txtwalk.c run.c factor.c net.c disks.c disks_lfs.c util.c geom.c \ + label.c target.c md.c mbr.c + +fdisk.o md.o: menu_defs.h msg_defs.h + +.include "../../Makefile.inc" diff --git a/distrib/utils/sysinst/arch/prep/md.c b/distrib/utils/sysinst/arch/prep/md.c new file mode 100644 index 000000000000..9adb04e4f011 --- /dev/null +++ b/distrib/utils/sysinst/arch/prep/md.c @@ -0,0 +1,399 @@ +/* $NetBSD: md.c,v 1.1 2001/01/16 16:54:01 nonaka Exp $ */ + +/* + * Copyright 1997 Piermont Information Systems Inc. + * All rights reserved. + * + * Written by Philip A. Nelson for Piermont Information Systems Inc. + * + * 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 for the NetBSD Project by + * Piermont Information Systems Inc. + * 4. The name of Piermont Information Systems Inc. may not be used to endorse + * or promote products derived from this software without specific prior + * written permission. + * + * THIS SOFTWARE IS PROVIDED BY PIERMONT INFORMATION SYSTEMS INC. ``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 PIERMONT INFORMATION SYSTEMS INC. 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. + * + */ + +/* md.c -- Machine specific code for prep */ + +#include +#include + +#include +#include + +#include + +#include "defs.h" +#include "md.h" +#include "msg_defs.h" +#include "menu_defs.h" +#include "endian.h" + +char mbr[512]; + +int mbr_present, mbr_len; +int c1024_resp; +struct disklist *disklist = NULL; +struct nativedisk_info *nativedisk; +struct biosdisk_info *biosdisk = NULL; +int netbsd_mbr_installed = 0; + + +/* prototypes */ + + +int +md_get_info(void) +{ + + read_mbr(diskdev, mbr, sizeof mbr); + if (!valid_mbr(mbr)) { + memset(&mbr[MBR_PARTOFF], 0, + NMBRPART * sizeof (struct mbr_partition)); + /* XXX check result and give up if < 0 */ + *((u_int16_t *)&mbr[MBR_MAGICOFF]) = le_to_native16(MBR_MAGIC); + netbsd_mbr_installed = 1; + } else + mbr_len = MBR_SECSIZE; + + edit_mbr((struct mbr_partition *)&mbr[MBR_PARTOFF]); + + /* Compute minimum NetBSD partition sizes (in sectors). */ + minfsdmb = STDNEEDMB * (MEG / sectorsize); + + return 1; +} + +int +md_pre_disklabel(void) +{ + + msg_display(MSG_dofdisk); + + /* write edited MBR onto disk. */ + if (write_mbr(diskdev, mbr, sizeof mbr, 1) != 0) { + msg_display(MSG_wmbrfail); + process_menu(MENU_ok); + return 1; + } + return 0; +} + +int +md_post_disklabel(void) +{ + + /* Sector forwarding / badblocks ... */ + if (*doessf) { + msg_display(MSG_dobad144); + return run_prog(RUN_DISPLAY, NULL, "/usr/sbin/bad144 %s 0", + diskdev); + } + return 0; +} + +int +md_post_newfs(void) +{ + + return 0; +} + +int +md_copy_filesystem(void) +{ + + return 0; +} + + +int +md_make_bsd_partitions(void) +{ + FILE *f; + int i; + int part; + int maxpart = getmaxpartitions(); + int remain; + + /* Ask for layout type -- standard or special */ + msg_display(MSG_layout, + (1.0*fsptsize*sectorsize)/MEG, + (1.0*minfsdmb*sectorsize)/MEG, + (1.0*minfsdmb*sectorsize)/MEG+rammb+XNEEDMB); + process_menu(MENU_layout); + + if (layoutkind == 3) { + ask_sizemult(dlcylsize); + } else { + sizemult = MEG / sectorsize; + multname = msg_string(MSG_megname); + } + + /* Build standard partitions */ + emptylabel(bsdlabel); + + /* Partitions C is predefined. */ + bsdlabel[D].pi_fstype = FS_UNUSED; + bsdlabel[D].pi_offset = 0; + bsdlabel[D].pi_size = fsdsize; + + /* Standard fstypes */ + bsdlabel[A].pi_fstype = FS_BSDFFS; + bsdlabel[B].pi_fstype = FS_SWAP; + bsdlabel[D].pi_fstype = FS_UNUSED; + bsdlabel[E].pi_fstype = FS_UNUSED; + bsdlabel[F].pi_fstype = FS_UNUSED; + bsdlabel[G].pi_fstype = FS_UNUSED; + bsdlabel[H].pi_fstype = FS_UNUSED; + + switch (layoutkind) { + case 1: /* standard: a root, b swap, c "unused", d /usr */ + case 2: /* standard X: a root, b swap (big), c "unused", d /usr */ + partstart = ptstart; + + /* check that we have enouth space */ + i = NUMSEC(20+2*rammb, MEG/sectorsize, dlcylsize); + i += NUMSEC(layoutkind * 2 * (rammb < 16 ? 16 : rammb), + MEG/sectorsize, dlcylsize); + if ( i > fsptsize) { + msg_display(MSG_disktoosmall); + process_menu(MENU_ok); + goto custom; + } + /* Root */ + i = NUMSEC(20+2*rammb, MEG/sectorsize, dlcylsize) + partstart; + partsize = NUMSEC (i/(MEG/sectorsize)+1, MEG/sectorsize, + dlcylsize) - partstart; + bsdlabel[A].pi_offset = partstart; + bsdlabel[A].pi_size = partsize; + bsdlabel[A].pi_bsize = 8192; + bsdlabel[A].pi_fsize = 1024; + strcpy (fsmount[A], "/"); + partstart += partsize; + + /* swap */ + i = NUMSEC(layoutkind * 2 * (rammb < 16 ? 16 : rammb), + MEG/sectorsize, dlcylsize) + partstart; + partsize = NUMSEC (i/(MEG/sectorsize)+1, MEG/sectorsize, + dlcylsize) - partstart; + bsdlabel[B].pi_offset = partstart; + bsdlabel[B].pi_size = partsize; + partstart += partsize; + + /* /usr */ + partsize = fsptsize - (partstart - ptstart); + bsdlabel[D].pi_fstype = FS_BSDFFS; + bsdlabel[D].pi_offset = partstart; + bsdlabel[D].pi_size = partsize; + bsdlabel[D].pi_bsize = 8192; + bsdlabel[D].pi_fsize = 1024; + strcpy (fsmount[D], "/usr"); + break; + + case 3: /* custom: ask user for all sizes */ +custom: ask_sizemult(dlcylsize); + msg_display(MSG_defaultunit, multname); + partstart = ptstart; + remain = fsptsize; + + /* root */ + i = NUMSEC(20+2*rammb, MEG/sectorsize, dlcylsize) + partstart; + partsize = NUMSEC (i/(MEG/sectorsize)+1, MEG/sectorsize, + dlcylsize) - partstart; + if (partsize > remain) + partsize = remain; + msg_display_add(MSG_askfsroot1, remain/sizemult, multname); + partsize = getpartsize(MSG_askfsroot2, partstart, partsize); + bsdlabel[A].pi_offset = partstart; + bsdlabel[A].pi_size = partsize; + bsdlabel[A].pi_bsize = 8192; + bsdlabel[A].pi_fsize = 1024; + strcpy (fsmount[A], "/"); + partstart += partsize; + remain -= partsize; + + /* swap */ + i = NUMSEC( 2 * (rammb < 16 ? 16 : rammb), + MEG/sectorsize, dlcylsize) + partstart; + partsize = NUMSEC (i/(MEG/sectorsize)+1, MEG/sectorsize, + dlcylsize) - partstart; + if (partsize > remain) + partsize = remain; + msg_display(MSG_askfsswap1, remain/sizemult, multname); + partsize = getpartsize(MSG_askfsswap2, partstart, partsize); + bsdlabel[B].pi_offset = partstart; + bsdlabel[B].pi_size = partsize; + partstart += partsize; + remain -= partsize; + + /* Others D, E, F, G, H */ + part = D; + if (remain > 0) + msg_display (MSG_otherparts); + while (remain > 0 && part <= H) { + msg_display_add(MSG_askfspart1, diskdev, + partition_name(part), remain/sizemult, multname); + partsize = getpartsize(MSG_askfspart2, partstart, + remain); + if (partsize > 0) { + if (remain - partsize < sizemult) + partsize = remain; + bsdlabel[part].pi_fstype = FS_BSDFFS; + bsdlabel[part].pi_offset = partstart; + bsdlabel[part].pi_size = partsize; + bsdlabel[part].pi_bsize = 8192; + bsdlabel[part].pi_fsize = 1024; + if (part == D) + strcpy (fsmount[part], "/usr"); + msg_prompt_add (MSG_mountpoint, fsmount[part], + fsmount[part], 20); + partstart += partsize; + remain -= partsize; + } + part++; + } + + break; + } + + /* + * OK, we have a partition table. Give the user the chance to + * edit it and verify it's OK, or abort altogether. + */ + if (edit_and_check_label(bsdlabel, maxpart, RAW_PART, RAW_PART) == 0) { + msg_display(MSG_abort); + return 0; + } + + /* Disk name */ + msg_prompt (MSG_packname, "mydisk", bsddiskname, DISKNAME_SIZE); + + /* Create the disktab.preinstall */ + run_prog (0, NULL, "cp /etc/disktab.preinstall /etc/disktab"); +#ifdef DEBUG + f = fopen ("/tmp/disktab", "a"); +#else + f = fopen ("/etc/disktab", "a"); +#endif + if (f == NULL) { + endwin(); + (void) fprintf (stderr, "Could not open /etc/disktab"); + exit (1); + } + (void)fprintf (f, "%s|NetBSD installation generated:\\\n", bsddiskname); + (void)fprintf (f, "\t:dt=%s:ty=winchester:\\\n", disktype); + (void)fprintf (f, "\t:nc#%d:nt#%d:ns#%d:\\\n", dlcyl, dlhead, dlsec); + (void)fprintf (f, "\t:sc#%d:su#%d:\\\n", dlhead*dlsec, dlsize); + (void)fprintf (f, "\t:se#%d:%s\\\n", sectorsize, doessf); + for (i=0; i<8; i++) { + (void)fprintf (f, "\t:p%c#%d:o%c#%d:t%c=%s:", + 'a'+i, bsdlabel[i].pi_size, + 'a'+i, bsdlabel[i].pi_offset, + 'a'+i, fstypenames[bsdlabel[i].pi_fstype]); + if (bsdlabel[i].pi_fstype == FS_BSDFFS) + (void)fprintf (f, "b%c#%d:f%c#%d", + 'a'+i, bsdlabel[i].pi_bsize, + 'a'+i, bsdlabel[i].pi_fsize); + if (i < 7) + (void)fprintf (f, "\\\n"); + else + (void)fprintf (f, "\n"); + } + fclose (f); + + /* Everything looks OK. */ + return 1; +} + +/* Upgrade support */ +int +md_update(void) +{ + + endwin(); + md_copy_filesystem(); + md_post_newfs(); + wrefresh(curscr); + wmove(stdscr, 0, 0); + wclear(stdscr); + wrefresh(stdscr); + return 1; +} + +void +md_cleanup_install(void) +{ + char realfrom[STRSIZE]; + char realto[STRSIZE]; + char sedcmd[STRSIZE]; + + strncpy(realfrom, target_expand("/etc/rc.conf"), STRSIZE); + strncpy(realto, target_expand("/etc/rc.conf.install"), STRSIZE); + + sprintf(sedcmd, "sed 's/rc_configured=NO/rc_configured=YES/' < %s > %s", + realfrom, realto); + scripting_fprintf(log, "%s\n", sedcmd); + do_system(sedcmd); + + run_prog(RUN_FATAL, NULL, "mv -f %s %s", realto, realfrom); + run_prog(0, NULL, "rm -f %s", target_expand("/sysinst")); + run_prog(0, NULL, "rm -f %s", target_expand("/.termcap")); + run_prog(0, NULL, "rm -f %s", target_expand("/.profile")); +} + +int +md_pre_update(void) +{ + + return 1; +} + +void +md_init(void) +{ + + /* Nothing to do */ +} + +void +md_set_sizemultname(void) +{ + + set_sizemultname_meg(); +} + +void +md_set_no_x(void) +{ + + toggle_getit (8); + toggle_getit (9); + toggle_getit (10); + toggle_getit (11); + toggle_getit (12); + toggle_getit (13); +} diff --git a/distrib/utils/sysinst/arch/prep/md.h b/distrib/utils/sysinst/arch/prep/md.h new file mode 100644 index 000000000000..cd26a6c31d74 --- /dev/null +++ b/distrib/utils/sysinst/arch/prep/md.h @@ -0,0 +1,146 @@ +/* $NetBSD: md.h,v 1.1 2001/01/16 16:54:01 nonaka Exp $ */ + +/* + * Copyright 1997 Piermont Information Systems Inc. + * All rights reserved. + * + * Written by Philip A. Nelson for Piermont Information Systems Inc. + * + * 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 for the NetBSD Project by + * Piermont Information Systems Inc. + * 4. The name of Piermont Information Systems Inc. may not be used to endorse + * or promote products derived from this software without specific prior + * written permission. + * + * THIS SOFTWARE IS PROVIDED BY PIERMONT INFORMATION SYSTEMS INC. ``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 PIERMONT INFORMATION SYSTEMS INC. 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. + * + */ + +/* md.h -- Machine specific definitions for the prep */ + + +#include +#include +#include +#include +#include + +/* prep uses the mbr code. */ +#include "mbr.h" + +/* constants and defines */ +#define PART_ROOT A +#define PART_SWAP B +#define PART_RAW C +#define PART_USR D /* Can be after PART_FIRST_FREE */ +#define PART_FIRST_FREE E + +#define DEFSWAPRAM 32 /* Assume at least this RAM for swap calc */ +#define DEFROOTSIZE 24 /* Default root size */ +#define DEFVARSIZE 32 /* Default /var size, if created */ +#define DEFUSRSIZE 128 /* Default /usr size, if /home */ +#define STDNEEDMB 160 /* Min space for non X install */ +#define XNEEDMB 39 /* Extra megs for full X installation */ + + +/* + * Default filesets to fetch and install during installation + * or upgrade. The standard sets are: + * base, etc, comp, games, man, misc, text, + * xbase, xfont, xserver, xcontrib, xcomp. + * + * i386 has the MD set kern first, because generic kernels are too + * big to fit on install floppies. i386 does not yet include the x sets. + * + * Third entry is the last extension name in the split sets for loading + * from floppy. + */ +EXTERN distinfo dist_list[] +#ifdef MAIN += { + {"kern", 1, "ag", "Kernel : "}, + {"base", 1, "bw", "Base : "}, + {"etc", 1, "aa", "System (/etc): "}, + {"comp", 1, "bl", "Compiler : "}, + {"games", 1, "am", "Games : "}, + {"man", 1, "ar", "Manuals : "}, + {"misc", 1, "aj", "Miscellaneous: "}, + {"text", 1, "af", "Text tools : "}, + + /* XXX no X11 on floppies, what sets are they?*/ + {"xbase", 1, "al", "X11 clients : "}, + {"xfont", 1, "az", "X11 fonts : "}, + {"xserver", 0, "cr", "X11 servers : "}, + {"xcontrib",1, "aa", "X11 contrib : "}, + {"xcomp", 1, "ah", "X programming: "}, + {"xmisc", 1, NULL, "X11 Misc. : "}, + {NULL, 0, NULL, NULL } +} +#endif +; + +/* + * Disk names accepted as valid targets for a from-scratch installation. + * + * On prep, we allow "wd" ST-506/IDE disks and "sd" scsi disks. + */ +EXTERN char *disk_names[] +#ifdef MAIN += {"wd", "sd", NULL} +#endif +; + + +/* + * Legal start character for a disk for checking input. + * this must return 1 for a character that matches the first + * characters of each member of disk_names. + * + * On prep, that means matching 'w' for st-506/ide and 's' for sd. + */ +#define ISDISKSTART(dn) (dn == 'w' || dn == 's') + +/* + * Machine-specific command to write a new label to a disk. + * For example, i386 uses "/sbin/disklabel -w -r", just like i386 + * miniroot scripts, though this may leave a bogus incore label. + * Sun ports should probably use DISKLABEL_CMD "/sbin/disklabel -w" + * to get incore to ondisk inode translation for the Sun proms. + * If not defined, we assume the port does not support disklabels and + * hand-edited disklabel will NOT be written by MI code. + * + * On prep, do what the 1.2 install scripts did. + */ +#define DISKLABEL_CMD "disklabel -w -r" + + +/* + * Default fileystem type for floppy disks. + * On prep, that is msdos. + */ +EXTERN char *fdtype INIT("msdos"); + + +/* + * prototypes for MD code. + */ diff --git a/distrib/utils/sysinst/arch/prep/menus.md.en b/distrib/utils/sysinst/arch/prep/menus.md.en new file mode 100644 index 000000000000..c75c8a2ac78d --- /dev/null +++ b/distrib/utils/sysinst/arch/prep/menus.md.en @@ -0,0 +1,181 @@ +/* $NetBSD: menus.md.en,v 1.1 2001/01/16 16:54:01 nonaka Exp $ */ + +/* + * Copyright 1997 Piermont Information Systems Inc. + * All rights reserved. + * + * Written by Philip A. Nelson for Piermont Information Systems Inc. + * + * 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 for the NetBSD Project by + * Piermont Information Systems Inc. + * 4. The name of Piermont Information Systems Inc. may not be used to endorse + * or promote products derived from this software without specific prior + * written permission. + * + * THIS SOFTWARE IS PROVIDED BY PIERMONT INFORMATION SYSTEMS INC. ``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 PIERMONT INFORMATION SYSTEMS INC. 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. + * + */ + +/* Menu definitions for sysinst. prep version, machine dependent. */ + +menu fullpart, title "Select your choice"; + option "Use only part of the disk", exit, action {usefull = 0;}; + option "Use the entire disk", exit, action {usefull = 1;}; + +menu wdtype, title "Select type"; + display action { msg_display (MSG_wdtype, diskdev); }; + option "IDE", exit; + option "ESDI", exit, action + { msg_display (MSG_sectforward); + process_menu (MENU_yesno); + if (yesno) + doessf = "sf:"; + }; + option "ST506", exit, action + { msg_display (MSG_sectforward); + process_menu (MENU_yesno); + if (yesno) + doessf = "sf:"; + }; + + +menu editparttable, title "Choose your partition", exit; + display action { msg_display (MSG_editparttable); + disp_cur_part((struct mbr_partition *)&mbr[MBR_PARTOFF +], activepart,-1); + }; + option "Edit partition 0", sub menu editpart, + action { editpart = 0; }; + option "Edit partition 1", sub menu editpart, + action { editpart = 1; }; + option "Edit partition 2", sub menu editpart, + action { editpart = 2; }; + option "Edit partition 3", sub menu editpart, + action { editpart = 3; }; + option "Reselect size specification", + action { reask_sizemult(bcylsize); }; + +menu editpart, title "Select to change"; + display action { msg_display (MSG_editpart, editpart); + disp_cur_part((struct mbr_partition *)&mbr[MBR_PARTOFF +], activepart,editpart); + msg_display_add(MSG_newline); + }; + option "Kind", sub menu chooseid; + option "Start and size", action + { char buf[40]; int start, size; + msg_prompt_add (MSG_start, NULL, buf, 40); + start = NUMSEC(atoi(buf),sizemult,dlcylsize); + if (sizemult > 1 && start < bsec) + start = bsec; + msg_prompt_add (MSG_size, NULL, buf, 40); + size = NUMSEC(atoi(buf),sizemult,dlcylsize); + if (sizemult > 1 && start == bsec) + size -= bsec; + if (start + size > bsize) + size = bsize - start; + if (size < 0) { + size = 0; + start = 0; + } + part[editpart].mbrp_start = start; + part[editpart].mbrp_size = size; + }; + option "Set active", action { activepart = editpart; }; + option "Partition OK", exit; + +menu chooseid, title "Partition Kind?"; + option "NetBSD", exit, action + { + part[editpart].mbrp_typ = 169; + }; + option "DOS < 32 Meg", exit, action + { + part[editpart].mbrp_typ = 4; + }; + option "DOS > 32 Meg", exit, action + { + part[editpart].mbrp_typ = 6; + }; + option "unused", exit, action + { + part[editpart].mbrp_typ = 0; + }; + +menu cyl1024; + display action { + msg_display(MSG_cyl1024); + }; + option "Re-edit both MBR and label", exit, action + { + /* XXX UGH */ + extern int c1024_resp; + + c1024_resp = 1; + }; + option "Re-edit the label", exit, action + { + extern int c1024_resp; + + c1024_resp = 2; + }; + option "Use it anyway", exit, action + { + extern int c1024_resp; + + c1024_resp = 3; + }; + +menu editfsparts, y=13, exit; + display action { + ask_sizemult(dlcylsize); + msg_display(MSG_fspart, multname); + disp_cur_fspart(-1, 1); + }; + option "Change a", action { editpart = A;}, sub menu edfspart; + option "Change b", action { editpart = B;}, sub menu edfspart; + option "Whole disk - can't change", action {}; + option "Change d", action { editpart = D;}, sub menu edfspart; + option "Change e", action { editpart = E;}, sub menu edfspart; + option "Change f", action { editpart = F;}, sub menu edfspart; + option "Change g", action { editpart = G;}, sub menu edfspart; + option "Change h", action { editpart = H;}, sub menu edfspart; + option "Set new allocation size", action { reask_sizemult(dlcylsize); }; + + +menu md_distcustom, x=26, y=5, exit, title "Selection toggles inclusion"; + display action { show_cur_distsets (); }; + option "Kernel", action { toggle_getit (0); }; + option "Base", action { toggle_getit (1); }; + option "System (/etc)", action { toggle_getit (2); }; + option "Compiler Tools", action { toggle_getit (3); }; + option "Games", action { toggle_getit (4); }; + option "Online Manual Pages", action { toggle_getit (5); }; + option "Miscellaneous", action { toggle_getit (6); }; + option "Text Processing Tools", action { toggle_getit (7); }; + option "X11 base and clients", action { toggle_getit (8); }; + option "X11 fonts", action { toggle_getit (9); }; + option "X11 servers", action { toggle_getit (10); }; + option "X contrib clients", action { toggle_getit (11); }; + option "X11 programming", action { toggle_getit (12); }; + option "X11 Misc.", action { toggle_getit (13); }; diff --git a/distrib/utils/sysinst/arch/prep/msg.md.en b/distrib/utils/sysinst/arch/prep/msg.md.en new file mode 100644 index 000000000000..bf6efd2aa026 --- /dev/null +++ b/distrib/utils/sysinst/arch/prep/msg.md.en @@ -0,0 +1,188 @@ +/* $NetBSD: msg.md.en,v 1.1 2001/01/16 16:54:01 nonaka Exp $ */ + +/* + * Copyright 1997 Piermont Information Systems Inc. + * All rights reserved. + * + * Written by Philip A. Nelson for Piermont Information Systems Inc. + * + * 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 for the NetBSD Project by + * Piermont Information Systems Inc. + * 4. The name of Piermont Information Systems Inc. may not be used to endorse + * or promote products derived from this software without specific prior + * written permission. + * + * THIS SOFTWARE IS PROVIDED BY PIERMONT INFORMATION SYSTEMS INC. ``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 PIERMONT INFORMATION SYSTEMS INC. 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. + * + */ + +/* MD Message catalog -- english, prep version */ + +message md_hello +{ +} + +message fullpart +{We are now going to install NetBSD on the disk %s. You may +choose to install NetBSD on the entire disk, or on part of the disk. + +Partial-disk installation creates a partition, or `slice', for NetBSD +in your disk's MBR partition table. Whole-disk installation is +`dangerously dedicated': it takes over the entire MBR. This WILL +overwrite all existing data and OSes on the disk. It also prohibits later +installation of multiple OSes on that disk (unless you overwrite NetBSD and +reinstall using only part of the disk). + +Which would you like to do? +} + +message wdtype +{What kind of disk is %s?} + +message sectforward +{Does your disk do AUTOMATIC sector forwarding?} + +/* the %s's will expand into three character strings */ +message part_header +{ Total disksize %d sectors + + Start(%3s) Size(%3s) End(%3s) Kind + ---------- ---------- ---------- ---- +} + +message part_row_start_unused +{%-1d: } + +message part_row_start_used +{%-1d: %-10d %-10d %-10d} + +message part_row_end +{ %s\n} + +message ovrwrite +{Your disk currently has a non-NetBSD partition. Do you really want to +overwrite that partition with NetBSD? +} + +message parttable +{The partition table on your disk currently looks like the following: +} + +message editpart +{Partition %d looks like:\n\n} + +message editparttable +{Edit your DOS partition table. The highlighted partition is the currently +active partition. The partition table currently looks like: + +} + +message reeditpart +{There are overlapping MBR partitions or there is not exactly one NetBSD +partition. You should reedit the MBR partition table. + +Do you want to reedit it? +} + +message nobsdpart +{There is no NetBSD partition in the MBR partition table.} + +message multbsdpart +{There are multiple NetBSD partitions in the MBR partition table. +Partition %d will be the one used.} + +message dofdisk +{Setting up the DOS partition table ... +} + +message dobad144 +{Installing the bad block table ... +} + +message dobootblks +{Installing boot blocks on %s.... +} + +message askfsroot1 +{I will be asking for partition information. + +First the root partition. You have %d %s left on your disk. +} + +message askfsroot2 +{Root partition size? } + +message askfsswap1 +{ +Next the swap partition. You have %d %s left on your disk. +} + +message askfsswap2 +{Swap partition size? } + +message otherparts +{You still have some space remaining unallocated on your disk. Please +give sizes and mount points for the following partitions. + +} + +message askfspart1 +{The next partition is /dev/%s%c. You have %d %s left on your disk. +} + +message askfspart2 +{Partition size? } + +message cyl1024 +{The disklabel (set of partitions) you specified has a root partition that +ends beyond the 1024 BIOS cylinder boundary. To be sure that the system +can be booted at all times, the entire root partition must lie below that +limit. You can either: } + +message pickdisk +{Choose disk: } + +message wmbrfail +{Rewrite of MBR failed. I can't continue.} + +message partabovechs +{The NetBSD part of the disk lies outside of the range that the BIOS on +your machine can address. Booting from it may not be possible. Are you +sure you that you want to do this? + +(Answering 'no' will take you back to the partition edit menu.)} + +message setbiosgeom +{You will be prompted for the geometry. Please enter the values you +want. The number of cylinders should be <= 1024 and the number of sectors +should be <= 63. If you have the BIOS set up to use > 1024 cylinders just +truncate that number to 1024 here; NetBSD will know about the rest of the +cylinders. + +} + +message realgeom +{real geom: %d cyl, %d heads, %d sec (NB: for comparison only)\n} + +message biosgeom +{BIOS geom: %d cyl, %d heads, %d sec\n} diff --git a/etc/etc.prep/Makefile.inc b/etc/etc.prep/Makefile.inc new file mode 100644 index 000000000000..e630597101b3 --- /dev/null +++ b/etc/etc.prep/Makefile.inc @@ -0,0 +1,19 @@ +# $NetBSD: Makefile.inc,v 1.1 2001/01/16 16:53:57 nonaka Exp $ +# +# etc.prep/Makefile.inc -- prep-specific etc Makefile targets +# + +BUILD_KERNELS+= INSTALL +INSTALLATION_DIRS+= installation + +# mkisofs arguments to generate bootable iso image +MKISOFS_FLAGS+= -prep-boot installation/floppy/sysinst.fs + +snap_md_post: +.ifndef UPDATE + cd ${.CURDIR}/../distrib && ${MAKE} cleandir +.endif + cd ${.CURDIR}/../distrib && ${MAKE} depend && ${MAKE} + cd ${.CURDIR}/../distrib/prep && ${MAKE} release + cd ${.CURDIR}/../distrib/notes && ${MAKE} release + sh ../distrib/sets/makesums -t ${RELEASEDIR}/installation/floppy '*' diff --git a/sys/arch/prep/conf/INSTALL b/sys/arch/prep/conf/INSTALL new file mode 100644 index 000000000000..b1a2811f34a7 --- /dev/null +++ b/sys/arch/prep/conf/INSTALL @@ -0,0 +1,199 @@ +# $NetBSD: INSTALL,v 1.1 2001/01/16 16:53:57 nonaka Exp $ +# +# INSTALL -- Installation kernel +# + +include "arch/prep/conf/std.prep" + +makeoptions COPTS="-Os -mmultiple" # -Os -mmultiple to reduce size. + +# Enable the hooks used for initializing the ram-disk. +options MEMORY_DISK_HOOKS +options MEMORY_DISK_IS_ROOT # Force root on ram-disk +options MINIROOTSIZE=4096 # 2 Megabytes + +maxusers 8 + +# Compatibility options +#options COMPAT_13 # NetBSD 1.3, +#options COMPAT_14 # NetBSD 1.4, +#options COMPAT_43 # and 4.3BSD + +# File systems +file-system FFS # UFS +file-system EXT2FS # second extended file system (linux) +file-system MFS # memory file system +file-system NFS # Network File System client +file-system CD9660 # ISO 9660 + Rock Ridge file system +file-system MSDOSFS # MS-DOS file system + +# File system options +options VNODE_OP_NOINLINE # Save space by not inlining vnode op calls +options FFS_EI # FFS Endian Independant support +#options EXT2FS_SYSTEM_FLAGS # makes ext2fs file flags (append and + # immutable) behave as system flags. + +# Networking options +options INET # IP + ICMP + TCP + UDP +options NMBCLUSTERS=1024 +options NFS_BOOT_BOOTPARAM +options NFS_BOOT_DHCP + +# Kernel root file system and dump configuration. +config netbsd root on ? type ? + + +# +# Device configuration +# + +mainbus0 at root +cpu0 at mainbus0 + + +# Basic Bus Support + +# PCI bus support +pci0 at mainbus0 bus ? +pci* at pchb? bus ? + +# PCI bridges +pchb* at pci? dev ? function ? # PCI-Host bridges +pcib* at pci? dev ? function ? # PCI-ISA bridges + +# ISA bus support +isa* at pcib? # ISA on PCI-ISA bridge + +# PCMCIA bus support +pcmcia* at pcic? controller ? socket ? + +# ISA PCMCIA controllers +pcic0 at isa? port 0x3e0 iomem 0xd0000 iosiz 0x10000 + +#options PCIC_ISA_INTR_ALLOC_MASK=0x4a00 # free irq 9,11,14 +#options PCIC_ISA_ALLOC_IOBASE=0x0400 +#options PCIC_ISA_ALLOC_IOSIZE=0x0100 + +# ISA Plug-and-Play bus support +isapnp0 at isa? + +# Console Devices + +# ISA console. +pc0 at isa? port 0x60 irq 1 # generic PC console device + +# Keyboard layout configuration for pccons +#options FRENCH_KBD +#options FINNISH_KBD +#options GERMAN_KBD +#options NORWEGIAN_KBD + +mcclock0 at isa? port 0x70 # mc146818 and compatible + + +# Serial Devices + +# ISA serial interfaces +com0 at isa? port 0x3f8 irq 4 # standard PC serial ports +com1 at isa? port 0x2f8 irq 3 + +# Parallel Printer Interfaces + +# ISA parallel printer interfaces +lpt0 at isa? port 0x3bc irq 7 # standard PC parallel ports + + +# SCSI Controllers and Devices + +# PCI SCSI controllers +pcscp* at pci? dev ? function ? # AMD 53c974 PCscsi-PCI SCSI + +# PCMCIA SCSI controllers +aic* at pcmcia? function ? # Adaptec APA-1460 SCSI + +# SCSI bus support +scsibus* at aic? +scsibus* at pcscp? + +# SCSI devices +sd* at scsibus? target ? lun ? # SCSI disk drives +st* at scsibus? target ? lun ? # SCSI tape drives +cd* at scsibus? target ? lun ? # SCSI CD-ROM drives + + +# IDE and related devices + +# PCMCIA IDE controllers +wdc* at pcmcia? function ? + +# IDE drives +# Flags are used only with controllers that support DMA operations +# and mode settings (e.g. some pciide controllers) +# The lowest order four bits (rightmost digit) of the flags define the PIO +# mode to use, the next set of four bits the DMA mode and the third set the +# UltraDMA mode. For each set of four bits, the 3 lower bits define the mode +# to use, and the last bit must be 1 for this setting to be used. +# For DMA and UDMA, 0xf (1111) means 'disable'. +# 0x0fac means 'use PIO mode 4, DMA mode 2, disable UltraDMA'. +# (0xc=1100, 0xa=1010, 0xf=1111) +# 0x0000 means "use whatever the drive claims to support". +wd* at wdc? channel ? drive ? flags 0x0000 + +# ATAPI bus support +atapibus* at wdc? channel ? + +# ATAPI devices +# flags have the same meaning as for IDE drives. +cd* at atapibus? drive ? flags 0x0000 # ATAPI CD-ROM drives +sd* at atapibus? drive ? flags 0x0000 # ATAPI disk drives + +# Miscellaneous mass storage devices + +# ISA floppy +fdc0 at isa? port 0x3f0 irq 6 drq 2 # standard PC floppy controllers +fd* at fdc? drive ? + +# Network Interfaces + +# PCI network interfaces +de* at pci? dev ? function ? # DEC 21x4x-based Ethernet +ep* at pci? dev ? function ? # 3Com 3c59x +le* at pci? dev ? function ? # PCnet-PCI Ethernet +ne* at pci? dev ? function ? # NE2000-compatible Ethernet +vr* at pci? dev ? function ? # VIA Rhine Fast Ethernet + +# ISA Plug-and-Play network intefaces +ep* at isapnp? # 3Com 3c509 Ethernet + +# PCMCIA network interfaces +ep* at pcmcia? function ? # 3Com 3c589 and 3c562 Ethernet +ne* at pcmcia? function ? # NE2000-compatible Ethernet + +# MII/PHY support +dmphy* at mii? phy ? # Davicom DM9101 PHYs +exphy* at mii? phy ? # 3Com internal PHYs +icsphy* at mii? phy ? # Integrated Circuit Systems ICS1890 +inphy* at mii? phy ? # Intel 82555 PHYs +iophy* at mii? phy ? # Intel 82553 PHYs +lxtphy* at mii? phy ? # Level One LXT-970 PHYs +nsphy* at mii? phy ? # NS83840 PHYs +nsphyter* at mii? phy ? # NS83843 PHYs +qsphy* at mii? phy ? # Quality Semiconductor QS6612 PHYs +sqphy* at mii? phy ? # Seeq 80220/80221/80223 PHYs +tlphy* at mii? phy ? # ThunderLAN PHYs +tqphy* at mii? phy ? # TDK Semiconductor PHYs +ukphy* at mii? phy ? # generic unknown PHYs + + +# Pseudo-Devices + +# disk/mass storage pseudo-devices +pseudo-device md 1 # memory disk device (ramdisk) + +# network pseudo-devices +pseudo-device loop # network loopback + +# miscellaneous pseudo-devices +pseudo-device pty # pseudo-terminals +pseudo-device rnd # /dev/random and in-kernel generator +#options RND_COM # use "com" randomness as well