Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src Build a RAMDISK root kernel on NetBSD/next68k release build.
details: https://anonhg.NetBSD.org/src/rev/aa62d0d746e5
branches: trunk
changeset: 373465:aa62d0d746e5
user: tsutsui <tsutsui%NetBSD.org@localhost>
date: Sat Feb 11 19:12:31 2023 +0000
description:
Build a RAMDISK root kernel on NetBSD/next68k release build.
No sysinst(8) yet, but useful on bootstrap and rescue ops.
diffstat:
distrib/next68k/Makefile | 4 +-
distrib/next68k/instkernel/Makefile | 14 ++
distrib/next68k/ramdisk/Makefile | 42 ++++++
distrib/next68k/ramdisk/dot.profile | 69 ++++++++++
distrib/next68k/ramdisk/list | 84 ++++++++++++
etc/etc.next68k/MAKEDEV.conf | 4 +-
etc/etc.next68k/Makefile.inc | 3 +-
sys/arch/next68k/conf/RAMDISK | 241 +++++++++++++++++++++++++++++++++++-
8 files changed, 452 insertions(+), 9 deletions(-)
diffs (truncated from 526 to 300 lines):
diff -r 1ae362e101bd -r aa62d0d746e5 distrib/next68k/Makefile
--- a/distrib/next68k/Makefile Sat Feb 11 19:09:57 2023 +0000
+++ b/distrib/next68k/Makefile Sat Feb 11 19:12:31 2023 +0000
@@ -1,6 +1,6 @@
-# $NetBSD: Makefile,v 1.1 2023/02/11 07:22:30 tsutsui Exp $
+# $NetBSD: Makefile,v 1.2 2023/02/11 19:12:31 tsutsui Exp $
-SUBDIR= cdroms
+SUBDIR= ramdisk .WAIT instkernel .WAIT cdroms
TARGETS+= release
iso_image:
diff -r 1ae362e101bd -r aa62d0d746e5 distrib/next68k/instkernel/Makefile
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/distrib/next68k/instkernel/Makefile Sat Feb 11 19:12:31 2023 +0000
@@ -0,0 +1,14 @@
+# $NetBSD: Makefile,v 1.1 2023/02/11 19:12:31 tsutsui Exp $
+
+.include <bsd.own.mk>
+.include "${NETBSDSRCDIR}/distrib/common/Makefile.distrib"
+
+RAMDISKDIR!= cd ${.CURDIR}/../ramdisk && ${PRINTOBJDIR}
+RAMDISK= ${RAMDISKDIR}/ramdisk.fs
+
+MDSETTARGETS= RAMDISK ${RAMDISK} -
+MDSET_RELEASEDIR= binary/kernel
+
+.include "${DISTRIBDIR}/common/Makefile.mdset"
+
+.include <bsd.prog.mk>
diff -r 1ae362e101bd -r aa62d0d746e5 distrib/next68k/ramdisk/Makefile
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/distrib/next68k/ramdisk/Makefile Sat Feb 11 19:12:31 2023 +0000
@@ -0,0 +1,42 @@
+# $NetBSD: Makefile,v 1.1 2023/02/11 19:12:31 tsutsui Exp $
+
+.include <bsd.own.mk>
+.include "${NETBSDSRCDIR}/distrib/common/Makefile.distrib"
+
+IMAGE= ramdisk.fs
+IMAGESIZE= 1536k
+MAKEFS_FLAGS+= -f 15
+
+WARNS= 1
+DBG= -Os -fno-unwind-tables
+DBG+= -DNDEBUG # to remove assert(3) macro
+
+NOIEEE80211= yes
+
+CRUNCHBIN= ramdiskbin
+LISTS= ${.CURDIR}/list
+#LIST+= ${DISTRIBDIR}/common/list.sysinst.en
+MTREECONF= ${DISTRIBDIR}/common/mtree.common
+IMAGEENDIAN= be
+MAKEDEVTARGETS= raminst
+IMAGEDEPENDS= ${CRUNCHBIN} \
+ dot.profile \
+ ${NETBSDSRCDIR}/etc/group ${NETBSDSRCDIR}/etc/master.passwd \
+ ${NETBSDSRCDIR}/etc/netconfig \
+ ${DISTRIBDIR}/common/protocols \
+ ${DISTRIBDIR}/common/services
+
+# Use stubs to eliminate some large stuff from libc
+HACK_CURSES= yes
+HACKSRC= ${DISTRIBDIR}/utils/libhack
+.include "${HACKSRC}/Makefile.inc"
+${CRUNCHBIN}: libhack.o
+
+.include "${DISTRIBDIR}/common/Makefile.crunch"
+.include "${DISTRIBDIR}/common/Makefile.dhcpcd"
+.include "${DISTRIBDIR}/common/Makefile.makedev"
+.include "${DISTRIBDIR}/common/Makefile.image"
+
+release:
+
+.include <bsd.prog.mk>
diff -r 1ae362e101bd -r aa62d0d746e5 distrib/next68k/ramdisk/dot.profile
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/distrib/next68k/ramdisk/dot.profile Sat Feb 11 19:12:31 2023 +0000
@@ -0,0 +1,69 @@
+# $NetBSD: dot.profile,v 1.1 2023/02/11 19:12:31 tsutsui 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.
+#
+# <<Id: LICENSE,v 1.2 2000/06/14 15:57:33 cgd Exp>>
+
+PATH=/sbin:/bin:/usr/bin:/usr/sbin:/
+export PATH
+TERM=vt100
+export TERM
+HOME=/
+export HOME
+
+ROOTDEV=/dev/md0a
+
+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
+
+ # get the terminal type
+ eval `tset -s -m ":?$TERM"`
+
+ # mount root read-write
+ mount -u $ROOTDEV /
+
+ # run the installation program
+ if [ -x /sysinst ]; then
+ # run the installation or upgrade script.
+ sysinst || stty sane
+ else
+ echo "This image contains utilities which may be needed"
+ echo "on bootstrap or rescue etc."
+ fi
+fi
diff -r 1ae362e101bd -r aa62d0d746e5 distrib/next68k/ramdisk/list
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/distrib/next68k/ramdisk/list Sat Feb 11 19:12:31 2023 +0000
@@ -0,0 +1,84 @@
+# $NetBSD: list,v 1.1 2023/02/11 19:12:31 tsutsui Exp $
+
+SRCDIRS bin sbin usr.bin usr.sbin
+
+PROG bin/cat
+PROG bin/chmod
+PROG bin/cp
+PROG bin/dd
+PROG bin/df
+#PROG bin/ed
+PROG bin/ln
+PROG bin/ls
+PROG bin/mkdir
+PROG bin/mt
+PROG bin/mv
+PROG bin/pax usr/bin/tar
+PROG bin/pwd
+#PROG bin/rcmd
+#PROG bin/rcp
+PROG bin/rm
+PROG bin/sh
+PROG bin/stty
+PROG bin/sync
+
+PROG sbin/chown bin/chgrp
+PROG sbin/disklabel
+PROG sbin/dmesg
+PROG sbin/fsck
+PROG sbin/fsck_ffs
+PROG sbin/ifconfig
+PROG sbin/init
+PROG sbin/mknod
+PROG sbin/mount
+PROG sbin/mount_cd9660
+PROG sbin/mount_ffs
+PROG sbin/mount_msdos
+PROG sbin/mount_nfs
+PROG sbin/newfs sbin/mount_mfs
+PROG sbin/ping
+PROG sbin/reboot sbin/halt
+PROG sbin/restore sbin/rrestore
+PROG sbin/route
+#PROG sbin/shutdown
+PROG sbin/swapctl sbin/swapon
+#PROG sbin/sysctl
+PROG sbin/umount
+
+PROG usr/bin/ftp
+PROG usr/bin/gzip usr/bin/gzcat usr/bin/gunzip
+PROG usr/bin/more
+#PROG usr/bin/sed
+PROG usr/bin/tset
+
+PROG usr/sbin/chroot
+PROG usr/sbin/installboot
+
+# init invokes the shell as -sh
+ARGVLN sh -sh
+
+SPECIAL disklabel srcdir distrib/utils/x_disklabel
+#SPECIAL ed srcdir distrib/utils/x_ed
+SPECIAL gzip srcdir distrib/utils/x_gzip
+SPECIAL fsck_ffs srcdir distrib/utils/x_fsck_ffs
+SPECIAL ifconfig srcdir distrib/utils/x_ifconfig
+SPECIAL more srcdir distrib/utils/more
+SPECIAL newfs srcdir distrib/utils/x_newfs
+SPECIAL ping srcdir distrib/utils/x_ping
+SPECIAL route srcdir distrib/utils/x_route
+SPECIAL umount srcdir distrib/utils/x_umount
+
+LIBS libhack.o -ledit -lutil -lcurses -lterminfo -lrmt -ll -lm -lz -lprop
+
+COPY ${DESTDIR}/usr/mdec/boot usr/mdec/boot
+
+# various files that we need in /etc for the install
+COPY ${NETBSDSRCDIR}/etc/group etc/group
+COPY ${NETBSDSRCDIR}/etc/master.passwd etc/master.passwd
+COPY ${NETBSDSRCDIR}/etc/netconfig etc/netconfig
+COPY ${DISTRIBDIR}/common/protocols etc/protocols
+COPY ${DISTRIBDIR}/common/services etc/services
+
+# and the boot script
+COPY ${CURDIR}/dot.profile .profile
+MTREE ./.profile type=file uname=root gname=wheel mode=0644
diff -r 1ae362e101bd -r aa62d0d746e5 etc/etc.next68k/MAKEDEV.conf
--- a/etc/etc.next68k/MAKEDEV.conf Sat Feb 11 19:09:57 2023 +0000
+++ b/etc/etc.next68k/MAKEDEV.conf Sat Feb 11 19:12:31 2023 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: MAKEDEV.conf,v 1.6 2023/01/15 16:45:32 tsutsui Exp $
+# $NetBSD: MAKEDEV.conf,v 1.7 2023/02/11 19:12:31 tsutsui Exp $
all_md)
makedev wscons sd0 sd1 sd2 sd3 tty0 tty1
@@ -9,7 +9,7 @@
;;
raminst)
- makedev std
+ makedev std bpf md0
makedev sd0 sd1 sd2 sd3 st0 st1 cd0 cd1
makedev tty0 tty1 opty
;;
diff -r 1ae362e101bd -r aa62d0d746e5 etc/etc.next68k/Makefile.inc
--- a/etc/etc.next68k/Makefile.inc Sat Feb 11 19:09:57 2023 +0000
+++ b/etc/etc.next68k/Makefile.inc Sat Feb 11 19:12:31 2023 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile.inc,v 1.7 2008/03/18 04:20:37 lukem Exp $
+# $NetBSD: Makefile.inc,v 1.8 2023/02/11 19:12:31 tsutsui Exp $
#
# etc.next68k/Makefile.inc -- next68k-specific etc Makefile targets
#
@@ -7,6 +7,7 @@
# to update the release documentation in distrib/notes/common/contents
KERNEL_SETS= GENERIC
+BUILD_KERNELS= RAMDISK
snap_md_post:
# install boot image in installation directory
diff -r 1ae362e101bd -r aa62d0d746e5 sys/arch/next68k/conf/RAMDISK
--- a/sys/arch/next68k/conf/RAMDISK Sat Feb 11 19:09:57 2023 +0000
+++ b/sys/arch/next68k/conf/RAMDISK Sat Feb 11 19:12:31 2023 +0000
@@ -1,13 +1,246 @@
-# $NetBSD: RAMDISK,v 1.4 2009/02/06 18:50:28 jym Exp $
+# $NetBSD: RAMDISK,v 1.5 2023/02/11 19:12:31 tsutsui Exp $
#
# RAMDISK: Root/swap on ramdisk
#
-include "arch/next68k/conf/GENERIC"
+include "arch/next68k/conf/std.next68k"
+
+#options INCLUDE_CONFIG_FILE # embed config file in kernel binary
+
+makeoptions COPTS="-Os -fno-unwind-tables"
# Enable the hooks used for initializing the ram-disk.
options MEMORY_DISK_HOOKS
-options MEMORY_DISK_IS_ROOT
-options MEMORY_DISK_ROOT_SIZE=768
+options MEMORY_DISK_IS_ROOT # Force root on ram-disk
+options MEMORY_DISK_SERVER=0 # no userspace md(4) support
+options MEMORY_DISK_ROOT_SIZE=3072
options MEMORY_DISK_RBFLAGS=RB_SINGLE # boot in single-user mode
+
+# Needs to be set per system. i.e change these as you see fit
Home |
Main Index |
Thread Index |
Old Index