Back to the Solbourne Solace [Installing OS/MP on an S3000.]

Installing OS/MP

and using SCSI2SD devices with the Solbourne

Replacing the hard disk in your new-to-you Solbourne should be your first order of business since virtually every hard disk in every Sol I have ever used was a ticking timebomb with a SCSI interface. Since many of these systems have been gutted or the OS messed with, it's probably simpler just to start from scratch.

Nowadays, since parallel SCSI devices are dying out and buying used drives merely prolongs the inevitable, the replacement device of choice (IMHO) is a solid-state SCSI disk emulator, of which I find the SCSI2SD to be the most widely supported and useful. It isn't really any faster -- in fact, in some cases it's a bit slower -- but it's infinitely more reliable and uses vanishingly little power. My "S3000DX" (which you see installing OS/MP from my trusty boots-anything Toshiba CD-ROM at right) powers it completely with termination power; the Molex power cable isn't even connected. With appropriate excess for wear levelling I expect the motherboard to wear out long before the microSD card in it will.

These instructions assume you are installing OS/MP 4.1C, the most recent version of OS/MP available. The steps are oriented more to the IDT systems, which I have the most experience with rebuilding, but should basically work for KBus SeriesX machines as well. I also suspect that these basic instructions (minus the OS/MP specifics) will work for other systems that are based around relatives of the WD33C93A SCSI controller, which is a member of the very popular Western Digital 33C93 chipset used in other SPARCstations, Silicon Graphics systems and even some Commodore Amigas.

Preparing the SCSI2SD

The speed of your microSD card does make a difference. I would not use anything less than a Class 10. Ensure your SCSI2SD is running at least firmware version 4.6.

Using the SCSI2SD configuration utility, create your SCSI "disks." Don't enable any additional features (in particular, do not enable SCSI-2, and do not enable parity -- the Solbourne boot PROM does not boot from such devices). The OS/MP installer does not appear to support geometries larger than 2GB (though see below for a possible workaround), so use 2GB devices, i.e., 512 byte blocks, 4194304 sectors each. I set up two targets sequentially (use Auto to let the configuration utility lay them out for you), assigning them IDs 0 and 1. You can do additional targets, but remember that IDs 5, 6 and 7 are reserved for the tape streamer, the CD-ROM and the host respectively. On my 8GB microSD card I created just the two and left the remainder for wear-leveling. Use whatever meaningful strings you like for vendor, product and serial number. Only use "Hard Drive" as the device.

Save the configuration and let the utility set up your SCSI targets.

Physically installing the SCSI2SD

Just install it like any other SCSI drive, except that the Molex power cable does not need to be connected (you can, if you like, or if you notice there are problems, but termination power appears to be more than adequate). I strongly recommend removing other internal SCSI devices so that there is no contention, at least for the initial boot and installation. Note that there are only two mounting screw points if you are trying to place it into a drive sled.

Formatting and partitioning

(A note here for Series4 owners: you can't boot from CD-ROM and you must use tape. I have never booted a Sol from tape, so you'll need to refer to the documentation on Bitsavers for this section. Also note that the OS/MP patches for 4.1C seem to omit the Series4 entirely, so you may be forced to use 4.1B or earlier. Good luck, let me know how it goes.)

