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