1
0
mirror of https://github.com/openbsd/src.git synced 2024-12-22 16:42:56 -08:00

first cut; most written by mickey, couple tunings by me

This commit is contained in:
deraadt 2004-02-07 21:16:45 +00:00
parent e8b95f26b5
commit ca1c023b14
8 changed files with 427 additions and 2 deletions

View File

@ -1,8 +1,8 @@
# $OpenBSD: Makefile,v 1.23 2003/10/31 04:03:15 drahn Exp $
# $OpenBSD: Makefile,v 1.24 2004/02/07 21:16:45 deraadt Exp $
.if make(obj)
SUBDIR= special alpha crunch hp300 hppa i386 mac68k macppc mvme68k \
mvme88k mvmeppc pegasos sparc sparc64 vax
mvme88k mvmeppc pegasos sparc sparc64 vax amd64 cats
.elif !make(install)
SUBDIR= special
.endif

11
distrib/amd64/Makefile Normal file
View File

@ -0,0 +1,11 @@
# $OpenBSD: Makefile,v 1.1 2004/02/07 21:16:47 deraadt Exp $
SUBDIR= ramdisk_cd # ramdiskA ramdiskB ramdiskC cdfs
unconfig:
cd ramdisk_cd; ${MAKE} unconfig
#cd ramdiskA; ${MAKE} unconfig
#cd ramdiskB; ${MAKE} unconfig
#cd ramdiskC; ${MAKE} unconfig
.include <bsd.subdir.mk>

View File

@ -0,0 +1,5 @@
# $OpenBSD: Makefile.inc,v 1.1 2004/02/07 21:16:47 deraadt Exp $
REV= ${OSrev}
.include <bsd.own.mk>

View File