Connect your CD-ROM (I'll assume that's what you're using), insert the OS/MP CD-ROM and boot the proper installation kernel using the magic command


where XXXX is one of Series5 Series6 S4000 for the Series 5/5E, 6/6E or IDT systems respectively. Remember, the CD-ROM must be configured for 512-byte blocks and set to ID 6.

The Solbourne will load the RAMdisk and enter the installation menu. Select the Bourne shell option (3). You will drop to a command prompt. Run format (this is the same utility as SunOS 4.1 uses).

When format starts, it will display all detected SCSI targets. For each of your targets:

  1. Select it from the menu.
  2. For the disk geometry, assuming you have used 2GB targets, select Seagate ST12550N. (Note: it should be possible to use larger targets by editing the RAM disk /etc/format.dat before starting format and adding the appropriate geometry. If you do that, it should appear in the list of choices it offers. This exercise is left for the reader.)
  3. Select format from the menu and wait for the format to complete. There is no point waiting for the tests to complete, however, unless you want to burn some write cycles (just press Ctrl-C).
  4. Select label to write the disk label. Yes, it has no partitions. You'll do that from the installation menu.
  5. Select disk to continue on to the next target, or quit to exit the utility.

Exit the Bourne shell and reboot at this point (4), back into the installation kernel using the command you entered above. It should now detect the formatted targets. Select the partition utility from the menu (1).

You have some choices about partitioning, but here's how I did mine. On sd0 I placed / (as sd0a, i.e., partition a), /usr (as sd0d/partition d) and swap (as sd0b/partition b), and on sd1 a big fat /home (as sd1a/partition a). Recall that in the BSD scheme of things sdXc is always the whole disk, and SunOS is BSD. I selected sd0 and set a b d to appropriate sizes (remember that in this scheme /var and /tmp will be on /, so don't skimp on that), setting everything else to 0. I then assigned mount points to a d, and a pseudo-mount point of primary (for primary swap) to b. Accept the changes by selecting option 8, answering yes, and then re-entering the partitioner. Then, for sd1, I assigned all of the space to a and also gave it a mount point, and accepted that change as well.

In general, I would use twice your physical memory for swap or more (I used 128MB for my 40MB S3000).

Operating system installation

Now that formatting and partitioning are complete, select the installation utility from the main menu (2). Make sure the five essential mountpoints are defined. Usually /var and /tmp are on /, though they don't have to be. If the system did not automatically detect the mountpoints you defined, select the missing one by number and enter the device (for example, in my scheme, root (1) should be on sd0a, swap (2) on sd0b and /usr (3) on sd0d with the remainder located on the root partition). Once everything is done, enter continue for the next step.

On the next screen, verify that media type is CD-ROM, the device is /dev/sr0 and the CD host is localhost (the other options are irrelevant). Enter continue to confirm.

The OS/MP installer will now offer optional packages. You might as well install everything; you'll have more than enough space to do so and then some. To do this, select Optional Software (1) and ensure that the Software Install column is set to y for all items. This will install a full kit with all extras, which is invariably what you want on a device this large. Enter continue to confirm, and install to begin.

During this process file systems will be created with newfs on sd0 and all OS components will be installed. This process will take a number of minutes to complete. Afterwards the system variables will be set to point to the new OS (confirm with yes) and then reboot the machine from the installation menu (4). OS/MP will start the post-installation process.

Post-installation steps

The system will ask you its hostname, IP, broadcast mask, NIS domain (see the FAQ question about DNS and NIS) and timezone. It will then ask for the date and time (see the FAQ question about being unable to set the date past 2000); for these accept the default and change them later. Set the root password, and then the system will go multi-user.

Log in as root. The installer only newfses partitions on sd0, so you'll have to do it for your other mount points. Since I put /home on sd1a, I did newfs sd1a and then added a line to /etc/fstab:

