
This README covers the Sun 4C prototype images I host on my site oldsilicon.com. It also appears in the root directory of the image.
I make these images available to help classic workstation enthusiasts get old hardware running more easily. Installing older OS versions can be time-consuming, so the goal of these prototype images is to simplify the process, allowing you to get started quickly and then customize as needed.
I’ve also made several modifications based on OS version and sometimes hardware. For example, the SunOS 4.1.4 images have been patched for DNS, eliminating the need to run NIS/YP (Yellow Pages).
Additionally, I’ve included the Motif Window Manager along with the Motif 1.2 libraries and header files.
Below, you’ll find a checklist of tasks to get your machine up and running on your network.
If you end up compiling useful tools and utilities not included in these images, please consider contributing them back to my project for inclusion in future versions.
Machines with a SunOS 4.1.4 image available
Each machine below has its own per-machine image (hostname and install tuning vary) on its page:
- SPARCstation 1
- SPARCstation 2
- SPARCstation IPC
- SPARCstation IPX
- SuperWorkstation SW-40S (SPARCstation 2 clone)
Security notes
These are very old operating systems. An installation of any of them wouldn’t last a minute on the Internet without being hacked, so they should only be used behind a NAT cable modem, firewall, or similar device. Most of these images don’t use passwords by default, so be cautious and add a password after getting the system running for basic security.
I host a SHA1 hash on my site to verify the image you downloaded before booting it. Since the SHA1 will become invalid once you boot the image, it’s a good idea to verify it right after downloading. If you got this image from another website, I would caution you that one of these images could easily host some code that could infiltrate your home network. Be safe and download a new copy from oldsilicon.com.
For the verification procedure on Mac and Windows, see Image Security and Checksums.
How to use this image
This image was taken from my ZuluSCSI SD card. The OS
installation was from a CD-ROM image, and modified as
described below. I use Zulu RP2040s because they are a bit
faster, but I’m sure other devices will work fine as well.
Format the SD card to ExFAT and place the image on the
card. None of the images require a special Zulu.ini file,
but I encourage you to leave the final part of the name of
the image _512.img as it tells the Zulu to use 512-byte
blocks.
This image should also work on a SCSI2SD if you bit-copy the image to the card and configure the card ahead of time. It should work on an actual hard disk, though I haven’t tested this.
SunOS 4.1.4 patched DNS
This image has been patched to use DNS without NIS (Yellow Pages), which was a non-standard configuration at the time. However, it was common for government agencies and academia to request DNS without NIS. Sun reluctantly provided files to patch the libc shared library with DNS resolver routines. The patched files are located in:
/usr/lib/shlib.etc/tmp
The procedure is documented in the SunOS DNS without NIS article, but this has already been done on this image.
Root
There are two accounts on the image: root and user. The
root account has no password, so you can log in directly.
The user account is a prototype that you can rename and
use as needed. The user account also has no password.
Root shell
I’ve compiled tcsh from source, and it’s located in
/usr/local/bin. The root account uses this as its default
shell. If you want to change the root shell, edit
/etc/passwd to the shell of your choice. Additionally, I
compiled an early version of bash from source, also
located in /usr/local/bin.
Telnet
You can telnet into the system by default after changing
the IP address. Many modern machines present themselves as
xterm-256color. You can add a definition to termcap if
you like. The .cshrc file in both accounts remaps the
terminal to xterm for common terminals I log in from, but
you can adjust this as needed.
Networking setup
This image is set up for my home network, so you’ll need to
make some changes for it to work on yours. The image is
configured for a static IP (DHCP wasn’t common in 1993).
It’s currently set to 192.168.7.x on the 192.168.7.x
network, with my DNS server at 192.168.7.90.
To adapt this image to your environment, you will need to change the following files:
/etc/hostname.le0— Replace with the hostname you are giving the machine./etc/defaultrouter— Replace192.168.7.1with your gateway router./etc/hosts— Update with your desired workstation IP, name, etc./etc/netmasks— Replace my network with yours./etc/resolv.conf— Update with your nameserver IP and optionally your search domain.
OpenWindows, X11R6, X11R5, and Motif 1.2
The image contains working versions of OpenWindows, X11R5, X11R6, and the Motif Window Manager and libraries. I personally use X11R6 and the Motif Window Manager, which was compiled against X11R5.
X Windows: to start X Windows, type startx after
logging in as root or user. startx is a customized start
script located in /usr/local/bin. It redefines .xinitrc
to xinitrc.x11 so when the X server starts it looks in
your home directory for .xinitrc.x11. This is to avoid
conflict with OpenWindows.
OpenWindows: to start OpenWindows 3, type openwin.
Both environments use .Xdefaults in your home directory.
Note that it appears that OpenWindows can’t cope with
comment lines — lines starting with # — in .Xdefaults.
The default window manager for X11 is mwm, and both root
and user have setup .mwmrc and .Xdefaults files.
Motif 1.2 was not free at the time X11 was released, and the source code, libraries, and headers were all paid-for software. Even today, it’s difficult to find a complete archive of version 1.2 to compile from source.
While you can find Motif 2.x, I was unable to compile it on SunOS 4.1.4. It took some ingenuity and luck to piece together a complete working Motif development environment based on version 1.2 for this image. Note: the Motif UIL compiler is not included as I could not find it. If you have a version of it compiled for 4.1.4, consider donating it!
The Motif libraries and the mwm (Motif Window Manager)
were obtained from a CD-ROM likely associated with another
software package. While it contained binaries for SunOS
4.1.4, it lacked the header files required to compile other
Motif applications.
My goal was to create a complete Motif development
environment for this image. I managed to do so by taking
the Xm header files from the Solaris 2.6 CDE environment
and rehosting them on the SunOS 4.1.4 image under
/usr/include/X11/Xm. While I’m not entirely certain that
the libraries and headers are from the same Motif 1.2
version, I successfully compiled a large Motif application
I built in the early 1990s using this combination, and it
worked fine. The only thing missing is the actual mwm
source code, but the CD included a precompiled mwm that
works great as long as the shared Xm library is found in
/usr/lib.
There are two versions of X Windows on this image. The
first is X11R5, required to run the mwm window manager.
The mwm binary is linked against shared R5 libraries,
located in /usr/bin/X11, /usr/lib/X11, and
/usr/include/X11, and these directories can’t be moved
without breaking mwm.
The second version is X11R6, which I compiled from scratch
and is located in /usr/X11R6/bin, /usr/X11R6/lib, and
/usr/X11R6/include.
If you don’t want mwm, you can remove all the R5
directories, and everything will work fine with X11R6. If
you prefer OpenWindows, you can likely remove both X11
directory sets, and everything should work fine as long as
OpenWindows is still in your path.
The test user on the image is user, and if you look at
the .xinitrc file, you’ll see how I default to the X11R6
server (which has many improvements over the R5 server)
but run mwm out of the R5 tree. It all works fine but may
be confusing without some explanation.
Xserver config
I edited the startup script of the Xserver to increase the key repeat onset and key repeat rate.
Newer xterm
Older xterms in these releases don’t handle color well, so
I downloaded a newer version of the xterm source (it’s
still old) that understands xterm-256color codes. I built
and installed the new xterm in both the R5 and R6 binary
locations. The originals have been renamed xterm.orig in
both places should you want to revert.
GNU utilities, compilers, and useful apps
I’m functional at vi but it’s never been my favorite.
I’ve installed my old standby uemacs (microemacs) in
/usr/local/bin. If it’s good enough for Linus Torvalds
it’s good enough for me
(torvalds/uemacs).
I built and compiled many common GNU utilities, as well as
gcc and g++ up to version 2.8.1. These are 1990s-era
compilers but work great. It was a multi-day effort to get
this compiler suite working. The default Sun CC is still on
the box and usable, but it’s a K&R compiler without
prototypes, so it won’t compile anything new.
Just use GCC and GNU make in /usr/local/bin, and you’ll
be fine.
The full /usr/local/bin listing:
a2p less pod2man
bash lessecho pod2text
bashbug lesskey protoize
c++ make pstruct
c++filt patch s2p
c2ph perl screen
chill perl5.00405 sed
cm perlbug sparc-sun-sunos4.1.4-gcc
cpp perldoc splain
egrep pl2pm tcsh
fgrep pod2html top
find2perl pod2latex unprotoize
g++ vs
g77 zcat
gcc zcmp
gcj zdiff
gcjh zforce
gcov zgrep
grep zmore
gunzip znew
gzexe
gzip
h2ph
h2xs
jcf-dump
jv-scan
Troubleshooting
If your machine boots very slowly, see Why is my Disk Image boot so slow? — most cases come down to first-boot RPC timeouts from an unconfigured network, a defective SD card, or a non-contiguous image on the card.
Finally, help
If you find this image helpful and you end up compiling more software using it, please let me know! I would love to keep adding to the image and re-releasing it.
SunOS 4.1.4 is a fast, fun operating system that makes these older SPARCstations fairly zippy!
Enjoy!