@ -0,0 +1,128 @@
# $OpenBSD: Makefile.inc,v 1.1 2004/02/07 21:16:47 deraadt Exp $
TOP= ${.CURDIR}/..
.include "${TOP}/Makefile.inc"
IMAGE= mr.fs
CBIN?= instbin
CRUNCHCONF?= ${CBIN}.conf
LISTS?= ${.CURDIR}/../common/list
UTILS?= ${.CURDIR}/../../miniroot
MOUNT_POINT= /mnt
MTREE= ${UTILS}/mtree.conf
XNAME?= floppy
FS?= ${XNAME}${REV}.fs
VND?= svnd0
VND_DEV= /dev/${VND}a
VND_RDEV= /dev/r${VND}a
VND_CRDEV= /dev/r${VND}c
PID!= echo $$$$
REALIMAGE!= echo /var/tmp/image.${PID}
BOOT= ${DESTDIR}/usr/mdec/boot
FLOPPYSIZE?= 144
FLOPPYTYPE?= floppy3
all: ${FS}
${FS}: bsd.gz
dd if=/dev/zero of=${REALIMAGE} bs=10k count=${FLOPPYSIZE}
vnconfig -v -c ${VND} ${REALIMAGE}
disklabel -w -r ${VND} ${FLOPPYTYPE}
newfs -m 0 -o space -i 524288 -c 80 ${VND_RDEV}
mount ${VND_DEV} ${MOUNT_POINT}
cp ${BOOT} ${.OBJDIR}/boot
strip ${.OBJDIR}/boot
strip -R .comment ${.OBJDIR}/boot
dd if=${.OBJDIR}/boot of=${MOUNT_POINT}/boot bs=512
dd if=bsd.gz of=${MOUNT_POINT}/bsd bs=512
/usr/mdec/installboot -v ${MOUNT_POINT}/boot \
${DESTDIR}/usr/mdec/biosboot ${VND_CRDEV}
@echo ""
@df -i ${MOUNT_POINT}
@echo ""
umount ${MOUNT_POINT}
vnconfig -u ${VND}
cp ${REALIMAGE} ${FS}
rm ${REALIMAGE}
DISKTYPE?= rdroot
NBLKS?= 4096
# minfree, opt, b/i trks, sects, cpg
NEWFSARGS= -m 0 -o space -c 16 -i 4096
bsd.gz: bsd.rd
cp bsd.rd bsd.strip
strip bsd.strip
strip -R .comment bsd.strip
gzip -c9 bsd.strip > bsd.gz
bsd.rd: ${IMAGE} bsd rdsetroot
cp bsd bsd.rd
${.OBJDIR}/rdsetroot bsd.rd < ${IMAGE}
bsd:
cd ${.CURDIR}/../../../sys/arch/amd64/conf && config ${RAMDISK}
cd ${.CURDIR}/../../../sys/arch/amd64/compile/${RAMDISK} && \
make clean && make depend && COPTS=-Os make
cp ${.CURDIR}/../../../sys/arch/amd64/compile/${RAMDISK}/bsd bsd
${IMAGE}: ${CBIN} rd_setup do_files rd_teardown
rd_setup: ${CBIN}
dd if=/dev/zero of=${REALIMAGE} bs=512 count=${NBLKS}
vnconfig -v -c ${VND} ${REALIMAGE}
disklabel -w -r ${VND} ${DISKTYPE}
newfs ${NEWFSARGS} ${VND_RDEV}
fsck ${VND_RDEV}
mount ${VND_DEV} ${MOUNT_POINT}
rd_teardown:
@df -i ${MOUNT_POINT}
-umount ${MOUNT_POINT}
-vnconfig -u ${VND}
cp ${REALIMAGE} ${IMAGE}
rm ${REALIMAGE}
rdsetroot: ${TOP}/../common/elfrdsetroot.c
${HOSTCC} -DDEBUG -o rdsetroot ${TOP}/../common/elfrdsetroot.c
unconfig:
-umount -f ${MOUNT_POINT}
-vnconfig -u ${VND}
.PRECIOUS: ${IMAGE}
install:
.ifndef NOBSDRD
cp bsd.rd ${DESTDIR}/snapshot/bsd.rd
.endif
cp ${FS} ${DESTDIR}/snapshot/${FS}
${CBIN}.mk ${CBIN}.cache ${CBIN}.c: ${CRUNCHCONF}
crunchgen -E -D ${BSDSRCDIR} -L ${DESTDIR}/usr/lib \
-c ${CBIN}.c -e ${CBIN} -m ${CBIN}.mk ${CRUNCHCONF}
${CBIN}: ${CBIN}.mk ${CBIN}.cache ${CBIN}.c
make -f ${CBIN}.mk all
strip -R .comment ${CBIN}
${CRUNCHCONF}: ${LISTS}
awk -f ${UTILS}/makeconf.awk CBIN=${CBIN} ${LISTS} > ${CRUNCHCONF}
do_files:
mtree -def ${MTREE} -p ${MOUNT_POINT}/ -u
TOPDIR=${TOP} CURDIR=${.CURDIR} OBJDIR=${.OBJDIR} \
REV=${REV} TARGDIR=${MOUNT_POINT} UTILS=${UTILS} \
sh ${UTILS}/runlist.sh ${LISTS}
rm ${MOUNT_POINT}/${CBIN}
clean cleandir:
/bin/rm -f core ${IMAGE} ${CBIN} ${CBIN}.mk ${CBIN}*.cache \
*.o *.lo *.c bsd bsd.rd bsd.gz bsd.strip floppy*.fs rdsetroot \
${CRUNCHCONF}
.include <bsd.obj.mk>
.include <bsd.subdir.mk>

View File

