Skip to main content
shopping_basket Basket 0
Log in

Restoring a Sun SPARCstation IPX Part 3: SCSI2SD, Solaris install and Expansion

Main57_99b98e47550244b29eb7e1fbd9ddebbddbfdc9da.jpg

Fitting a SCSI-to-SD storage converter, installing the O/S and looking at expansion.

The first post in this series introduced the Sun SPARCstation IPX and focused on replacing the electrolytic capacitors in its dead PSU, followed by replacing the NVRAM used to store the Ethernet address and Sun hostid along with configuration similar to that set with a PC via its BIOS. The second post then went on to cover cleaning up the plastic enclosures, some additional PSU work and then addressing a persistent NVRAM issue by rescuing the original device.

In the final post in this series, we take a look at installing a SCSI-to-SD storage adapter, before going on to install a fresh copy of the Solaris operating system.

SCSI2SD

207MB SCSI HDD with a 32GB Micro SD as comparison

The SCSI drive fitted in the Sparcstation appears to work well and while it’s advisable to exercise vintage drives now and again, there was also thought that it may also last a little longer if it’s not being run all the time. In addition, to which 207MB is not an enormous amount of storage and an obligatory shot of the drive with a 32GB Micro SD for comparison can be seen above.

Adaptor board for SD Card Storage

Handily a board can be bought which takes an SD card for storage and then uses this to provide one or more SCSI drives. The latest version of SCSI2SD, version 6, provides support for emulating up to 7x drives and these can be a mixture of hard disk drives and optical drives.

SCSI cable

In order to fit this into the IPX chassis, it was necessary to make up a new slightly longer SCSI cable, which was done using RS Pro 50-way ribbon cable (289-9981) and 3M IDC cable mount socket connectors (828-0412) . The original cable can be seen above on the left, with the new custom length cable on the right.

Building firmware and scsi2sd-util6

The SCSI2SD board has firmware and it’s generally a good idea to update this to the latest available. Download links are provided on the wiki, but this can also be built from source and the steps for doing this on Ubuntu Linux 20.04 are shown next.

First dependencies need to be installed:

$ sudo apt install gcc-arm-none-eabi dfu-util automake-1.15 libgtk2.0-dev

$ curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py

$ sudo python2 get-pip.py

$ sudo pip2 install intelhex

Note that some other tools may need to be installed if you don’t have these already, but if this is the case it should be fairly clear what needs to be installed from the resulting error when building.

Following which the firmware sources can be cloned and built:

$ git clone --recursive git://www.codesrc.com/git/SCSI2SD-V6

$ cd SCSI2SD-V6

$ ln -s Makefile.2020c Makefile

$ make -j4

A symbolic link was created to Makefile.2020c since this was a “Version 6 2020c” board, but obviously, if you have a different build you would need to use the correct Makefile.

When the build completed successfully this resulted in creating the firmware file:

build/firmware.V6.2020.dfu

To build the utility GUI you also need to:

$ cd src/scsi2sd-util6

And then run make again. However, we didn’t have much success getting this to build and could be that, since it doesn’t use cmake or configure, you need to manually edit files to suit your system. Although there also didn’t seem to be much in the way of documentation or an issue tracker etc.

Looking on GitHub there do appear to be a number of forks of this codebase and one from user jwakely appeared promising, since there was a commit that added an option to use the system’s installed build of dfu-util, instead of trying to build this (which was proving problematic). Hence this was cloned and built with:

$ git clone --recursive https://github.com/jwakely/SCSI2SD-V6.git

$ cd SCSI2SD-V6/src/scsi2sd-util6

$ USE_SYSTEM_DFU_UTIL=Yes make -j4

We actually had to run the make command a few times until the scsi2sd-util6 binary was built. Note also that running “sudo make install” is not advised, as this installs to /usr/bin/. Although of course, you can easily move the binary to a more appropriate location, such as /usr/local/bin.

Hopefully the above will be useful to others who would like to build the utility from source and if some obvious mistake was being made when trying to build the upstream version, or simple changes to the make infrastructure were all that was needed, please comment below.

SCSI2SD configuration

latest firmware and scsi2sd-util6 debug log

Now that we have the latest firmware and scsi2sd-util6 — both either simply downloaded or built from source — we can move on to updating the board and configuring storage.

Since it accesses the USB port and no udev rules are provided, we need to run scsi2sd-util6 with sudo (or we could of course create some rules).

$ sudo scsi2sd-util6

In the File menu there is an Upgrade Firmware option, where we can select the firmware and then proceed to plug in the board and — if all goes according to plan — we should see an output in the debug log similar to that shown above.

Configuring the scsi2sd-util6

