Booting the SPARCstation

The SPARCstation was the first pizzabox I was able to connect a serial cable to and turn on. As its self-tests scrolled by (first try!), I had high hopes…

…that were quickly dashed - neither of its two internal SCSI hard disks seemed to be able to boot. The SPARCstation went to the back burner for a while as I focused on booting the Indy. Getting further meant booting from some other source - requiring tools I didn’t have at hand:

A few weeks later I acquired an AUI -> 10Base-T transceiver, so I dug in to netbooting. Solaris 7 (the most recent OS supporting the sun4c family) has instructions and scripts for setting up a netboot server, but they encode a lot of assumptions about running on Solaris. I tried running from a Solaris 10 virtual machine, but the scripts (written to target Solaris 7) were incredibly incompatible.

Progress on booting stalled again…

A wild CD-ROM appears!

…until I procured a CD drive!

Finding the right CD drive was quite a task - SCSI CD-ROM drives aren’t exactly prevalent in 2017, nor are external enclosures that can provide a SCSI device with power and the right connectors. The pickings for original external CD drives on eBay were quite slim (including many that needed power adapters that weren’t included 😢). In a stroke of luck, I eventually found one that wasn’t an outrageous price, and a Sun-branded one to boot!

When I bought it I didn’t realize just how lucky this was: it turns out that older Sun computers (like mine) use an unusual CD-ROM block size of 512 bytes (typical sizes range from 2048 to 2352 bytes). Despite several people mentioning to me that the one I had bought likely supported the 512 size, and a quite detailed guide available to explain why ending up with a Sun model was a good thing, I still managed to only get this one by chance. A happy accident!

Naturally, the first thing I did with my new drive was try to boot the SPARCstation. Though it’s not quite USB, setting up a SCSI drive is reasonably simple:

Investigate the existing OS

The first order of business was to boot from the OS install disk to a shell and see if the already installed OS was salvageable. The installation docs say that at the ok prompt you should be able to do

ok boot cdrom

to get to the installer, and

ok boot cdrom -s

to boot from the CD in to a single-user mode root shell. My SPARCstation 1+ is old enough that its firmware doesn’t have a concept of cdrom as a valid boot target. A footnote thankfully informed me:

For systems with older EEPROMs, replace cdrom with sd(0,6,2) to boot from the system’s CD-ROM.

That worked! The first thing I tried was mounting the internal drives, which immediately failed and asked me to run fsck. Of the partitions, fsck found plenty of errors and only managed to make a few of them mountable. None of it was interesting or useable stuff (I think I got like, a / partition? but no /boot or /usr), so I made the call to wipe it and re-install:

sparcstation# format
Searching for disks...done

AVAILABLE DISK SELECTIONS:
       0. c0t3d0 <SUN0424 cyl 1151 alt 2 hd 9 sec 80>
          /sbus@1,f8000000/esp@0,800000/sd@3,0
Specify disk (enter its number): 0
selecting c0t3d0
[disk formatted]


FORMAT MENU:
        disk       - select a disk
        type       - select (define) a disk type
        partition  - select (define) a partition table
        current    - describe the current disk
        format     - format and analyze the disk
        repair     - repair a defective sector
        label      - write label to the disk
        analyze    - surface analysis
        defect     - defect list management
        backup     - search for backup labels
        verify     - read and display labels
        save       - save new disk/partition definitions
        inquiry    - show vendor, product and revision
        volname    - set 8-character volume name
        !<cmd>     - execute <cmd>, then return
        quit
format> format
Ready to format. Formatting cannot be interrupted
and takes 16 minutes (estimated). Continue? y
Beginning format. The current time is Tue Oct 17 16:21:55 2017

Formatting...done
Warning: no backup labels

Verifying media...
        pass 0 - pattern = 0xc6dec6de
   1150/8/62

        pass 1 - pattern = 0x6db6db6d
   1150/8/62

Warning: no backup labels
Total of 0 defective blocks repaired.
format>

time to reboot and do a real install!

Installation

