jrra.zone

NeXTstep / OPENstep OS install guide

I recently acquired a NeXTstation and wanted to install an OS on it. Here's my notes on how to do that.

Index

My hardware

Here's what's inside my NeXTstation:

Preparing the install media

NeXTstep and OPENstep install media can be found all over the internet. One gotcha is that what is usually labeled as install CDs "for Intel" will also work perfectly fine for m68k NeXTstations as well. As far as I can tell, NeXTstep and OPENstep install CDs came in two flavors: one for CISC (m68k and i486), and one for RISC (HP-PA and SPARC).

All the NeXTstep and OPENstep install media that I've observed consist of a boot floppy as well as one or more CDs. The boot floppy simply boots from the CD and seems to be somewhat universal between different releases of the OS. Depending on your system's ROM version, you may be able to skip the boot floppy and boot directly from CD, but I have not tried this.

ROM Monitor and booting from floppy

Start by inserting your boot floppy and CD. If you have multiple CDs, insert the one labeled "User".

By default, the NeXTstation will try to boot either from the network or from the internal HDD. We need to circumvent this.

During early boot, press the Command and ` (backtick) keys to escape into the ROM Monitor. (The ` key can be found above the numpad's 7 key.) Once in the ROM monitor, you can type 'help' to get a command list:

CPU MC68040 33 MHz, memory 60 nS
Ethernet address: 0:0:f:1:47:62
Memory size 128MB

NeXT>help
NeXT ROM monitor commands:
	p  inspect/modify configuration parameters
	a [n]  open address register
	m  print memory configuration
	d [n]  open data register
	r [regname]  open processor register
	s [systemreg]  open system register
	e [lwb] [alist] [format] examine memory location addr
	ec  print recorded system error codes
	ej [drive #]  eject optical disk (default = 0)
	eo  (same as above)
	ef [drive #]  eject floppy disk (default = 0)
	c  continue execution at last pc location
	b [device[(ctrl,unit,part)] [filename] [flags]]  boot from device
	S [fcode]  open function code (Address space)
	R [radix]  set input radix
Notes:
	[lwb] select long/word/byte length (default = long).
	[alist] is starting address or list of addresses to cyclically examine.
	Examine command, with no arguments, uses last [alist].
Copyright (c) 1988-1990 NeXT Inc.

NeXT>

The important command here is 'b', and while it's not explained in the help, the full command to boot from a floppy is 'bfd'.

NeXT>bfd
boot fd(0,0,0)
Searching for CD-ROM drives...

At this point, the install system should boot right up and guide you through the install process. It's all pretty straightforward. Note that the installer will reformat the hard drive by default.

After install

Once I had booted up, you'll probably want to know exactly what hardware you have. To find out, open the Terminal app. You can find it in /NextApps. Then enter the 'hostinfo' command. You'll get something like this:

$ hostinfo
Mach kernel version:
         NeXT Mach 3.3: Mon Oct 24 13:56:37 PDT 1994; root(rcbuilder):mk-171.9.obj~2/RC_m68k/RELEASE_M68K

Kernel configured for a single processor only.
1 processor is physically available.
Processor type: MC680x0 (68040)
Processor speed: 33 MHz
Processor active: 0
System type: 5
Board revision: 0xf
Primary memory available: 128.00 megabytes.
Default processor set: 32 tasks, 57 threads, 1 processors
Load average: 0.00, Mach factor: 0.99

The 'hostinfo' command still exists in today's version of macOS, and its output is virtually identical. Here's an example from 10.15.5:

Mach kernel version:
     Darwin Kernel Version 19.5.0: Tue May 26 20:41:44 PDT 2020; root:xnu-6153.121.2~2/RELEASE_X86_64
Kernel configured for up to 16 processors.
8 processors are physically available.
16 processors are logically available.
Processor type: x86_64h (Intel x86-64h Haswell)
Processors active: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Primary memory available: 16.00 gigabytes
Default processor set: 532 tasks, 2954 threads, 16 processors
Load average: 2.42, Mach factor: 13.57
Last updated 2020-07-24