We can now move on to configuration. The general settings can be seen above and those required will vary depending upon the system and whether this supports parity and whether bus termination is required at the drive etc. We also have a tab for each emulated drive and it’s often the case that you cannot simply configure as large a storage device as you like, for example. Since vintage systems are more likely to have fairly low hard limits and may even only recognise certain vendors and models of drive. Hence it can be advisable to try to emulate a particular known device.

Configuring the settings

A quick web search turned up a page which detailed recommended settings for using a SPARCstation 10 together with SCSI2SD and the NeXTSTEP O/S. So the same settings were used and an emulated drive was configured with SCSI ID 3, 2GB in size and a sector size of 512 bytes. The configuration was then exported from the GUI to an XML file and sectoresPerTrack edited to be 139 and headsPerCylinder to 4, before re-importing and uploading to the board.

SCSI2SD was then cabled up to the SPARCstation

The SCSI2SD was then cabled up to the SPARCstation and a quick test performed before re-assembling, just in case the drive configuration needed to be tweaked.

executing probe-scsi at the OpenBoot prompt

Fortunately, upon executing probe-scsi at the OpenBoot prompt we received confirmation that the IPX could see a SCSI disk with target 3, along with an external CDROM drive that was connected.

Installing Solaris

early version of the Solaris operating system

It was decided to install a pretty early version of the Solaris operating system which dates back to around the time of the SPARCstation IPX being introduced, Solaris 1.1. This packages SunOS 4.1.3 UNIX together with the OpenWindows Desktop Version 3.

Installing - booting from CDROM

Installation is reasonably straightforward and involves booting from CDROM, selecting a drive to install to and formatting this.

first stage of installation results in a “miniroot” being written to disk

The first stage of installation results in a “miniroot” being written to disk — a minimal bootable image. Following which the system is booted from this and installation is resumed. There were just two small issues: firstly, it appeared that the installer did not like the year 2021 being entered as the date, so this ended up being set to 1998. The second issue was that when entering a static IP address starting “10.” it didn’t give the opportunity to enter a network mask, but then it was realised that the RFCs for CIDR were not issued until one year after this O/S release!

Above is a short video of the system booting, logging in and starting a few simple applications.

Expansion

The collection includes a number of additional SCSI expansion units

The collection includes a number of additional SCSI expansion units. Above the CDROM drive here we can see an external HDD enclosure, stacked on top of which is a DDS-2 tape drive which can store up to 4GB uncompressed and 8GB compressed on a DAT-based tape cassette. The last peripheral, at the very top, is a 150MB quarter-inch cartridge (QIC) tape drive. This is possibly the most useful, since it dates back to around the time of the IPX and you occasionally come across software distributed using this format. However, this is also in a pretty bad state and looks like it’s been stored somewhere damp, hence may take quite a bit of work to restore it.

internal expansion via SBus cards

SPARCstations also made provision for internal expansion via SBus cards, which is a 32-bit address and data bus based standard that could transfer up to 100MB/s, which was pretty fast for its time. The IPX provides two SBus expansion slots. The card pictured above is a Transputer link adapter, which could be used to enable a Sun workstation to be used as a front-end processor for a Transputer-based parallel processing system — an accelerator for compute-intensive workloads.

One neat feature of SBus cards is that they have a PROM whose contents firstly identify the card and its characteristics, and secondly may contain an optional software driver. If provided this driver is written in a Forth based language and in fact the OpenBoot console (BIOS) is also Forth-based. Unfortunately, the card shown above came with blank EEPROMs and so I’d be keen to hear from anyone else who happens to have a Parsytec BBK SBus card, with EEPROMs that might be copied.

Final thoughts

Restoring the SPARCstation IPX has been a fun project and it's great to finally have a working system of the sort that I desperately wanted to own as a teenager, but which was very far beyond my reach. In addition to which there are a few potential future projects that would make use of this and while somewhat more the slow burn type, I hope to eventually share details in due course.

Andrew Back

Open source (hardware and software!) advocate, Treasurer and Director of the Free and Open Source Silicon Foundation, organiser of Wuthering Bytes technology festival and founder of the Open Source Hardware User Group.

Comments

May 27, 2021 12:45

Hi Andrew, congrats for a very good job to make this series for the little IPS ;-) ....I have changed all caps on my IPX psu with good nichicon pw series but I have the same issue you have on first psu. You have resolved? You find where is the problem? My tracks on pcb are ok, the HV section work but the psu try to start for one second, then stop. I also tried to move the 5v trimmer, without luke.

0 Votes

May 30, 2021 08:31

