Sun Microsystems SparcStation IPX (4/50)

 

 

Introduction

Many years ago, I acquired a surplus Sun 911 dual-drive SCSI enclosure, brand new in the box, that I used on one of my first home server that used Windows NT 3.51 and an Adaptec SCSI card. I really liked the size (9.5" wide x 10.5" deep) and how the various pieces like the 811 8mm tape drive, the 911 4-drive enclosure, and a CD-ROM drive in a model 411 enclosure, stacked. So, over time, I started collecting pieces in the hopes of assembling a full system. A few months ago I found an 8mm tape unit in good condition, and very recently I was able to acquire a Sun Type 4 keyboard/mouse, and a SparcStation IPX in excellent condition for a very reasonable price. Here are pictures of my IPX taken from the auction listing. I can't be 100% certain of when it was last used, but there was a message in the system mail box dated 10/8/1997 from a cron job. So, that would be a reasonable approximation of the date of its last use.

 

Wikipedia has a very nice description of the architecture here, and I'll provide a list of links I've used below. The IPX (sun4c, code-named "Hobbes") was introduced in July 1991 and ran until EOSL for the 4c platform in April 1997 (the Sun Systems Handbook shows the IPX EOSL was extended to 5/31/2000). From a performance perspective, the benchmarks on the IPX make it roughly equivalent to a PC with a Pentium-75 processor.

My machine came with 16MB of RAM, a Fujitsu M2624FA 520MB SCSI2 hard drive, and a CG3 8-bit color frame buffer card (270-1901-02r1) in one of the SBus slots. The OpenBoot monitor reports monitor version 2.9.

 

Unit History