@ -0,0 +1,177 @@
# $OpenBSD: install.md,v 1.1 2004/02/07 21:16:47 deraadt Exp $
#
#
# Copyright (c) 1996 The NetBSD Foundation, Inc.
# All rights reserved.
#
# This code is derived from software contributed to The NetBSD Foundation
# by Jason R. Thorpe.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# 3. All advertising materials mentioning features or use of this software
# must display the following acknowledgement:
# This product includes software developed by the NetBSD
# Foundation, Inc. and its contributors.
# 4. Neither the name of The NetBSD Foundation nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
# ``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 REGENTS OR CONTRIBUTORS 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.
#
#
# machine dependent section of installation/upgrade script.
#
MDFSTYPE=msdos
MDFSOPTS=-s
MDXAPERTURE=2
ARCH=ARCH
md_set_term() {
local _tables
ask_yn "Do you wish to select a keyboard encoding table?"
[[ $resp == n ]] && return
while : ; do
ask "Select your keyboard type: (P)C-AT/XT, (U)SB or 'done'" P
case $resp in
P*|p*) _tables="be br de dk es fr it jp lt no pt ru sf sg sv ua uk us"
;;
U*|u*) _tables="br de dk es fr it jp no sf sg sv uk us"
;;
done) ;;
*) echo "'$resp' is not a valid keyboard type."
resp=
continue
;;
esac
break;
done
[ -z "$_tables" ] && return
while : ; do
cat << __EOT
The available keyboard encoding tables are:
${_tables}
__EOT
ask "Table name? (or 'done')" us
case $resp in
done) ;;
*) if kbd $resp ; then
echo $resp > /tmp/kbdtype
else
echo "'${resp}' is not a valid table name."
continue
fi
;;
esac
break;
done
}
md_installboot() {
echo Installing boot block...
cp /usr/mdec/boot /mnt/boot
/usr/mdec/installboot -v /mnt/boot /usr/mdec/biosboot ${1}
echo "done."
}
# $1 is the disk to check
md_checkfordisklabel() {
local rval=0
disklabel -r $1 >/dev/null 2>/tmp/checkfordisklabel
if grep "disk label corrupted" /tmp/checkfordisklabel; then
rval=2
fi >/dev/null 2>&1
rm -f /tmp/checkfordisklabel
return $rval
}
md_prep_fdisk() {
local _disk=$1
ask_yn "Do you want to use *all* of $_disk for OpenBSD?"
if [[ $resp == y ]]; then
echo -n "Putting all of $_disk into an active OpenBSD MBR partition (type 'A6')..."
fdisk -e ${_disk} << __EOT > /dev/null
reinit
update
write
quit
__EOT
echo "done."
return
fi
# Manually configure the MBR.
cat << __EOT
You will now create a single MBR partition to contain your OpenBSD data. This
partition must have an id of 'A6'; must *NOT* overlap other partitions; and
must be marked as the only active partition.
The 'manual' command describes all the fdisk commands in detail.
$(fdisk ${_disk})
__EOT
fdisk -e ${_disk}
cat << __EOT
Here is the partition information you chose:
$(fdisk ${_disk})
__EOT
}
md_prep_disklabel() {
local _disk=$1
md_prep_fdisk $_disk
cat << __EOT
You will now create an OpenBSD disklabel inside the OpenBSD MBR
partition. The disklabel defines how OpenBSD splits up the MBR partition
into OpenBSD partitions in which filesystems and swap space are created.
The offsets used in the disklabel are ABSOLUTE, i.e. relative to the
start of the disk, NOT the start of the OpenBSD MBR partition.
__EOT
md_checkfordisklabel $_disk
case $? in
2) echo "WARNING: Label on disk $_disk is corrupted. You will be repairing it.\n"
;;
esac
disklabel -W $_disk >/dev/null 2>&1
disklabel -f /tmp/fstab.$_disk -E $_disk
}
md_congrats() {
}

85
distrib/amd64/common/list Normal file
View File