@marmotta77 Thanks! Well, I'm afraid the first PSU I attempted to repair turned out exactly how yours appears to have. It would "kick" the fan briefly upon powering up and that was about it. At this point I switched to recapping another PSU and this one then worked. At some point I plan to probe both PSUs, to compare and see if I can find out what the issue is. However, I did not change C111 and C112, and it was suggested in the comments on the first post in this series that these should be changed also. I haven't got round to trying that yet and I'm not sure when I will. Sorry I can't be of more assistance and hope you manage to bring your IPX back to life!

June 14, 2021 13:20

@Andrew Back seems to be too easy, but… on my psu the issue is on relay close to power cable! Opened and cleaned, and now work good ;-)

June 16, 2021 07:11

@marmotta77 excellent, that is good news! :o)

May 5, 2021 07:07

Great series Andrew. By chance i was restoring an IPC and an IPX about the time you started your series so i have been following along and your posts have been very helpful. I too am using the SCSI2SD cards in both. The IPC has a 2020 version and IPX has 2021 version that is currently not working but im told firmware is on its way. I used the scheme of creating a virtual CDROM drive as the first image on a 32GB card and they laying out 4 more disks on the same card. So far i have SunOS 4.1.3 and NetBSD running on the IPX. Im also going to install Solaris 2.6. SunOS 4.1.3 is pretty snappy although to use DNS without Yellow Pages, you have to hack the libc.so file. Once done, it seems to work great. NetBSD 9.1 is very interesting as its a much more modern OS on an old box. Its pretty usable however. Solaris 2.6 was on the IPX (on a classic harddisk) when i bought the IPX and I found it to be a nice balance of usability between the SunOS and NetBSD. My goal is to have four complete OS's on the SD card so i can boot into any of them. Like you I could not get the 402 or 412 timekeeper replacements to work on the IPX but the 412 works fine on the IPC, which seems a bit odd. Anyway, great series, really enjoyed it!

0 Votes

May 5, 2021 19:46

@ToddVernon Thanks, Todd! And interesting to hear about your progress. Are there details online anywhere for hacking SunOS 4.1.3 libc.so? Would be great to have a usable system based on this, rather than having to run a more recent Solaris version.

I've previously run NetBSD on an IPX before, I think maybe 10 or so years ago. Would also like to give NeXTSTEP a go and somewhere I have a SpringOS (Sun research O/S) CD, but I think that may need a SS5 or better. I seem to recall you have to install Solaris first and then Spring over the top. As I say, it was a research platform and so far from polished. Mach microkernel based IIRC and came with the HotJava browser!

May 5, 2021 19:47

@Andrew Back here is the link to how to do the library patch. The files required are actually on the SunOS install cd iso. I was at NASA during these years and I believe that some places like NASA just plain refused to run YP so sun acquiesced and made the files available. They said they wouldn't support the patch but I'm sure they did. I was considering NeXTStep as well for the IPX but I thought i read something to suggest it would not work but I could have been researching the IPC which has PROM level issues (even with NetBSD). When I get both SCSI2SD card working i was curious if the NetBSD install would work on the IPC. The installer would not work with the IPC rom level. I have an updated ROM image but no burner at the moment. Had not heard of SprintOS interested to hear your experiences if you pursue it. I have searched high and low for the original 16" color CRT that came with the IPC when i bought my original one new a long time ago but with zero luck. I can't even figure out the model number. LCD's are nice but i get kind of obsessed with restoring as close to original as i can once I start a project.
http://ibgwww.colorado.edu/~lessem/psyc5112/usail/network/dns/sunos-dns.html

May 6, 2021 12:56

@ToddVernon many thanks, appreciated. To be honest I'd completely forgotten about Yellow Pages. Very cool that you were working at NASA with Sun gear! Coming up for 21 years ago I was at boo.com and I seem to recall we had NIS+, but this broke periodically and we were in the process of switching over to LDAP for a lot of things.

You may be right with NeXTSTEP on IPX, I couldn't say. I do also have a SS5, which may be a better candidate. I'd also love to have a fully loaded SS20 one day, but they don't seem to come up so often. CRTs are indeed nice and while I have the Sun one shown in earlier posts, I'd love to have an IPX vintage one. Would also be nice to have the original manual set — "Sun Desktop" maybe?

[Comment was deleted]

May 4, 2021 07:07

A great little series. I had an IPC and then an Ultra-5 BITD. I'd like to suggest that the reference to Part 2 of the series should read
https://www.rs-online.com/designspark/restoring-a-sun-sparcstation-ipx-part-2-cleaning-up-and-additional-psu-and-nvram-work
The link under the text 'second post then went on to cover' refers to a content preview -
https://www.rs-online.com/designspark/content-preview/article/17611?lang=en
- and access to this is forbidden.

0 Votes

May 4, 2021 07:09

@IanJohnson1 - Thanks Ian, the link has been corrected.

DesignSpark Electrical Logolinkedin