diff options
author | Otto Moerbeek <otto@cvs.openbsd.org> | 2010-01-31 21:36:02 +0000 |
---|---|---|
committer | Otto Moerbeek <otto@cvs.openbsd.org> | 2010-01-31 21:36:02 +0000 |
commit | a2a00a09919765679007f9a2bbf8869ddd4d797e (patch) | |
tree | 3b6a5998f2ad9fdbbca7f257d946877bd97102d0 /distrib/loongson | |
parent | 598a6b73c512718a8ab24e1923bba1ff0085fcc6 (diff) |
initial ramdisk stuff, produces a working bsd.rd
Diffstat (limited to 'distrib/loongson')
-rw-r--r-- | distrib/loongson/Makefile | 5 | ||||
-rw-r--r-- | distrib/loongson/ramdisk/Makefile | 106 | ||||
-rw-r--r-- | distrib/loongson/ramdisk/Makefile.inc | 4 | ||||
-rw-r--r-- | distrib/loongson/ramdisk/install.md | 126 | ||||
-rw-r--r-- | distrib/loongson/ramdisk/list | 105 |
5 files changed, 346 insertions, 0 deletions
diff --git a/distrib/loongson/Makefile b/distrib/loongson/Makefile new file mode 100644 index 00000000000..5fdb250f9b7 --- /dev/null +++ b/distrib/loongson/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2010/01/31 21:36:01 otto Exp $ + +SUBDIR= ramdisk + +.include <bsd.subdir.mk> diff --git a/distrib/loongson/ramdisk/Makefile b/distrib/loongson/ramdisk/Makefile new file mode 100644 index 00000000000..7ef9febfea7 --- /dev/null +++ b/distrib/loongson/ramdisk/Makefile @@ -0,0 +1,106 @@ +# $OpenBSD: Makefile,v 1.1 2010/01/31 21:36:01 otto Exp $ + +REV= ${OSrev} + +TOP= ${.CURDIR}/.. + +BSD_RD= bsd.rd +BSD_BIN= bsd.bin +IMAGE= mr.fs +CBIN?= instbin +CRUNCHCONF?= ${CBIN}.conf +CRUNCHCONFS?= ${.CURDIR}/../common/crunch.conf +LISTS= ${.CURDIR}/list +UTILS?= ${.CURDIR}/../../miniroot + +MOUNT_POINT= /mnt +MTREE= ${UTILS}/mtree.conf + +VND?= svnd0 +VND_DEV= /dev/${VND}a +VND_RDEV= /dev/r${VND}a +VND_CRDEV= /dev/r${VND}c + + +DISKTYPE= rdroot +NBLKS= 8192 +# minfree, opt, b/i trks, sects, cpg +NEWFSARGS= -m 0 -o space -i 4096 + +.ifndef DESTDIR +all ${IMAGE}: + @echo setenv DESTDIR before making a ramdisk! + @false +.else + +# mix config is not needed. +all: ${BSD_RD} ${BSD_BIN} + +${BSD_RD}: ${CBIN} ${IMAGE} bsd rdsetroot + cp bsd ${BSD_RD} + ${.OBJDIR}/rdsetroot ${BSD_RD} ${IMAGE} + +${BSD_BIN}: ${BSD_RD} + objcopy -O binary ${BSD_RD} ${BSD_BIN} + +${IMAGE}: rd_setup do_files rd_teardown + +.endif + +bsd: + cd ${TOP}/../../sys/arch/loongson/conf && config RAMDISK + cd ${TOP}/../../sys/arch/loongson/compile/RAMDISK && \ + ${MAKE} clean && ${MAKE} depend && ${MAKE} + cp ${TOP}/../../sys/arch/loongson/compile/RAMDISK/bsd bsd + +rd_setup: + dd if=/dev/zero of=${IMAGE} bs=512 count=${NBLKS} + vnconfig -v -c ${VND} ${IMAGE} + disklabel -w ${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} + +rdsetroot: ${TOP}/../common/elfrdsetroot.c + ${HOSTCC} -o rdsetroot ${TOP}/../common/elfrdsetroot.c + +unconfig: + -umount -f ${MOUNT_POINT} + -vnconfig -u ${VND} + +.PRECIOUS: ${IMAGE} + +${CBIN}.mk ${CBIN}.cache ${CBIN}.c: ${CRUNCHCONF} + crunchgen -EM -D ${.CURDIR}/../../.. -L ${DESTDIR}/usr/lib ${.ALLSRC} + +${CBIN}: ${CBIN}.mk ${CBIN}.cache ${CBIN}.c + ${MAKE} -f ${CBIN}.mk all + +${CRUNCHCONF}: ${LISTS} + awk -f ${UTILS}/makeconf.awk CBIN=${CBIN} ${LISTS} > ${CBIN}.conf + +do_files: + mtree -def ${MTREE} -p ${MOUNT_POINT}/ -u + TOPDIR=${TOP} CURDIR=${.CURDIR} OBJDIR=${.OBJDIR} \ + REV=${REV} TARGDIR=${MOUNT_POINT} UTILS=${UTILS} \ + RELEASEDIR=${RELEASEDIR} 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} cd${REV}.iso \ + rdsetroot + rm -rf cd-dir + +.ifdef RELEASEDIR +install: + cp ${BSD_RD} ${BSD_BIN} ${RELEASEDIR} +.endif + +.include <bsd.obj.mk> +.include <bsd.subdir.mk> diff --git a/distrib/loongson/ramdisk/Makefile.inc b/distrib/loongson/ramdisk/Makefile.inc new file mode 100644 index 00000000000..0eac336bac3 --- /dev/null +++ b/distrib/loongson/ramdisk/Makefile.inc @@ -0,0 +1,4 @@ +# $OpenBSD: Makefile.inc,v 1.1 2010/01/31 21:36:01 otto Exp $ + +CRUNCHGENOPTS= -EM + diff --git a/distrib/loongson/ramdisk/install.md b/distrib/loongson/ramdisk/install.md new file mode 100644 index 00000000000..a7fc6ddc90a --- /dev/null +++ b/distrib/loongson/ramdisk/install.md @@ -0,0 +1,126 @@ +# $OpenBSD: install.md,v 1.1 2010/01/31 21:36:01 otto 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. +# +# 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. +# + +md_installboot() { +} + +md_prep_fdisk() { + local _disk=$1 _q _d + + while :; do + _d=whole + if [[ -n $(fdisk $_disk | grep 'Signature: 0xAA55') ]]; then + fdisk $_disk + if [[ -n $(fdisk $_disk | grep '^..: A6 ') ]]; then + _q=", use the (O)penBSD area," + _d=OpenBSD + fi + else + echo "MBR has invalid signature; not showing it." + fi + ask "Use (W)hole disk$_q or (E)dit the MBR?" "$_d" + case $resp in + w*|W*) + echo "Disabled, you probably do not want that." +# echo -n "Setting OpenBSD MBR partition to whole $_disk..." +# fdisk -e ${_disk} <<__EOT >/dev/null +#reinit +#update +#write +#quit +#__EOT +# echo "done." + return ;; + e*|E*) + # 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. Inside the fdisk command, the +'manual' command describes all the fdisk commands in detail. + +$(fdisk ${_disk}) +__EOT + fdisk -e ${_disk} + [[ -n $(fdisk $_disk | grep ' A6 ') ]] && return + echo No OpenBSD partition in MBR, try again. ;; + o*|O*) return ;; + esac + done +} + +md_prep_disklabel() { + local _disk=$1 _f _op + + md_prep_fdisk $_disk + + disklabel -W $_disk >/dev/null 2>&1 + _f=/tmp/fstab.$_disk + if [[ $_disk == $ROOTDISK ]]; then + while :; do + echo "The auto-allocated layout for $_disk is:" + disklabel -h -A $_disk | egrep "^# |^ [a-p]:" + ask "Use (A)uto layout, (E)dit auto layout, or create (C)ustom layout?" a + case $resp in + a*|A*) _op=-w ; AUTOROOT=y ;; + e*|E*) _op=-E ;; + c*|C*) break ;; + *) continue ;; + esac + disklabel -f $_f $_op -A $_disk + return + done + fi + + 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. +You must provide each filesystem's mountpoint in this program. + +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 + + disklabel -f $_f -E $_disk +} + +md_congrats() { +} + +md_consoleinfo() { +} diff --git a/distrib/loongson/ramdisk/list b/distrib/loongson/ramdisk/list new file mode 100644 index 00000000000..524edc2f507 --- /dev/null +++ b/distrib/loongson/ramdisk/list @@ -0,0 +1,105 @@ +# $OpenBSD: list,v 1.1 2010/01/31 21:36:01 otto Exp $ + +SRCDIRS distrib/special +SRCDIRS bin sbin usr.bin usr.sbin + +# copy the crunched binary, link to it, and kill it +COPY ${OBJDIR}/instbin instbin +LINK instbin bin/arch +LINK instbin bin/cat +LINK instbin bin/chmod bin/chgrp sbin/chown +LINK instbin bin/cp +LINK instbin bin/dd +LINK instbin bin/df +LINK instbin bin/ed +LINK instbin bin/expr +LINK instbin bin/hostname +LINK instbin bin/ksh bin/sh +ARGVLINK ksh -sh +LINK instbin bin/ln +LINK instbin bin/ls +LINK instbin bin/mkdir +LINK instbin bin/mt bin/eject +LINK instbin bin/mv +LINK instbin bin/pax bin/tar bin/cpio +LINK instbin bin/rm +LINK instbin bin/sha256 +LINK instbin bin/sleep +LINK instbin bin/stty +LINK instbin bin/sync +LINK instbin sbin/dhclient +LINK instbin sbin/disklabel +LINK instbin sbin/dmesg +LINK instbin sbin/fdisk +LINK instbin sbin/fsck +LINK instbin sbin/fsck_ffs +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_udf +LINK instbin sbin/mount_ffs +LINK instbin sbin/mount_msdos +LINK instbin sbin/mount_nfs +LINK instbin sbin/newfs +LINK instbin sbin/newfs_msdos +LINK instbin sbin/ping +LINK instbin sbin/ping6 +LINK instbin sbin/reboot sbin/halt +LINK instbin sbin/route +LINK instbin sbin/rtsol +LINK instbin sbin/umount +LINK instbin usr/bin/ftp +LINK instbin usr/bin/grep usr/bin/fgrep usr/bin/egrep +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 sbin/sysctl + +# copy the MAKEDEV script and make some devices +SCRIPT ${DESTDIR}/dev/MAKEDEV dev/MAKEDEV +SPECIAL cd dev; sh MAKEDEV ramdisk + +# various files that we need in /etc for the install +COPY ${DESTDIR}/etc/group etc/group +COPY ${DESTDIR}/etc/spwd.db etc/spwd.db +COPY ${CURDIR}/../../miniroot/protocols etc/protocols +COPY ${CURDIR}/../../miniroot/services etc/services +SYMLINK /tmp/fstab.shadow etc/fstab +SYMLINK /tmp/resolv.conf.shadow etc/resolv.conf +SYMLINK /tmp/hosts etc/hosts +TERMCAP vt100,vt220,dumb usr/share/misc/termcap + +# firmwares that might need loading +COPY ${DESTDIR}/etc/firmware/kue etc/firmware/kue +COPY ${DESTDIR}/etc/firmware/rum-rt2573 etc/firmware/rum-rt2573 +COPY ${DESTDIR}/etc/firmware/atu-at76c503-i3863-ext etc/firmware/atu-at76c503-i3863-ext +COPY ${DESTDIR}/etc/firmware/atu-at76c503-i3863-int etc/firmware/atu-at76c503-i3863-int +COPY ${DESTDIR}/etc/firmware/atu-at76c503-rfmd-acc-ext etc/firmware/atu-at76c503-rfmd-acc-ext +COPY ${DESTDIR}/etc/firmware/atu-at76c503-rfmd-acc-int etc/firmware/atu-at76c503-rfmd-acc-int +COPY ${DESTDIR}/etc/firmware/atu-at76c505-rfmd-ext etc/firmware/atu-at76c505-rfmd-ext +COPY ${DESTDIR}/etc/firmware/atu-at76c505-rfmd-int etc/firmware/atu-at76c505-rfmd-int +COPY ${DESTDIR}/etc/firmware/atu-intersil-ext etc/firmware/atu-intersil-ext +COPY ${DESTDIR}/etc/firmware/atu-intersil-int etc/firmware/atu-intersil-int +COPY ${DESTDIR}/etc/firmware/atu-license etc/firmware/atu-license +COPY ${DESTDIR}/etc/firmware/atu-rfmd-ext etc/firmware/atu-rfmd-ext +COPY ${DESTDIR}/etc/firmware/atu-rfmd-int etc/firmware/atu-rfmd-int +COPY ${DESTDIR}/etc/firmware/atu-rfmd2958-ext etc/firmware/atu-rfmd2958-ext +COPY ${DESTDIR}/etc/firmware/atu-rfmd2958-int etc/firmware/atu-rfmd2958-int +COPY ${DESTDIR}/etc/firmware/atu-rfmd2958smc-ext etc/firmware/atu-rfmd2958smc-ext +COPY ${DESTDIR}/etc/firmware/atu-rfmd2958smc-int etc/firmware/atu-rfmd2958smc-int + +# dhcp things +SCRIPT ${DESTDIR}/sbin/dhclient-script sbin/dhclient-script + +# and the installation tools +SCRIPT ${CURDIR}/../../miniroot/dot.profile .profile +SCRIPT ${CURDIR}/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 + +HASH var/hash +TZ |