# Sample kernel from Sun Blade 100 (sparc64)



## stoomaroo (Feb 20, 2010)

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 [B]<<< I probably could have kept this in, but I do not even own floppies anymore[/B]

# 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 (Feb 20, 2010)

Posting and Editing in the FreeBSD Forums - use the proper tags (
	
	



```
in this case)
```


----------



## DutchDaemon (Feb 20, 2010)

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 (Feb 20, 2010)

*Learning ... mostly*

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


----------

