SMALLRAM revision 1.10
11.10Smanu# $NetBSD: SMALLRAM,v 1.10 2004/09/04 23:29:50 manu Exp $ 21.1Sscottr# 31.1Sscottr# This is an example of how to configure a small, efficient kernel for a 41.1Sscottr# system with limited RAM. Even so it's capable of doing quite a bit. The 51.1Sscottr# hypothetical system used for this example is a Macintosh IIx or 61.1Sscottr# Macintosh IIcx with 8 MB of RAM and an 80 MB disk. One or more DP5380- 71.1Sscottr# based NuBus Ethernet cards and one or more NuBus video cards are 81.1Sscottr# configured, and basic PPP support is available. This configuration is 91.1Sscottr# suitable for experimenting with NetBSD as a router with one or more 101.1Sscottr# Ethernet cards, and up to two PPP connections (one on each serial port). 111.1Sscottr 121.1Sscottrinclude "arch/mac68k/conf/std.mac68k" 131.1Sscottr 141.1Sscottr#options INCLUDE_CONFIG_FILE # embed config file in kernel binary 151.1Sscottr 161.10Smanu#ident "SMALLRAM-$Revision: 1.10 $" 171.1Sscottr 181.1Sscottrmaxusers 8 191.1Sscottr 201.1Sscottrmakeoptions COPTS="-O2 -m68030" # Optimize for the MC68030 211.1Sscottr 221.1Sscottr# CPU support. At least one is REQUIRED. 231.1Sscottr#options M68040 241.1Sscottroptions M68030 251.1Sscottr#options M68020 # Note: must have 68851 PMMU 261.1Sscottr 271.1Sscottr# CPU-related options. 281.1Sscottr#options FPSP 291.1Sscottr#options FPU_EMULATE 301.1Sscottr 311.1Sscottr# Standard system options 321.1Sscottr 331.1Sscottr#options INSECURE # disable kernel security levels 341.1Sscottr 351.1Sscottroptions RTC_OFFSET=0 # hardware clock is this many mins. west of GMT 361.1Sscottr#options NTP # NTP phase/frequency locked loop 371.1Sscottr 381.1Sscottroptions KTRACE # system call tracing via ktrace(1) 391.1Sscottr 401.1Sscottroptions SYSVMSG # System V-like message queues 411.1Sscottroptions SYSVSEM # System V-like semaphores 421.1Sscottr#options SEMMNI=10 # number of semaphore identifiers 431.1Sscottr#options SEMMNS=60 # number of semaphores in system 441.1Sscottr#options SEMUME=10 # max number of undo entries per process 451.1Sscottr#options SEMMNU=30 # number of undo structures in system 461.1Sscottroptions SYSVSHM # System V-like memory sharing 471.1Sscottr#options SHMMAXPGS=1024 # 1024 pages is the default 481.1Sscottr 491.1Sscottr#options LKM # loadable kernel modules 501.1Sscottr 511.3Slukemoptions USERCONF # userconf(4) support 521.1Sscottr#options PIPE_SOCKETPAIR # smaller, but slower pipe(2) 531.9Satatat#options SYSCTL_INCLUDE_DESCR # Include sysctl descriptions in kernel 541.1Sscottr 551.1Sscottr# Diagnostic/debugging support options 561.1Sscottroptions DIAGNOSTIC # cheap kernel consistency checks 571.1Sscottr#options DEBUG # expensive debugging checks/support 581.1Sscottr#options KMEMSTATS # kernel memory statistics (vmstat -m) 591.1Sscottroptions DDB # in-kernel debugger 601.1Sscottr#options DDB_HISTORY_SIZE=100 # enable history editing in DDB 611.1Sscottr#options KGDB # remote debugger 621.1Sscottr#options KGDB_DEV=0xc01 # kgdb device number (dev_t) 631.1Sscottr#options KGDB_DEVRATE=38400 # baud rate 641.1Sscottr#makeoptions DEBUG="-g" # compile full symbol table 651.1Sscottr 661.1Sscottr# Compatibility options 671.1Sscottr#options COMPAT_NOMID # NetBSD 0.8, 681.1Sscottr#options COMPAT_09 # NetBSD 0.9, 691.1Sscottr#options COMPAT_10 # NetBSD 1.0, 701.1Sscottr#options COMPAT_11 # NetBSD 1.1, 711.1Sscottroptions COMPAT_12 # NetBSD 1.2, 721.1Sscottroptions COMPAT_13 # NetBSD 1.3, 731.1Sscottroptions COMPAT_14 # NetBSD 1.4, 741.1Sscottroptions COMPAT_15 # NetBSD 1.5, 751.8Scloptions COMPAT_16 # NetBSD 1.6, 761.1Sscottr#options COMPAT_43 # and 4.3BSD 771.1Sscottr#options TCP_COMPAT_42 # 4.2BSD TCP/IP bug compat. Not recommended. 781.1Sscottr 791.1Sscottr# The following is needed to run pre-NetBSD 1.6 binaries under ELF. 801.1Sscottroptions COMPAT_AOUT_M68K # compatibility with NetBSD/m68k a.out 811.1Sscottroptions EXEC_AOUT # support for exec'ing a.out 821.1Sscottr 831.1Sscottr#options COMPAT_LINUX # compatibility with Linux/m68k binaries 841.1Sscottr#options COMPAT_M68K4K # compatibility with NetBSD/m68k4k binaries 851.1Sscottr#options COMPAT_SUNOS # compatibility with SunOS 4.x binaries 861.1Sscottr#options COMPAT_SVR4 # compatibility with SVR4 binaries 871.1Sscottr 881.1Sscottr# File systems 891.1Sscottrfile-system FFS # UFS 901.1Sscottr#file-system EXT2FS # second extended file system (linux) 911.1Sscottr#file-system LFS # log-structured file system 921.1Sscottrfile-system MFS # memory file system 931.1Sscottrfile-system NFS # Network File System client 941.1Sscottr#file-system CD9660 # ISO 9660 + Rock Ridge file system 951.1Sscottr#file-system MSDOSFS # MS-DOS file system 961.1Sscottr#file-system FDESC # /dev/fd 971.1Sscottr#file-system KERNFS # /kern 981.1Sscottr#file-system NULLFS # loopback file system 991.1Sscottr#file-system OVERLAY # overlay file system 1001.1Sscottr#file-system PORTAL # portal filesystem (still experimental) 1011.1Sscottr#file-system PROCFS # /proc 1021.1Sscottr#file-system UMAPFS # NULLFS + uid and gid remapping 1031.1Sscottr#file-system UNION # union file system 1041.1Sscottr#file-system CODA # Venus/Coda distributed file system 1051.1Sscottr 1061.1Sscottr# File system options 1071.1Sscottroptions QUOTA # UFS quotas 1081.1Sscottr#options FFS_EI # FFS Endian Independant support 1091.1Sscottr#options SOFTDEP # FFS soft updates support. 1101.1Sscottr#options NFSSERVER # Network File System server 1111.1Sscottr#options EXT2FS_SYSTEM_FLAGS # makes ext2fs file flags (append and 1121.1Sscottr # immutable) behave as system flags. 1131.1Sscottr 1141.1Sscottr# Networking options 1151.1Sscottroptions GATEWAY # packet forwarding 1161.1Sscottroptions INET # IP + ICMP + TCP + UDP 1171.1Sscottr#options INET6 # IPV6 1181.1Sscottr#options IPSEC # IP security 1191.1Sscottr#options IPSEC_ESP # IP security (encryption part; define w/IPSEC) 1201.1Sscottr#options IPSEC_DEBUG # debug for IP security 1211.1Sscottroptions MROUTING # IP multicast routing 1221.10Smanuoptions PIM # Protocol Independent Multicast 1231.1Sscottr#options NS # XNS 1241.1Sscottr#options NSIP # XNS tunneling over IP 1251.1Sscottr#options ISO,TPIP # OSI 1261.1Sscottr#options EON # OSI tunneling over IP 1271.1Sscottr#options CCITT,LLC,HDLC # X.25 1281.1Sscottr#options NETATALK # AppleTalk networking protocols 1291.1Sscottroptions PPP_BSDCOMP # BSD-Compress compression support for PPP 1301.1Sscottr#options PPP_DEFLATE # Deflate compression support for PPP 1311.1Sscottroptions PPP_FILTER # Active filter support for PPP (requires bpf) 1321.1Sscottroptions PFIL_HOOKS # pfil(9) packet filter hooks 1331.1Sscottr#options IPFILTER_LOG # ipmon(8) log support 1341.5Smartti#options IPFILTER_DEFAULT_BLOCK # block all packets by default 1351.1Sscottr#options TCP_DEBUG # Record last TCP_NDEBUG packets with SO_DEBUG 1361.1Sscottr 1371.1Sscottr# These options enable verbose messages for several subsystems. 1381.1Sscottr# Warning, these may compile large string tables into the kernel! 1391.1Sscottr#options SCSIVERBOSE # human readable SCSI error messages 1401.1Sscottr 1411.1Sscottr# wscons options 1421.1Sscottr#options WSEMUL_SUN # sun terminal emulation 1431.1Sscottroptions WSEMUL_VT100 # VT100 / VT220 emulation 1441.1Sscottroptions WSDISPLAY_COMPAT_ITEFONT # use ite font (6x10) 1451.1Sscottr 1461.1Sscottr# rcons options; note that 1-bit and 8-bit displays are supported by default. 1471.1Sscottr#options RCONS_2BPP # Support for 2-bit display 1481.1Sscottr#options RCONS_4BPP # Support for 4-bit display 1491.1Sscottr#options RCONS_16BPP # Support for 16-bit display 1501.1Sscottr 1511.1Sscottr# Mac-specific options 1521.1Sscottr#options ALTXBUTTONS # Map Opt-{1,2,3} to mouse buttons 1531.1Sscottr#options DISABLE_EXT_CACHE # Don't use IIci external cache 1541.1Sscottroptions GRF_COMPAT # Include grf compatibility code 1551.1Sscottr#options MRG_ADB # Use ROM-based ADB driver 1561.1Sscottr#options ZS_CONSOLE_ABORT 1571.1Sscottr 1581.1Sscottr 1591.1Sscottr# Kernel root file system and dump configuration. 1601.1Sscottrconfig netbsd root on ? type ? 1611.1Sscottr 1621.1Sscottr# 1631.1Sscottr# Device configuration 1641.1Sscottr# 1651.1Sscottr 1661.1Sscottrmainbus0 at root 1671.1Sscottr 1681.1Sscottrfpu0 at mainbus? # Floating-Point Coprocessor support 1691.1Sscottr 1701.1Sscottr 1711.1Sscottr# Basic Bus Support 1721.1Sscottr 1731.1Sscottr# On-board I/O bus support 1741.1Sscottrobio0 at mainbus? 1751.1Sscottr 1761.1Sscottr# NuBus support 1771.1Sscottrnubus0 at mainbus? 1781.1Sscottr 1791.1Sscottr 1801.1Sscottr# Console Devices 1811.1Sscottr 1821.1Sscottr# Apple Desktop Bus interface 1831.1Sscottradb0 at obio? 1841.1Sscottraed* at adb? # ADB event device 1851.1Sscottrakbd* at adb? # ADB keyboard 1861.1Sscottrams* at adb? # ADB mouse 1871.1Sscottr 1881.1Sscottr# Basic frame buffer support 1891.1Sscottr#intvid0 at obio? # Internal video hardware 1901.1Sscottrmacvid* at nubus? # NuBus video card 1911.1Sscottr 1921.1Sscottr# Device-independent frame buffer interface 1931.1Sscottr#macfb* at intvid? 1941.1Sscottrmacfb* at macvid? 1951.1Sscottr 1961.1Sscottr# Workstation Console devices 1971.1Sscottrwsdisplay0 at macfb? console ? 1981.1Sscottrwskbd0 at akbd? console ? 1991.1Sscottrwsmouse0 at ams? 2001.1Sscottr 2011.1Sscottr 2021.1Sscottr# Serial Devices 2031.1Sscottr 2041.1Sscottr# On-board serial interface 2051.1Sscottrzsc0 at obio? 2061.1Sscottrzstty* at zsc? channel ? 2071.1Sscottr 2081.1Sscottr 2091.1Sscottr# SCSI Controllers and Devices 2101.1Sscottr 2111.1Sscottr# SCSI controllers 2121.1Sscottr# XXX - use only one of ncrscsi or sbc 2131.1Sscottr#ncrscsi0 at obio? # SCSI NCR 5380 2141.1Sscottrsbc0 at obio? flags 0x1 # MI SCSI NCR 5380 2151.1Sscottr#esp0 at obio? # SCSI NCR 53C9x 2161.1Sscottr#esp1 at obio? # SCSI NCR 53C9x 2171.1Sscottr 2181.1Sscottr# SCSI bus support 2191.1Sscottrscsibus* at scsi? 2201.1Sscottr 2211.1Sscottr# SCSI devices 2221.1Sscottrsd* at scsibus? target ? lun ? # SCSI disk drives 2231.1Sscottr#st* at scsibus? target ? lun ? # SCSI tape drives 2241.1Sscottr#cd* at scsibus? target ? lun ? # SCSI CD-ROM drives 2251.1Sscottr#ch* at scsibus? target ? lun ? # SCSI autochangers 2261.1Sscottr#se* at scsibus? target ? lun ? # SCSI ethernet 2271.1Sscottr#ss* at scsibus? target ? lun ? # SCSI scanners 2281.1Sscottr#uk* at scsibus? target ? lun ? # SCSI unknown 2291.1Sscottr 2301.1Sscottr# IDE controller and devices 2311.1Sscottr#wdc* at obio? flags 0x1000 2321.1Sscottr#wd* at wdc? channel ? drive ? 2331.1Sscottr 2341.1Sscottr 2351.1Sscottr# Miscellaneous mass storage devices 2361.1Sscottr 2371.1Sscottr# IWM floppy disk controller 2381.1Sscottr#iwm0 at obio? # Sony driver (800K GCR) 2391.1Sscottr#fd* at iwm? drive ? 2401.1Sscottr 2411.1Sscottr 2421.1Sscottr# Network Interfaces 2431.1Sscottr 2441.1Sscottr# On-board Ethernet controllers 2451.1Sscottr#sn* at obio? # SONIC-based (DP83932, DP83916) 2461.1Sscottr#mc* at obio? # MACE-based 2471.1Sscottr 2481.1Sscottr# NuBus Ethernet controllers 2491.1Sscottrae* at nubus? # DP8390-based 2501.1Sscottr#sn* at nubus? # SONIC-based (DP83932, DP83916) 2511.1Sscottr#sm* at nubus? # SMC 91cxx-based 2521.1Sscottr 2531.6Sjdolecek#nsphy* at mii? phy ? 2541.6Sjdolecek#ukphy* at mii? phy ? 2551.1Sscottr 2561.1Sscottr# Audio Devices 2571.1Sscottr 2581.1Sscottr# On-board audio hardware 2591.1Sscottrasc0 at obio? # ASC/EASC audio 2601.1Sscottr 2611.1Sscottr# Pseudo-Devices 2621.1Sscottr 2631.1Sscottr# disk/mass storage pseudo-devices 2641.1Sscottrpseudo-device ccd 4 # concatenated/striped disk devices 2651.1Sscottr#pseudo-device raid 8 # RAIDframe disk driver 2661.1Sscottr#options RAID_AUTOCONFIG # auto-configuration of RAID components 2671.1Sscottr# Options to enable various other RAIDframe RAID types. 2681.1Sscottr# options RF_INCLUDE_EVENODD=1 2691.1Sscottr# options RF_INCLUDE_RAID5_RS=1 2701.1Sscottr# options RF_INCLUDE_PARITYLOGGING=1 2711.1Sscottr# options RF_INCLUDE_CHAINDECLUSTER=1 2721.1Sscottr# options RF_INCLUDE_INTERDECLUSTER=1 2731.1Sscottr# options RF_INCLUDE_PARITY_DECLUSTERING=1 2741.1Sscottr# options RF_INCLUDE_PARITY_DECLUSTERING_DS=1 2751.1Sscottr#pseudo-device md 1 # memory disk device (ramdisk) 2761.1Sscottr#pseudo-device vcoda 1 # Venus/Coda distributed file system 2771.1Sscottrpseudo-device vnd 4 # disk-like interface to files 2781.1Sscottr 2791.1Sscottr# network pseudo-devices 2801.1Sscottrpseudo-device bpfilter 12 # Berkeley packet filter 2811.1Sscottrpseudo-device ipfilter # IP filter (firewall) and NAT 2821.1Sscottrpseudo-device loop # network loopback 2831.1Sscottrpseudo-device ppp 2 # Point-to-Point Protocol 2841.1Sscottr#pseudo-device pppoe # PPP over Ethernet (RFC 2516) 2851.1Sscottr#pseudo-device sl 2 # Serial Line IP 2861.1Sscottr#pseudo-device strip 2 # Starmode Radio IP (Metricom) 2871.1Sscottrpseudo-device tun 2 # network tunneling over tty 2881.1Sscottr#pseudo-device gre 2 # generic L3 over IP tunnel 2891.1Sscottr#pseudo-device gif 4 # IPv[46] over IPv[46] tunnel (RFC1933) 2901.1Sscottr#pseudo-device faith 1 # IPv[46] tcp relay translation i/f 2911.1Sscottr#pseudo-device stf 1 # 6to4 IPv6 over IPv4 encapsulation 2921.1Sscottr#pseudo-device vlan # IEEE 802.1q encapsulation 2931.1Sscottr#pseudo-device bridge # simple inter-network bridging 2941.1Sscottr 2951.1Sscottr# miscellaneous pseudo-devices 2961.1Sscottrpseudo-device grf 2 # grf emulation for wscons 2971.1Sscottrpseudo-device ite 1 # ite emulation for wscons 2981.1Sscottrpseudo-device pty # pseudo-terminals 2991.1Sscottr#pseudo-device tb 1 # tablet line discipline 3001.2Slukempseudo-device clockctl # user control of clock subsystem 3011.1Sscottr 3021.1Sscottr# rnd is EXPERIMENTAL at this point. 3031.1Sscottr#pseudo-device rnd # /dev/random and in-kernel generator 3041.1Sscottr#options RND_COM # use "com" randomness as well (BROKEN) 305