@ -0,0 +1,85 @@
# $OpenBSD: list,v 1.1 2004/02/07 21:16:47 deraadt Exp $
SRCDIRS distrib/special
SRCDIRS usr.bin bin sbin usr.sbin gnu/usr.bin
SRCDIRS sys/arch/amd64/stand
# copy the crunched binary, link to it, and kill it
COPY ${OBJDIR}/instbin instbin
LINK instbin bin/cat
LINK instbin bin/chmod
LINK instbin bin/cp
LINK instbin bin/pax bin/cpio bin/tar
LINK instbin bin/dd
LINK instbin bin/df
LINK instbin bin/ed
LINK instbin bin/ln
LINK instbin bin/ls
LINK instbin bin/mkdir
LINK instbin bin/mv
LINK instbin bin/rm
LINK instbin bin/hostname
LINK instbin bin/ksh bin/sh
LINK instbin bin/sleep
LINK instbin bin/stty
LINK instbin sbin/chmod bin/chgrp sbin/chown
LINK instbin sbin/disklabel
LINK instbin sbin/dhclient
LINK instbin sbin/fdisk
LINK instbin sbin/dmesg
LINK instbin sbin/fsck_ffs sbin/fsck
LINK instbin sbin/reboot sbin/halt
LINK instbin sbin/ifconfig
LINK instbin sbin/init
LINK instbin sbin/mknod
LINK instbin sbin/mount
LINK instbin sbin/mount_cd9660
LINK instbin sbin/mount_ffs
#LINK instbin sbin/mount_msdos
#LINK instbin sbin/mount_ext2fs
LINK instbin sbin/ping
LINK instbin sbin/newfs
LINK instbin sbin/restore
LINK instbin sbin/route
LINK instbin sbin/umount
LINK instbin sbin/kbd
LINK instbin usr/bin/grep usr/bin/egrep usr/bin/fgrep
LINK instbin usr/bin/ftp
LINK instbin usr/bin/gzip usr/bin/gunzip usr/bin/gzcat
LINK instbin usr/bin/less usr/bin/more
LINK instbin usr/bin/sed
LINK instbin usr/mdec/installboot
ARGVLINK ksh -sh
# copy the MAKEDEV script and make some devices
SCRIPT ${DESTDIR}/dev/MAKEDEV dev/MAKEDEV
SPECIAL cd dev; sh MAKEDEV ramdisk
# we need the contents of /usr/mdec
COPY ${DESTDIR}/usr/mdec/biosboot usr/mdec/biosboot
COPY ${DESTDIR}/usr/mdec/mbr usr/mdec/mbr
COPY ${DESTDIR}/usr/mdec/boot usr/mdec/boot
# various files that we need in /etc for the install
COPY ${DESTDIR}/etc/group etc/group
COPY ${DESTDIR}/etc/spwd.db etc/spwd.db
SCRIPT ${DESTDIR}/etc/disktab etc/disktab.shadow
COPY ${CURDIR}/../../miniroot/protocols etc/protocols
COPY ${CURDIR}/../../miniroot/services etc/services
TERMCAP vt100,vt220,dumb usr/share/misc/termcap
SYMLINK /tmp/disktab.shadow etc/disktab
SYMLINK /tmp/fstab.shadow etc/fstab
SYMLINK /tmp/resolv.conf.shadow etc/resolv.conf
SYMLINK /tmp/hosts etc/hosts
# dhcp things
SCRIPT ${DESTDIR}/sbin/dhclient-script sbin/dhclient-script
# and the installation tools
SCRIPT ${CURDIR}/../../miniroot/dot.profile .profile
SCRIPT ${CURDIR}/../common/install.md install.md
SCRIPT ${CURDIR}/../../miniroot/upgrade.sh upgrade
SCRIPT ${CURDIR}/../../miniroot/install.sh install
SCRIPT ${CURDIR}/../../miniroot/install.sub install.sub
SPECIAL chmod 755 install upgrade sbin/dhclient-script

View File

@ -0,0 +1,11 @@
# $OpenBSD: Makefile,v 1.1 2004/02/07 21:16:47 deraadt Exp $
.PATH: ${.CURDIR}/../ramdisk
RAMDISK=RAMDISK_CD
FLOPPYSIZE=288
FLOPPYTYPE=floppy288
XNAME=cdrom
.include "${.CURDIR}/../common/Makefile.inc"
LISTS+= ${.CURDIR}/list.local

View File

@ -0,0 +1,8 @@
# $OpenBSD: list.local,v 1.1 2004/02/07 21:16:47 deraadt Exp $
# add local links; use bin/sh since instbin has already been unlinked
#LINK instbin sbin/wicontrol
#LINK instbin sbin/ancontrol
#LINK instbin sbin/ccdconfig
LINK instbin sbin/ping6
LINK instbin sbin/rtsol