PDA

View Full Version : Sample kernel from Sun Blade 100 (sparc64)


stoomaroo
February 20th, 2010, 17:53
I was searching for a custom kernel for the sparc64 architecture. Athough I will admit that the GENERIC 7.2-RELEASE worked fine, for no other reason that curiosity, I stripped out & cleaned what I could to get a smaller kernel built.

As of this moment, I do not use the workstation for sound, and only plug a USB mouse into it (besides the "Sun" factory keyboard).

My first kernel is as follows, comments/feedback welcome, or even if it helps someone building one of these little workstations. There may be more to strip out, but as I discover functionality along the way, I'll add/update this thread.


# Kernel Configuration Files:

# For hardware specific information check HARDWARE.TXT
#
# $FreeBSD: src/sys/sparc64/conf/GENERIC,v 1.127.2.9.2.1 2009/04/15 03:14:26 kensmith Exp $

cpu SUN4U
ident GENERIC

# To statically compile in device wiring instead of /boot/device.hints
#hints "GENERIC.hints" # Default places to look for devices.

makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols

# Platforms supported
# At this time all platforms are supported, as-is.

options SCHED_4BSD # 4BSD scheduler
#options PREEMPTION # Enable kernel thread preemption
options INET # InterNETworking
#options INET6 # IPv6 communications protocols
options SCTP # Stream Control Transmission Protocol
options FFS # Berkeley Fast Filesystem
options SOFTUPDATES # Enable FFS soft updates support
options UFS_ACL # Support for access control lists
options UFS_DIRHASH # Improve performance on big directories
options UFS_GJOURNAL # Enable gjournal-based UFS journaling
options MD_ROOT # MD is a potential root device
options NFSCLIENT # Network Filesystem Client
options NFSSERVER # Network Filesystem Server
options NFSLOCKD # Network Lock Manager
options NFS_ROOT # NFS usable as /, requires NFSCLIENT
#options MSDOSFS # MSDOS Filesystem
options CD9660 # ISO 9660 Filesystem
options PROCFS # Process filesystem (requires PSEUDOFS)
options PSEUDOFS # Pseudo-filesystem framework
options GEOM_PART_GPT # GUID Partition Tables.
options GEOM_LABEL # Provides labelization
options COMPAT_43TTY # BSD 4.3 TTY compat [KEEP THIS!]
options COMPAT_FREEBSD5 # Compatible with FreeBSD5
options COMPAT_FREEBSD6 # Compatible with FreeBSD6
#options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI
options KTRACE # ktrace(1) support
options STACK # stack(9) support
options SYSVSHM # SYSV-style shared memory
options SYSVMSG # SYSV-style message queues
options SYSVSEM # SYSV-style semaphores
options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions
options ADAPTIVE_GIANT # Giant mutex is adaptive.
options AUDIT # Security event auditing

# Standard busses
device ebus
device isa
device pci
device sbus
device central
device fhc


# ATA and ATAPI devices
device ata
device atadisk # ATA disk drives
device atapicd # ATAPI CDROM drives
#device atapifd # ATAPI floppy drives <<< I probably could have kept this in, but I do not even own floppies anymore

# atkbdc0 controls both the keyboard and the PS/2 mouse
device atkbdc # AT keyboard controller
device atkbd # AT keyboard
device psm # PS/2 mouse

device kbdmux # keyboard multiplexer

# syscons is the default console driver, resembling an SCO console
device sc
device creator # Creator, Creator3D and Elite3D framebuffers
device machfb # ATI Mach64 framebuffers
device splash # Splash screen and screen saver support
options KBD_INSTALL_CDEV # install a CDEV entry in /dev

# Builtin hardware
device auxio # auxiliary I/O device
device clkbrd # Clock Board (blinkenlight on Sun Exx00)
device genclock # Generic clock interface
device eeprom # eeprom (really a front-end for the MK48Txx)
device mk48txx # Mostek MK48Txx clocks
device rtc # rtc (really a front-end for the MC146818)
device mc146818 # Motorola MC146818 and compatible clocks

# Serial (COM) ports
device puc # Multi-channel uarts
device scc # Serial communications controllers.
device uart # Multi-uart driver

# PCI Ethernet NICs that use the common MII bus controller code.
# NOTE: Be sure to keep the 'device miibus' line in order to use these NICs!
device miibus # MII bus support
device gem # Sun GEM/Sun ERI/Apple GMAC

# Pseudo devices.
device loop # Network loopback
device random # Entropy device
device ether # Ethernet support
device sl # Kernel SLIP
device ppp # Kernel PPP
device tun # Packet tunnel.
device pty # Pseudo-ttys (telnet etc)
device md # Memory "disks"
device gif # IPv6 and IPv4 tunneling
device faith # IPv6-to-IPv4 relaying (translation)
device firmware # firmware assist module
device bpf # Berkeley packet filter

# USB support
device ohci # OHCI PCI->USB interface
device usb # USB Bus (required)
device ukbd # Keyboard
device ums # Mouse

# FireWire support
device firewire # FireWire bus code
device fwe # Ethernet over FireWire (non-standard!)
device fwip # IP over FireWire (RFC 2734,3146)
device dcons # Dumb console driver
device dcons_crom # Configuration ROM for dcons



-stoomaroo

DutchDaemon
February 20th, 2010, 19:48
Posting and Editing in the FreeBSD Forums (http://forums.freebsd.org/showthread.php?t=8816) - use the proper tags ([code] in this case)

DutchDaemon
February 20th, 2010, 19:52
There's no real way of assessing your kernel configuration if we don't know what you'll be using or needing. Do you need debugging, do you need NFS services, do you need a firewall? Do you think you need faith or gif if you disable ipv6? Are you on dial-up (SLIP, PPP?) Etc. etc.

stoomaroo
February 20th, 2010, 21:57
This machine sits inside a network where the Firewall/DNS/web services/mail are all handled by other machines. Let's start this one as a postfix mail server.

I know email well -- I work in it professioanlly. Only -- on Linux/Exim, and MS/Exchange/Domino systems. The purpose of this activity is learning FreeBSD & Postfix (...well at this point, stumbling through).

The machine will sit behind a firewall, segregated in its own VLAN hosting the mail services for a small domain I'll be running as test (IPv4 only). It will have an MX in front of it in the DMZ, and act only as an SMTP/IMAP machine (perhaps later) hosting a webmail interface. Maximum 5 users including the postmaster/abuse accounts. Again, perhaps later, performing Domain-to-domain encrypted email transactions.

I could simply build myself a X11/Gnome interfaced machine and use it as a desktop...but this is a more interesting project.

Understandably, I need only to get to it via SSH, and make sure the keyboard & network function -> as it runs in my basement. (So things such as the "Firewire" look like they could get the boot - no need).

At this moment, getting a bare-bones kernel would be ideal. If I make a mstake, and need to rebuild it up later -- so much the better, I might learn something (i.e. like how to use this forum right now).

Also I posted this as I was unable to find a sample SPARC64 kernel elsewhere, for the hardware I have.

-stoomaroo