/dev/sd1a /home 4.2 rw 1 3
You can now mount /home (which you'll need to do for the next step).

Next, install all the 4.1C patches. You an either get them from Bitsavers or our gopher server. Un-tar them to /home/patches and then

cd /home/patches
/usr/sbin/pkgadd -a none -d /home/patches p* P*
(this ensures they get applied in the correct order). Rebuild the kernel with the patches applied by going to the correct configuration directory (for IDT systems, this will be /usr/kvm/sys/idt/conf; for SeriesX systems, look under /usr/kvm/sys/Series5/conf or /usr/kvm/sys/Series6/conf), following the instructions in the README file (you can choose any name you like for the new kernel). Once rebuilt and installed, keeping the old kernel (/vmunix) around just in case, shutdown -r now to reboot.

At this point this would be a good time to set up DNS and/or YP/NIS. If you do that, remember that you need to keep YP advised of changes to the system such as new user accounts. You can go to /var/yp and do a make to force an update if things seem to be out of sync or you have just made such a change.

Other nice things to do

Fix spurious warnings about libc with prebuilt SunOS binaries. You can do it with the SunOS libc 1.9 we provide, or you can simply cp /usr/lib/ /usr/lib/ (which will, crudely, work). Either way, make sure you do an ldconfig after to pick up the changes.

If you are telneting in from an xterm, you may need to set your TERM variable to vt100 prior to making the connection (and then you can set it back after).

Read more useful things on our local copy of the venerable Solbourne Shack.

Last but not least

Finally, here is the dmesg from my "S3000DX" with SCSI2SD and an L2 upgrade after successful installation:

Feb  6 22:00
Solbourne Computer Workstation S3000
Copyright (c) 1990 Solbourne Computer, Inc.
BOOT ROM Version: 2.1 09/27/91 13:11:18
40 Megabytes memory installed
Serial #FP00076EX
Ethernet Address = 00:00:8e:06:14:d3

ROM> boot
Entry: 0xfd080000
Size:  0x130000+0x437f0+0x8b3b8

OS/MP 4.1C Export(REYKJAVIK/root)#0: Sat Jan 23 21:28:36 1999
Copyright (c) 1988-1994, Sun Microsystems, Inc. and Solbourne Computer, Inc.
 All  Rights  Reserved. Unpublished -- rights  reserved  under  the   copyright
 laws  of  the  United  States.   Solbourne  Computer,  Inc.  1900  Pike  Road,
 Longmont, Colorado, 80501 U.S.A.

 This  product  and  related  documentation  is  protected  by  copyright   and
 distributed    under    licenses   restricting its use, copying, distribution,
 and decompilation.  No part of this product or related documentation,  may  be
 reproduced  in any  form  by  any means without prior written authorization of
 Sun, Solbourne, and its licensors, if any.

 Derived from SPARC (R) SunOS 4.1.3  licensed  from  Sun   Microsystems,   Inc.
 and  derived   from   UNIX  (R) and Berkeley 4.3BSD licensed from UNIX Systems
 Laboratories, Inc. and The Regents of the University of  California,   respec-

 Restricted Rights Legend: Use, duplication or disclosure  by  the   Government
 is  subject  to  restrictions as set forth in FAR 52.227-19, and (for NASA) as
 supplemented  in  NASA  FAR  Supplement   or   in   subparagraph
 (c)(1)(ii)   of  the  Rights in Technical Data and Computer Software clause of
 DFARS 52.227-7013, any successor regulations,  or  comparable  regulations  of
 other Government agencies as appropriate.
mem = 40960K (0x2800000) 40M
avail mem = 38076416
L2 cache enabled
assign sbus slot 1 to bwtwo0
enabling ECC
cpu = KAP
si0 at sbus 0x40000020 pri 4 
si0: 20MHz WD33C93A ucode 0: R2.3: id 7: synch: offset 12: 5.00MB/sec
sa0 at si0 slave 0
sa1 at si0 slave 0
st0 at si0 slave 4
st1 at si0 slave 5
sd0 at si0 slave 0
sd0: si0 target 0 lun 0: online:  codesrc          SCSI2SD  1.0: 
sd0: sync negotiation: asynch
sd0: label: <Seagate ST12550 Barracuda cyl 2709 alt 2 hd 19 sec 81>
sd1 at si0 slave 1
sd1: si0 target 1 lun 0: online: sol      SCSI2SD3         1.0 : 
sd1: sync negotiation: asynch
sd1: label: <Seagate ST12550 Barracuda cyl 2709 alt 2 hd 19 sec 81>
sd2 at si0 slave 2
sd3 at si0 slave 3
sr0 at si0 slave 6
fdc0 at obio 0x8000c000 pri 11 
fd0 at fdc0 slave 0
zs1 at obio 0x80004000 pri 3 
zs0 at obio 0x80008000 pri 3 
ei0 at obio 0x40000030 pri 6 
Ethernet address = 0:0:8e:6:14:d3
ei0: 0:0:8e:6:14:d3
bwtwo0 at sbus 0x10001000 pri 6 
bwtwo0: resolution 1152 x 900
audioamd0 at obio 0x80010000 pri 9 
root on sd0a fstype 4.2
swap on sd0b fstype spec size 131584K
dump on sd0b fstype spec size 131584K
Primary console: using keyboard / bwtwo0