The Solaris install process starts with a few questions about your language, locale, and terminal type. It then launches a curses-style install program to get details about your networking situation and time-zone settings. Finally, it informs you:

System identification is completed.

…and hangs for about 20 minutes without any more output. The first few times this happened I was convinced I had done something wrong - maybe the installer was angry about me not using the framebuffer for install, or a RAM chip was bad, or something. It turns out it was just…thinking about stuff. After the long wait, the curses-style installer comes back:

- Solaris Interactive Installation ---------------------------------

  You'll be using the initial option for installing Solaris software
  on the system. The initial option overwrites the system disks when
  the new Solaris software is installed.

  On the following screens, you can accept the defaults or you can
  customize how Solaris software will be installed by:

- Allocating space for diskless clients or AutoClient systems
- Selecting the type of Solaris software to install
- Selecting disks to hold software you've selected
- Specifying how file systems are laid out on the disks

  After completing these tasks, a summary of your selections (called
  a profile) will be displayed.

--------------------------------------------------------------------
     F2_Continue    F5_Exit    F6_Help

I went with the default partitioning and the basic set of packages that would fit on the small hard drive. The install proper took around two hours - a big reminder that this tech isn’t from 2017! At completion, the installer installed a handful of patches and rebooted the machine.

First boot

Post-install, things came up pretty smoothly (except for a bunch of network errors - I didn’t have the ethernet cable plugged in)

SPARCstation 1+, No keyboard.
ROM Rev. 1.3, 64 MB memory installed, Serial #12648430.
Ethernet address 8:0:20:c0:ff:ee, Host ID: 53c0ffee.

Testing
Booting from: sd(0,0,0)vmunix
SunOS Release 5.7 Version Generic_106541-08 [UNIX(R) System V Release 4.0]
Copyright (c) 1983-1999, Sun Microsystems, Inc.
configuring network interfaces:le0: No carrier - transceiver cable problem?
 le0.
Hostname: sparcstation
Warning: failed to open /dev/dump (No such file or directory):
run dumpadm(1M) to verify dump configuration
Configuring /dev and /devices
Configuring the /dev directory (compatibility devices)
The system is coming up. Please wait.
Configuring network interface addresses: le0.
RPC: Timed out
starting routing daemon.
starting rpc services: rpcbindkeyserv: failed to generate host's netname when establishing root's key.
 keyserv done.

This being the first boot, I was prompted to make a root password:

On this screen you can create a root password.

A root password can contain any number of characters, but only the
first eight characters in the password are significant. (For
example, if you create `a1b2c3d4e5f6' as your root password, you
can use `a1b2c3d4' to gain root access.)

You wil be prompted to type the root password twice; for security,
the password will not be displayed on the screen as you type it.

> If you do not want a root password, press RETURN twice.

Root password: _


Press Return to continue.

Finally, I made it to a shell!

System identification is completed.
Setting netmask of le0 to 255.255.255.0
Setting default interface for multicast: add net 224.0.0.0: gateway SPARCstation
syslog service starting.
Print services started.
volume management starting.
The system is ready.

sparcstation console login: root
Password:
Sun Microsystems Inc.   SunOS 5.7        Generic October 1998
# hostname
sparcstation
#

From shell to desktop

From here, setting up X and connecting a remote X session was pretty simple (in no small part because of the helpful manual):

solaris login manager

solaris login manager

Logging in as root gave me a pretty rad splash screen:

solaris cde splash screen

solaris cde splash screen

and eventually a pretty standard CDE desktop:

solaris cde desktop

solaris cde desktop

I haven’t dug too deeply in to what sorts of things are installed by default, but one notable application was the Sun Hot Java web browser:

solaris hot java browser

solaris hot java browser

A pretty satisfying reward for the effort of installing! Since I did this install (about a month ago!), I’ve re-installed an older version of Solaris (it was quite bogged down running 7 - I’m now trying out 2.4) and started using both hard disks installed (so I don’t have to skimp on installed packages). I’m hopeful to get a development setup working soon!