On inspection, the unit was extremely clean inside -- no dust at all -- leading me to believe that it was used in a clean environment. Fast forwarding the story a bit, after getting the unit running, the user name list in the password file contained several no-password entries for "PASS-5500-xxxx" in it. Upon logging into one of the accounts, it ran control software for an ASM Lithography PASS 5500 wafer stepper (https://www.asml.com/en/news/stories/2021/three-decades-of-pas-5500), although I don't know which specific version of the stepper. The software is password protected and since I don't have any login information, I'm at a roadblock on that for now. That explains why the unit was super-clean inside -- it was in a chip plant. I found a few IP addresses in the hosts file which pointed to somewhere in Brazil.

 

Inspection & Repairs

The first thing to inspect was the power supply. Good restoration practice is to recap the power supply at this age (almost 30 years old) and lack of use, but the system was very clean and none of the capacitors in the power supply looked bulging or leaking. So, I'm deferring that maintenance for now. I've assembled a list of capacitors used in the Sony power supply based on research and looking at my own unit.

Typically, when I get a new system of some type, I look to max-out the memory. My system came with 16MB using 33, 4Mx1 (HY514100AJ-70) chips, 70ns, FPM (fast page mode) 72-pin SIMMs. These SIMMs are available on various auction sites (Sun part numbers 501-1822 or 501-1915) but any combination of 4MB (501-1812) and 16MB can be used, up to the maximum of 64MB and 4 slots. It is also possible to use standard PS/2 FPM parity RAM which is organized as 4Mx36 and has three extra parity bits. I have read that you can't mix the two in the same system, so I simply replaced the original 16MB SIMM and it works with no issues.

Given the age of these units, the first thing likely to have failed (other than potentially electrolytic capacitors in the power supply) is the timekeeper chip (the IC with the yellow bar code in the last picture above). This chip contains a TOD chip and battery-backed non-volatile RAM which stores critical system information including the machine type and MAC address. It's constructed as a "CAPHAT", with a resin cap containing the RTC crystal (32,768KHz) and 3v lithium battery. These connected to the timekeeper IC through four exposed pins on the ends of the IC that are encapsulated in resin after manufacturing.

The original part used is an SGS/Thompson (STMicroelectronics) M48T02 "TimeKeeper" chip, which contains 2k of NVRAM. In my system, the part used is an M48T12 which has a slightly different operating voltage range than the M48T02. The quoted life of the battery is 11 years, so almost certainly the batteries are dead in any system one might find on the used market unless the chip was rebuilt. Glitchwrks page below goes into the process, and others have performed similar mods. Using a Dremel tool to cut the CAPHAT off is a little nerve-wracking at first, but time and care is needed to avoid damaging the underlying RTC/NVRAM chip.

Once the TimeKeeper chip has been restored to working order, the system information (IDPROM) needs to be restored to the NVRAM. I used the FAQ from the Obsolyte site to store the proper IDPROM bytes using OpenBoot monitor commands. Start with the set-defaults command, followed by setenv diag-switch? false. This prevents the system from performing a lengthy memory test at every hard reset. In the interim, I also set setenv auto-boot? false so as to prevent automatically booting SunOS until I get the machine fully setup. My machine tries to network boot and the timeout is very long...have to also change the default boot device to disk.

The IDPROM contains the system identifier number and the MAC address (mfgrid and hostid bytes) in addition to some unused fields and a checksum. Unless you happen to already know the Sun-issued MAC address from when the battery was intact, you can use the Sun manufacturer ID (8,0,20) and any three bytes for the hostid (such as CO,FF,EE) so long as the same bytes are used in both required fields of the IDPROM.

 

Booting from the hard drive

With the IDPROM now restored, it was time to boot the machine using the OpenBoot "b disk" command. Monitor reports version 2.9 (part 525-1177-06) which is the latest available for the platform. Good news is that the Fujitsu hard disk boots fine, reporting that SunOS 4.1.3_U1 (Solaris 1.1.1) is installed. I don't have any passwords for this machine, so I needed to unlock the root account by using OpenBoot to force booting SunOS into single-user mode so I could manually remove the root password.

With that complete, there are a few more things I needed to fix...

Interestingly, over night, the unit stopped booting completely. It complained about the clock and halted while IDing the disk partitions, barfing when accessing the dump partition. I was going to rebuild the system with a random Quantum 1.2G SCSI drive I had here, but alas, my kingdom for a compatible CD-ROM drive...

There may be times you need to boot from an external CD-ROM drive. To work properly, the drive needs to be set for ID=6 AND must support 512 byte block sizes (usually through a jumper on the back of the drive). Most PC-compatible drives use 2048-byte block sizes and often respond to the SCSI command which dynamically switches sizes. I can't get the IPX to work reliably with my only SCSI CD-ROM drive (Panasonic CR-504-L, although the "-B" suffix version is supposed to work) as I think it doesn't respond to the dynamic sector command. So, I bought a Plextor PX-20TSi drive used on the AS400 mainframe. It has a block-size jumper on the back (ON="for use with UNIX", which means 512 byte blocks). It is a 20x drive, while the standard is something like 2x or 4x. It was inexpensive, but has an HD68 connector rather than the more standard IDC50. I connected a bunch of random adapters and cables and came up with something that worked until I receive a real adapter I bought on-line.

I booted into a SunOS 4.1.3 CD and then ran the miniroot version of SunOS. This allowed me to properly set the date and time and also run fsck to repair the hard drive. Another reboot and I'm back in business.

 

Date/Time

With the TimeKeeper chip now working, and the drive repaired, I reset the date/time/timezone to something reasonable. The date command allows for only two-digit years, so I'd say it's not Y2K-compliant. In this case, I selected 1995 as the year since the dates line-up with the 2023 calendar. The proper time zone can be set using the 'zic' command, followed by the 'date' command. The clock is now running and is keeping good time. Yay.

 

Network Configuration

My machine came from an existing operating environment, so I needed to minimally reconfigure the network parameters to work at my home. I didn't want to change a lot because I still need to see what's on the hard drive. Assuming it came from a working environment, at a minimum you need to edit a few files:

    /etc/defaultrouter to match the address of the network gateway in the new environment (such as 192.168.1.1).

    /etc/hosts to change the assigned IP for the machine (such as 192.168.1.80).

    /etc/resolv.conf to ensure there's a valid name server. I added 4.4.4.4 and 8.8.8.8 to mine.

    Run route add default xx.xx.xx.xx 1 at the shell prompt and test with a ping to see if the interface is up.

 

I did not change the hostname of the machine for now, nor tried to figure out how to get dynamic IP working, so there are undoubtedly other things that could be tweaked. I think these are the bare-minimum changes needed to get network access working.

 

Accessories

Over time I bought various Sun pieces that now can be of some use.

Long ago I bought a 4-drive 911 enclosure (595-3768-10) for use with my first network server, which was a Pentium-based machine running Windows NT Server 3.51 (a lifetime ago!). The single security screw secures the cover, and it opens like a clamshell as like the other "lunchbox" units. Inside it has space for up to four SCSI drives in a "2-by-2" arrangement. Mine has two Quantum Fireball ST 3.2GB 5400-RPM drives. This box has only one exhaust fan for four drives and the power supply, so I would not use 10K-RPM drives in it as they generate too much heat. I haven't connected it yet to my IPX, but that's coming.

 

The second item I collected was an Exabyte 8500 8MM tape drive (595-2410-01) which I got for a really good price. It looked to be in good condition and after trying it out with an Adaptec PCMCIA SCSI card, I was confident it would work. It to was very clean inside and the tape transport rollers were in good condition...all plusses given the age and having the rollers being a notable failure mode for them.

 

There's also an external CD-ROM drive in a model 411 case that I'm hunting for. I have no real need for it at the moment since I have the Plextor 20Ti I can connect if needed, so it would only be needed to complete the stack.

 

Hard Drive Replacement

While I'm not ready to replace the installed Fujitsu hard drive, I purchased a ZuluSCSI SCSI emulator from Rabbit Hole Computing in case I needed a replacement. There are several SCSI emulators available -- I use a SCSI2SD on my PDP-11/23 -- but this version has some nice features relating to ease-of-configuration. Each SCSI LUN is represented by an image file on the SD card (i.e., "HD3.IMG" for unit 3) with configuration parameters defining the drive stored in a text file in the root directory. So, I used QEMU to create an empty 2.1GB raw container file to mimic a Seagate ST12400N "Hawk-LP2" drive. Based on my hard drive manual, there are several candidates which could match Sun's 2.1G drive, including ones from Seagate, Conner Peripherals, IBM, and Fujitsu. On this I installed a fresh copy of SunOS 4.1.4/Solaris 1.1.2 and it booted just fine. So, I highly recommend it.

When using any of the SCSI replacement boards, they have removable SD/MicroSD cards which are inaccessible if the board is mounted with an adapter in the internal drive cage. To solve this, OldSilicon developed a bracket that fits in an SBus slot and allows the SD card to protrude through the back of the unit. Here is a link on Thingverse to an authorized derivative of the original. A friend of mine just printed one for me and it works perfectly. The only caveat is that it's slightly wider than the SBus card, so you need to fiddle with it a bit.

 

Other Fun Things

Now that the system is running well, I've done a few things to improve the usefulness and give this machine a purpose:

Change the shell prompt. This is something I did on every MS-DOS install I ever completed. In SunOS, the user shell preferences are stored in ~/.cshrc. I mostly left the default options, but I did customize the prompt by uncommenting the prompt command in the profile file.

Install and configure a printer. This is largely a two-step process. First, you need to add a host entry in the hosts file which maps a friendly name to the IP. So, for example "nameserver CanonPrinter 192.168.1.70" would give the printer with the fixed IP of 192.168.1.70 the friendly name "CanonPrinter" which can be used with the lp command. You can also set the default printer with setenv LPDEST CanonPrinter. The second part is to ensure that the /etc/printcap file has the proper printer definition for the printing daemon. My printcap entry looks like this:

#Printer #1
lp1|lp|Canon Color Printer:\
    :lp=/dev/null:\
    :rm=CanonPrinter:\
    :mx#0:\
    :sd=/var/spool/lpd/canon:\
    :lf=/var/adm/lpd-errs:

Unfortunately, it doesn't seem to work properly. The printer wakes-up, but doesn't print, and the error log has no entries.

I read online that you can use a Raspberry Pi as a CUPS print server to act as an intermediary between older LPD/LPR machines and modern IPP (Internet Printing Protocol) printers. There are a few on-line guides for doing this, but also make sure you install the "cups-bsd" package (which oddly isn't installed with the base install of CUPS), and it wouldn't be bad to also install "printer-driver-cups-pdf" to get PDF output.

Unfortunately, no configuration tweaking I gets it to print with the IPX, although my Mac works just fine. It seems that the IPX printer daemon doesn't see that the CUPS print queue is enabled -- it complains that it's "waiting for queue to be enabled on {cups_server}. So, more work to do with this.

Try out the 8MM Tape Drive. Even though I use a ZuluSCSI board with my system -- which means I can just copy the disk image from the SD card -- I have an 8MM Exabyte tape drive system that I wanted to try. The drive is automatically recognized by OpenBoot. I don't think I'll be doing regular backups this way, but for a single whole-drive backup, this is what I did:

  1. login as root and execute a shutdown now to get to single-user mode.

  2. Optionally, run fsck to ensure the drive is clean.

  3. Execute the backup using dump command:

    dump 0buds 126 54000 6000 /dev/rst1 /dev/sd0c

    The first set of parameters sets the backup options: {0}= "dump level", with 0 meaning a full backup ; {b}= "blocking factor", or the number of blocks per write operation ;{u}= updates the dump record kept in /etc/dumpdates ;{d}= "tape density" in bits-per-inch (8MM 2.3G tapes use 54000); {s}= "size" of the tape in feet (8MM tapes are 6000' equivalent). It seemed to work well, although I haven't yet performed a restore operation.

Install Netscape Navigator. On John Millikan's site he outlines steps to getting Solaris running in QEMU (which I also have done). About half-way down the page, he dives into the steps needed to install and run Netscape Navigator 4.61. I skipped the steps relating to transferring the re-created tar file to the machine -- I used ftp to download it from one of my in-house servers. So far I haven't gotten this working yet, so more work to do.

Floppy Drive. The IPX comes with a 3.5" 1.44mb floppy drive. The default installation of SunOS has the proper incantation in /etc/fstab to define the drive as a PC-file system drive. So, all that's needed to use it is to "mount /pcfs" to mount the floppy and "eject" to eject it from the IPX. Filenames have to adhere to the 8.3 format, and has the standard list to invalid characters which are actually used in SunOS. Seems to work just fine.

NFS Client. The IPX can both be an NFS (Network File System) client or server, which in modern terms, is like a Windows SMB connection. It's relatively easy to setup providing there is a server/share on the network that provides NFS services. In my case, I have a QNAP server that supports NFS which is great. On the IPX side, /etc/hosts needs an entry for the server, and if you want this connection to be persistent /etc/fstab needs an entry something like this: mount server:/serverfolder  nfs /localpath rw 0 0. Localpath is a directory on the local system -- I used a local folder I created under /mnt.

Make some Cables. The sound and serial port jacks are DIN8 connectors; my system did not come with either, so I made one of each using a DIN8 cable from Cables2Go (Amazon; a 10' cable trimmed to 1' and 9') and various parts. For the audio cable (Sun 530-1594) I also purchased 3.5mm monaural pigtails (Amazon) to be used for LINE_IN and AUDIO_OUT. The pinout is super-easy, using this diagram on Obsolyte.com. The OEM cable comes with an EMI filter mounted about 1/2" from the DIN8 -- I happened to have a clip-on balun of an appropriate size (5mm ID) so I clipped it on.

I also wanted to try out the serial ports, so I made a replacement cable (Sun 530-1662) using the remaining 9' from the cable, and following the pinout using this guide on Sunhelp.org. I used a standard AMP DB25F with solder cups, and a plastic non-metallic shell. Interestingly, there is no RI (ring indicator) signal, but there is a Receive Clock signal; I've never seen that used in normal use, so it must be for synchronous Rx. Need to look into that a bit.

Test the Serial Ports. Well, after reading this FAQ at Sunhelp.org regarding using the serial ports with SunOS 4.1.x, I would give anything to go back to MS-DOS! Setting up a connection for use with a modem is seven steps which include a lot of tweaking of files (see "Case Study: Setting up a Dial-out-only Modem"). Using it as a "dumb terminal" for testing is six steps (see "Case Study: Setting up a Terminal"). Having said that, it works perfectly. I connected a US Robotics Sportster x2 56k external modem to TTYB using the cable I built and, although I don't have anything to dial (my modem bank and BBS aren't setup), the modem responds to AT commands and dialing a fictitious number results in a "NO DIAL TONE" error (which makes sense). Time to unpack my MysticBBS setup.

 

External Links

 

 

 

 

 

Copyright (c) 1998-2023 by Richard A. Cini, Jr. (rcini at msn dot com) All Rights Reserved. All copyrights of any third parties referred to herein are hereby acknowledged. There is no warranty, either express or implied, relating to any of the content contained herein. The site maintainer shall in no event be liable to anyone for damages, including any loss of profits, lost savings, or other incidental or consequential damages arising out of the use or misuse of the information contained on this Web site. Batteries not included. You may use the information contained herein for NON-COMMERCIAL purposes only and AT YOUR OWN RISK.

Last updated 2023-07-30 17:09 -0500