Sun SparcStation IPX

I had a couple of close encounters with Sun workstations back in the early 90s. The first was with a mobile computer system used by the Royal Australian Navy to process laser depth sounding. Two Sparcstation 2 (i think) served as the graphical front ends for a MIPS rack mounted system.

The second was when my employer chose to use Mentor Graphics PCB design software, which ran on Sparcstation IPXs.

This one came up on Facebook marketplace quite early in my hobby back in 2019. I rediscovered the seller as a colleague, Daniel, at the Adelaide Retro Computer Group a year or so later.

The IPX 4/50 unit came with 64MB of memory and an internal 6GB SCSI drive with redhat 6.2 installed.  It also came with a SCSI CDROM, an empty hard drive expansion unit, and an HP 2000 DC DAT tape drive and all the cables required to join them up.

I purchased another spare caddy CDROM unit from Daniel.

It came in pretty good condition and was able to boot Linux from its hard disk as long as the NVRAM parameter were punched in prior to boot. It was very slow with Linux 6.2 though.

The mouse is one of the optical units that requires a grid over a reflective surface. Daniel sent me a PDF of the grid for me to use to make a mouse mat.

It came with a video cable and adapter for use on a normal VGA screen. The Sun monitor shown above was an addition courtesy of Michael from the Adelaide Retro Computer Group, who saved it from recycling.

Although i’d used similar machines in the past, i have never been a Unix system administrator, so i expected to have some challenges.

Since setting up this machine, i have added an Ultra 5, a Enterprise 2, and an SGI Indy. I am still a very amateurish admin, but i know more than i used to.

IPX Getting Started

The IPX is a really neat, tightly packed, machine. It opens up a little like a book, so remarkably everything is pretty easy to access.

The machine had two SBus cards installed:

  • Sun / X1146A / 501-1931 / Serial Parallel Controller
  • Sun Lance Ethernet

Normally at this point i would inspect the power supply, but given that the unit was working, and probably because i was a little impatient, i didn’t. More on this in another post.

In a similarly slack way, i didn’t check out the floppy disk drive either.

The first thing to address was the flat PRAM battery. Sun made its replacement very difficult.  The IPX uses a real time clock chip that includes an embedded battery and crystal. 

The whole package can be replaced, but current versions of the chip do not work with the IPX; apparently, Sun used undocumented features of the original device.

Without the battery, the unit must be manually reconfigured on every power cycle.

The fix was documented on the net and involved cutting into the package to find the battery leads and then soldering on a new battery.  It’s a bit rough, but it works.

I followed the instructions here: http://www.tns-soft.com/nvram_redux.html, but this is a dead link. i kept a copy here:

NVRAM values were updated using:

http://www.obsolyte.com/sunFAQ/faq_nvram.html

Modify the hostid of an IPX to be 57c0ffee and the ethernet address to be 08:00:20:c0:ff:ee. At the OpenBoot monitor prompt (ok):

1 0 mkp
real-machine-type 1 mkp
8 2 mkp
0 3 mkp
20 4 mkp
c0 5 mkp
ff 6 mkp
ee 7 mkp
0 8 mkp
0 9 mkp
0 a mkp
0 b mkp
c0 c mkp
ff d mkp
ee e mkp
0 f 0 do i idprom@ xor loop f mkp

The second immediate issue was the mouse mat. Postscript for the grid is available:

http://www.obsolyte.com/sunFAQ/sun3mousepad.html

I had several copies printed on transparencies, and then i painted the back of one with mirror paint. Once dry, i fixed the transparency to an acrylic base.

I think i probably should have printed at about half the size based on a mat i recently saw. Nevertheless, it did the job.

IPX Solaris 2.5.1 Installation

Sun provided a lot of information in the manuals with no less than 1600 pages in the two administrator guides alone:

https://docs.oracle.com/cd/E19695-01/index.html

There is an Installing Solaris Software manual, but for an interactive install from CD it largely relies on the installer on the CD.

I added a SCSI2SD SCSI emulator to the empty disk enclosure in preparation for loading an operating system. The original hard disk in the IPX may be ok, but i figured i would cut to the car chase.

At power on, the machine starts a memory test and then eventually video comes up on the display. If no keyboard is connected, then the display will stay black and the serial port will become the console.

After resetting the NVRAM the system default to a net boot. This can be interrupted with Stop-A and the following options are presented:

Type b (boot), c (continued), or n (new command mode) >

“n” enters the Forth monitor, where there are many commands and configuration options, including boot options and diagnostic tests.

Sun (and SGI) had very thorough software documentation; very little is missed. But it’s voluminous! It really takes a lot of reading to be able to work through the operatig system ad set up.

I was able to find SunOS 4.1 (Solaris 1) and various Solaris 2 CD images online. Having created Solaris 2.4 CDs i attempted to boot from CD. No go. I was able to boot from a Linux CD which i found curious.

There are reports that PROM 2.4 is required to boot from CDs that use 2048B sectors. I only had 2.3. I thought that could be the issue.

