Subject: Minimal 5000/25 and 5000/200 compatible kernel config
To: None <>
From: NetBSD Bob <>
List: port-pmax
Date: 06/15/2000 16:32:31
I am trying to strip out a minimal NetBSD kernel configuration for
running on both a 5000/25 and a 5000/200 class machine.

The only things the machines need to do is serve a few web pages on
the net and ftp a little.  root and I will be the only users aboard.

The idea is to strip it down to the absolute minimum that will run well.

This is what I have stripped down to, so far.  It builds the kernel but
fails to ecoff it.  The kernel runs fine, though.  The ecoff blew up
on an nfs something not found (maybe related to a leftover nfs option

This is for NetBSD-1.4.2.

How much else can I strip out of it, and why?  The why is important,
for the sake of discussion, assuming I am the dummy here, wanting
to learn a little from the collective guru nirvana crewe.....



# 	$NetBSD: GENERIC,v 1999/04/26 16:03:50 perry Exp $
# Distribution kernel (any model) kernel config file
include		"arch/pmax/conf/std.pmax"
maxusers	64

How many users are really needed?  I was figuring 8 would probably do?
I would expect it could be cut down to a root and user login of 2?

options 	MIPS1		# R2000/R3000 CPUs
options 	DEC_3MAX	# DECstation 5000/200 (kn02)
options 	DEC_MAXINE	# Personal DECstation 5000/xx (kn02ca)
options 	"NKMEMCLUSTERS=1024"	# 4K pages in kernel malloc pool

What should NKMEMCLUSTERS be adjusted to for a minimal kernel or for
a kernel optimised for speed?  I would assume the 1024 is a generic

options 	SCSIVERBOSE		# Verbose SCSI errors

I can get rid of the verbosity after testing.

options 	NTP			# network time protocol

Is NTP really needed?

file-system 	FFS		# fast filesystem with user and group quotas
file-system 	CD9660		# ISO 9660 + Rock Ridge file system

FFS is required, and I like the ability to read a CD if necessary, but
the ISO FS could be removed.

options 	INET		# Internet protocols
options 	"TCP_COMPAT_42"	# compatibility with 4.2BSD TCP/IP
options 	IPFILTER_LOG	# ipmon(8) log support

What are the pros and cons of keeping or removing the COMPAT and IPFILTER

options 	"HZ=256"	# RTC rate required

Can someone explain what this is doing?

options 	NFS_BOOT_DHCP	# superset of BOOTP

This can probably be removed?

config		netbsd		root on ? type ?
config		nfsnetbsd	root on ? type nfs

nfsnetbsd can probably be removed if no nfs capability is required?

mainbus0	at root
cpu*		at mainbus0
include 	"arch/pmax/conf/tc.std"
include 	"arch/pmax/conf/builtin.ioasic"
include 	"arch/pmax/conf/builtin.maxine"
include 	"arch/pmax/conf/builtin.3max"
oldscsibus*	at asc?
include 	"arch/pmax/conf/scsi.pmax"

How much of the include config scripts can be stripped out?
I would assume that would have to be hand stripped to a minimal
configuration, file by file.  My only consideration here is that
the kernel run on both the 5000/25 and the 5000/200 machines,
so I only have to build once, and can clone drives to install on
the other machine.

pseudo-device	loop		 1	# network loopback
pseudo-device	sl		 4	# serial-line IP ports
pseudo-device	ppp		 2	# serial-line IP ports
pseudo-device	pty		64	# pseudo ptys
pseudo-device	bpfilter	16	# packet filter ports
pseudo-device	ipfilter		# IP filter, NAT
pseudo-device	vnd		 4	# virtual disk ick
pseudo-device	ccd		 4	# concatenated disks
pseudo-device	rasterconsole	 1 	# NB: raster console requires "fb"
pseudo-device	fb		 1	# up to 3 framebuffers
pseudo-device	rnd			# /dev/random and in-kernel generator

What pseudo devices are really required and why, and what can be
stripped out?

So far, the kernel has shrunk from 2.2 mb to 1.3mb.  How much more can it go?

Thanks for the discussion...