Apparently, these machines used CDROM drives that only read 512B CDs. I tried SunOS 4.1, but again no success.

I figured there was no harm in trying the second drive and curiously, with this drive, it worked. Drive model TBC. I am at a loss to explain how the Linux CD booted if the others could not.

I went ahead and installed Solaris 2.4 as an exercise. I found the available software was not great for any version of Solaris, but it was better for 2.5.1 than for 2.4.

The IPX was already 5 years old by the time Solaris 2.5.1 was released, so i was concerned that it would be a struggle, and it is. It would be hard to use as a primary machine.

I set up two disks on a 16GB SD card. Each disk (SCSI ID 1 and SCSI ID 2) has 7.75GB (7.217GiB). i used the following parameters during installation:

512B/sector
18 heads
196 sectors
4290 cylinders 4288 + 2 spare
Total sectors = 15135120
One cylinder =196 x 18 x 512 = 1.81MB

The disk needs a label before the installation, otherwise it fails.

I kept getting an error when I tried to allocate disk space during the install, so I crashed out to the installation shell, and then partitioned manually using format.

I found it very difficult to determine appropriate partition sizes. I used these:

PartitionNameApprox size (MB)CylindersStart Cylinder
0/root23130
1/swap764214
2 20011156
3/usr/openwin200111167
4/var1000556278
5/opt20001112834
6/usr200011121946
7/export/home100012303058

Some handy bibs and bobs:

  • Add users: admintool&
  • Install package: admintool&
  • Check disk space: df
  • Root Home Directory: /
  • Home directories:  /export/home/<username>
  • Environment variable: $HOME
  • Use the admintool to create accounts: admintool&
  • Use Bourne shell. Configure: $HOME/.profile
  • Init change run level : init <run level>
  • Shutdown is level 0
  • Single user is level S
  • Normal operation is level 3
  • CD-ROM: /cdrom
  • Floppy Disk Drive: /floppy
  • Eject CD/Floppy from file manager
  • Package distributions located at: /opt/software Start openwindows: /usr/openwin/bin/openwin

Boot instructions:

  • Power on peripherals including external drive unit with scsi2sd card
  • Power on – long wait for display to come up
  • Stop-A
  • n
  • boot disk1
  • login root/<password>
  • /usr/openwin/bin/openwin

The SD card can be backed up using DD on a modern machine.

IPX Software

Possibly one of the most frustrating things about the IPX, Solaris, and workstations in general is the difficulty with finding software.

My recollection of the experience in the nineties was that licensing was tightly controlled through mechanisms such as flexlm. Often software was node-locked so it could only be used on a single machine and often software required an annual subscription.

Open source software is available, but this is much harder than it once was. Sun used to distribute this at no cost, but now it is behind a pay wall. Perhaps the sources are all readily available somewhere.

The best source of freeware i found is:

https://www.ibiblio.org/pub/packages/solaris/sparc

There are a few other packages lurking around in other places, such as archive.org, eg Wordperfect and Netscape.

IPX Power Supply

The Sony power supply gave me some grief not long after i got the machine. When i pulled the board out, it appeared to be recapped by a previous owner, but the PCB was still covered with a lot of residue from the previous capacitors. I gave it a good clean, dried it out, tested it, and with the machine booting, i claimed victory.

But then, sometime later, the machine refused to start up. There was nothing on the screen. The supply voltages were fine, but I wasn’t sure about the Power On Reset (POR) (grey wire) which seemed to always be low. 

I took the unit out and put a disk on it for minimum load.  The POR line stayed low, but I found a maintenance manual which said that it was open-collector and once I added a pullup resistor it worked fine. 

I gave the supply a clean again – the solder resist is coming off where the capacitors leaked, so I scraped it away and tinned the tracks for protection. I put it back in and the POR signal started to do its thing, but still there was no boot.

The service manual suggested putting a monitor on serial port A and this showed diagnostics running continuously. 

Depending on how much was plugged in (eg hard disk drive, floppy) the diagnostics would restart. Once the drive spun up, this would sometimes come good.  A closer look at the POR showed that it was “going off” sporadically – seemingly worse with load.  The supply lines seemed fine.

I took the supply out again and loaded it up with some more disks.  Sure enough, the POR line misbehaved.

I couldn’t find schematics, so I was flying somewhat blind.  I worked back from the POR line, which eventually led to what I think is an LM358 dual op amp (very hard to read), the output of which was indirectly driving the POR line.  The amp is configured as an integrator.  Despite this, it was clearly not riding out some bumps in whatever it was sensing – which seems to be the 5V line – although not directly because the 5V was clean.

The power supply is switched mode.  What was coming across the transformer was very complicated, and I couldn’t make sense of it.  It looked like the signal coming across the isolation transformer was the issue, with some significant lumps and bumps at 100Hz, so I moved back to the high voltage side – which I hate.

It has a bridge rectifier with a large filter cap, which looked like it was the only original electrolytic original unit. The bridge rectifier seemed fine.  There is a series surge limiting resistor that’s shorted by a relay controlled from the low voltage side by an optical isolator.  Another optical isolator provides the feedback path for regulation.

The DC voltage on the filter cap was about 240V.  Usually I’d expect something a bit higher than that – around the 320V to 340V mark – the peak of the 240V waveform.   There also seemed to be a very large AC component.  I didn’t want to put the scope on, but I thought the cap might not be at its best.

I pulled it out – it measured a few nF.  It wouldn’t hold charge from a battery. 

The supply still works as long as the load is light – no hard disk drive; a remarkable effort from the switcher given the fault. It seemed to be quite effective at tracking the rectified AC although this probably made life difficult for the switching transistor.

Once the replacement cap was fitted, the DC level and 100Hz ripple on the rectifier were much healthier, the POR good, and the system was happy.

IPX Serial Terminal

The IPX has two serial ports on the motherboard.These are set up via the admintool.

I have PortA set to ADM20 @ 1200 baud – The kaypro can talk to it.

I have PortB set to VT100em @ 19200 baud – This works with the IBM Terminal set for VT100 emulation.

/opt/wp/wpbin/wp runs a text version of wordperfect on the terminal.

It’s a bit anachonistic, but here’s a Kaypro accessing a BBS via the IPX:

I think it’s still better than hanging a RaspberryPi off the serial port.

IPX CD-ROM, Ball Mouse, & Monitor

Michael from the Adelaide Retro Computing Group had a Sun CDROM drive arrive for recycling. He kindly sent it my way. I think it’s probably one generation newer than the IPX but it will do.

Like the DEC CDROM, it was non-functional due to leaking capacitors. Once they were replaced, it made a great addion to the lunch box stack.

Michael also came up with a very weathered Sun CPD-1790AS monitor. It really needs a lot of work to clean up the interior metalwork. It is operational though.

The original optical mouse had always been a pain. While acquiring Sun Keyboards for my Ultra 5 project, i also gained several mice, including a Sun Compact 1 Ball Mouse which work much better than the optical mouse.

IPX Networking

Networking is a fairly central aspect of a nineties workstation. The IPX is quite capable of sharing file systems and mounting remote file systems via NFS, browsing, ftp servers, web servers such as Apache, and Windows servers such as Samba.

Through the X-Windows protocol, the IPX is also capable of supporting X-servers or using X-clients.

Most of the setup for networking is done during the installation process, but it can be changed via configuration files in /etc.

I’m using a very simple name resolution system for local devices: hosts files. I run a separate network for my old machines with a router at 10.0.0.138.

Currently i also have a Sun UltraSparc 5 workstation, a Sun Enterprise 2 workstation, and an SGI Indy, a Trisquel Linux Netbook, and a PC all sharing files (for no particular reason).

Warning: Most of this stuff is pushing my knowledge, so take with a grain of salt.

/etc/defaultdomaincockatoo.comI suspect this is unimportant without NIS.
/etc/defaultrouterIntenetGateway 10.0.0.138 
/etc/networks10.0.0 
/etc/nsswitch.fileshosts: files dns 
/etc/resolve.confnameserver 10.0.0.133

nameserver 10.0.0.138

nameserver 61.9.226.33

nameserver 10.0.194.49
Uses this machine, router, and then the telstra DNS servers.
/etc/passwordroot:x:0:1:Super-User:/:/sbin/sh

graham:x:1001:14::/export/home/graham:/bin/sh
14=sysadmin
/etc/mnttab (do not edit) Current mounts.
/etc/rmtab (do not edit)Current shares mounted remotely.
/etc/dfs/dfstabshare -F nfs /export/share/msdos

share -F nfs /export/share/general
Works with nfs on PCs.
/etc/dfs/fstypesnfs NFS Utilities 
/etc/inet/hosts127.0.0.1

10.0.0.133 SunSparcIPXSolaris251

10.0.0.138 InternetGateway

10.0.0.135 Sun-Ultra-5-1

10.0.0.225 IRIS
 Add any other hosts
/etc/inet/netmasks10.0.0.0 255.255.255.0 

Directories can be shared either at the shell:

share -F nfs /export/share/general

share -F nfs  /export/share/msdos

or by adding those lines to /etc/dfs/dfstab.

Remote drives shared through NFS require mount points prior to mounting:

  • Mount point for Indy share: /Indy
  • Mount point for Ultra-5 share: /ultra5-1

Mount at the shell:

mount -F nfs -o rw IRIS:/shared/general /Indy

mount -F nfs -o rw Sun-Ultra-5-1:/export/home/share/general /ultra5-1

The IPX can be used as an X-terminal using the instructions here:

https://docs.oracle.com/cd/E19504-01/802-5818/6i9i51alo/index.html

The following command will login with a chooser window from 10.0.0.135.

/usr/openwin/bin/X -indirect Sun-Ultra-5-1

It is also possible to login to the IPX from an X-terminal, eg Xming.