Installing and using HP-UX 9
Installing and using HP-UX 9
Posted on 2025-11-08
Contents
Background
A few weeks back I got a note on Bluesky, linking me to a website offering a free computer. The owner was in Cambridge, not far from me, and the computer was an HP 9000/300 Series - a Model 340, specifically.
The HP 9000 line of workstations and servers ran from the early 1980s through to the late 2000s (see this great history page at openpa.net for more details). It encompassed many processor architectures, including Itanium, HP's own Precision Architecture (aka PA-RISC), and their earlier FOCUS architecture. Alongside the early FOCUS machines, they also had a line of Motorola 68K based UNIX workstations - the 300 series. This is a machine from that series, and I thought a 68030 based UNIX workstation just sounded fascinating. Something of the same kind of processor and vintage as the Macintosh IIx, but part of the lineage that led to my beloved Visualize B132L+ and C3000 workstations.
E-mails were exchanged with the owner, Ben, and I was invited to pop over and collect the machine. And then, whilst I was there, it turns out Ben had a few more machines he'd be happy to move on to a new owner, to free up some space. And. Well. I went home with:
- An HP 9000 Model 340 (68030)
- An HP 9000 Model 715 (PA-7000)
- A DEC microVAX 3100 (KA-41)
- An IBM RS/6000 7012-320 (POWER 2)
- A Sun SPARCstation 20 (HyperSPARC)
- A Sun SPARCstation 4 (MicroSPARC)
- A Sun SPARCstation 10 (SuperSPARC)
- Some HP mice, some DDS tapes, and some SCSI terminators
This haul was frankly ridiculous, and huge thanks to Ben for his generosity. It was also more machines that I literally had space for at home (thanks to a very large pile of SPARCstations I haven't yet moved on) and so I immediately called my friend Matt and arranged to drop off the SPARCstation 10 and the HP 9000 Model 715. I already have an HP 9000 Model 712 and they're similar enough I'm happy to let Matt hold on to the 715 for now. He also had his name down for the SPARCstation 10 I already had, so it made sense to let him have both in case one he needs spares.
Over at Matt's house we fired them up and were delighted to see the both booted up OK, which was very promising.
I've since donated the SPARCstation 4 (working) and the microVAX3100 (sadly dead) to new homes, free of charge. I've also tested the RS/6000, which was also dead, and the SPARCstation 20, which not only worked but turned out to contain two ROSS HyperSPARC CPU cards running at 150 MHz. As SPARCstations 20s go, it doesn't really get much better.
But, we're here to talk about HP-UX. And before I can do that, I need to explain that the Model 340 doesn't have a disk drive.
The HP 9000 Model 340
The system specs for this machine are:
- Motorola 68030 CPU at 16.7 MHz
- Motorola 68882 FPU
- 16 MiB RAM
- High Resolution Colour Graphics Board (1280x1024 in 256 colours at 75 Hz), with output via 3x BNC
- HP-IB interface for disk drives and peripherals
- HIL interface for keyboard and mouse
- 10base2 Ethernet interface
Sorry, you can't see the 68030 or the 68882 FPU - they are underneath the high-res graphics adapter, and I didn't want to take it apart.
What you also cannot see - because it does not have them - is a floppy controller or a SCSI controller, or any kind of disk controller. You're supposed to either network boot it, or use an HP-IB disk drive.
I do not (or rather, I did not) have any 10base2 networking gear, or a BNC to VGA adapter, or any HP-IB cables or devices, or an HIL keyboard (although I do have a bag of HIL mice). But, you know, eBay exists, and I was able to get the first three things in short order at fairly reasonable prices. The keyboards, however, are outrageously expensive, and being HIL interface, you can't just use a PC keyboard as a substitute.
Here Matt comes to the rescue because it turned out he had an HP 9000 Model 705 kicking around, and that also uses HIL, and he had the keyboard to go with it. Seeing as he now had my Model 715 (which supports both PS/2 and HIL), he was happy to let me borrow the 705 and its keyboard in exchange.
Amazingly, the Model 340 appears to be in great working order. When you turn it on, it does a self-test, and then fails to find any devices to boot from. I now do have an HP-IB card (well, a GPIB card) for my Windows XP PC, and a copy of HPDrive from hp9845.net. This is an emulator for HP HP-IB drive units - floppy drives, hard disk drives and CD-ROM drives. I have booted the machine with it, but I found it to be quite slow.
What's more fun though, is putting it into a cluster with the Model 705 and network booting it.
Yes, that a 68030 machine network booting from a PA-RISC machine ... and sharing the same root filesystem. But aren't PA-RISC binaries and 68K binaries quite different? Oh yes, they really are. So, how does that work?
HP-UX 9 for Series 700 (PA-RISC)
I believe there are several versions of HP-UX that support setting up a cluster, but HP-UX 9 is the last that supported mixed 68K and PA-RISC clusters (or, as HP would call it, mixed Series 300 and Series 700 suppport). HP-UX 10 dropped 68K support and was PA-RISC only.
So, let's install HP-UX 9 on the Model 705 I got from Matt. I found this guide quite helpful but I'll outline the basic steps here.
(Side note: look at that keyboard for more than a few seconds, and you'll realise it's really weird)
Step 1 is to boot the Install CD, which I do using a BlueSCSI. This formats the hard disk - but only if it recognises the make and model from its disktab file. This is an annoyance that seems common to early UNIX systems - SunOS 4 has a similar problem - but I was able to swap some drives around and put a 2GB Seagate ST11200N into the machine, which it seems happy with. You'd certainly have no chance with a more modern 9.1GB drive. Once the format is done, it lays down a very basic root filesystem, and reboots into it.
Step 2 is the actual installation. I put the image onto the BlueSCSI (I'm using HP-UX 9.07 Core OS B2826-13716), and the installation picks it up and asks what packages I want to install. I pick Select All Filesets on the Source Media, because I've got plenty of disk space - I think a full install is only about 200 MiB. It takes about 20 minutes to copy the files over, and then we can set up the root password, hostname, IP address, DNS server, and so on.
An absolute Cluster ... Server
My first attempt at setting up HP-UX 9 on this machine was made difficult because the network card wasn't working. This was either because I had the switch on the rear of the machine in the Factory Setup position instead of the Normal position, or because I had the internal jumpers set to use the AUI port instead of the BNC, and it knew I didn't have an MAU attached to the AUI port. Either way, I resolved both issues at the same time and after that, the network started up on boot. If you cannot bring up a network interface on a Model 705, check both I guess.
We administer the system using SAM. It's a TUI tool, and easy enough to go in and set this machine up as a Cluster host.
┌██████████System Administration Manager (hp705) (1)█████████┐
│ │
│ │
│ ┌────────────────────────────────────┐ │
│ │ Printers and Plotters-> ^ [[ Open ]] │
│ │ Disks and File Systems-> │
│ │ Peripheral Devices-> │
│ │ Backup and Recovery-> [ Previous Level ] │
│ │ Users and Groups-> │
│ │ Routine Tasks-> │
│ │ Process Management-> │
│ │ Kernel Configuration-> │
│ │ Cluster Configuration │
│ │ Networking/Communications-> │
│ │ Remote Administration │
│ │ Auditing and Security-> │
│ │ │
│ │ v │
│ └────────────────────────────────────┘ │
│ Press CTRL-K any time for KEYBOARD HELP │
│ │
│────────────────────────────────────────────────────────────│
│ [ Exit SAM ] [ Options... ] [ Help ] │
└────────────────────────────────────────────────────────────┘
┌████████████Create Cluster (hp705)█████████████┐
│ │
│ Create an HP-UX Cluster: │
┌█████████████████████████Confirmation (hp705)█████████████████████████┐
│ │
│ This system ("hp705") does not currently appear to be a cluster │
│ server (because "standalone" appears in the process context from the │
│ kernel). Cluster configuration can only be done on a cluster server. │
│ │
│ Would you like to create a cluster server? │
│──────────────────────────────────────────────────────────────────────│
│ [Yes ]] [ No ] │
└──────────────────────────────────────────────────────────────────────┘
│───────────────────────────────────────────────│
│ [ OK ] [ Cancel ] [ Help ] │
└───────────────────────────────────────────────┘
┌█████████████████████████Confirmation (hp705)██████████████████████████┐
│ │
│ This system ("hp705") should be in single user state before being │
│ converted to a cluster server. Changes to the file system, and a │
│ following reboot, can negatively affect running processes. This │
│ system is not currently in single user state. │
│ │
│ To view system status, start a new window (or press F7 on a terminal │
│ to escape to a shell), and type "who -r" (see the who(1) manual │
│ entry). │
│ │
│ To bring the system to single user state, visit the Routine Tasks │
│ area of SAM, or exit SAM from the main menu and then type │
│ "/etc/shutdown" (see the shutdown(1M) manual entry). Once the system │
│ is in single user state, you can restart SAM to convert the system to │
│ a cluster server. │
│ │
│ Do you want to continue to convert your system to a cluster server │
│ without changing the system to single user state? │
│───────────────────────────────────────────────────────────────────────│
│ [ Yes ] [[No ]] │
└───────────────────────────────────────────────────────────────────────┘
Hmmm, OK, fine, I'll drop to single-user mode and do it on the console instead of over telnet. Sorry, no more copy-pastes of the cluster setup process, but you aren't missing much.
Once we're in single user mode, it lets us set up a cluster. And once we've accepted that it's an irreversible process (weird), actually setting up the cluster takes an age to complete. It's not immediately clear why it needs to thrash the disk for 20 minutes, but once that's done, we reboot and then we can go back in to SAM and add a new machine to the cluster. But, it's only letting us as S700 machines (i.e. PA-RISC machines), not S300 machines (that have the 68K architecture).
Another quick side-note here to shout-out to HP-UX for including a sensible /etc/nsswitch.conf out of the box - one that looks at the /etc/hosts file and then the DNS resolver configured in /etc/resolv.conf. Most of you think this a weird thing to celebrate, but some of you have had the pain of installing old versions of SunOS and Solaris before, and you do not think this a weird thing to celebrate.
HP-UX 9 for Series 300 (68K)
HP-UX 9 for the Series 300 is a different set of install CDs, containg 68K binaries. It makes sense that we cannot add Series 300 machines to our cluster, because we have no 68K binaries for them to load over the network.
So how you do get Series 300 binaries on a Series 700 machine? You insert the Series 300 Core OS disk (not the bootable Install disk), and you install HP-UX 9 for Series 300. Over the top of the existing install.
This is profoundly weird and when I first tried this, I was sure I was doing something wrong and that I was about to trash my whole machine. You can imagine my surprise when, having done this second install (of an alien architecture), the Model 705 carried on working. I could even reboot it. Not only that, but now I was now able to add an S300 machine to my cluster too. I simply specifyied the Ethernet MAC address of my Model 340, along with a hostname (which it used to pick up the IP address from DNS, which was nice), and that was that. All configured.
You can further imagine my surprise when I connected the Model 340 to Model 705 with my new 10base2 cable (and T-pieces and terminators) and it boots right up, into HP-UX 9 for 68K, over the network. The root password is the same root password I have set up on the Model 705. In fact, it's the same root filesystem. I can make a file on the 340 and see it on the 705, like this:
$ uname -a
HP-UX hp340 B.09.10 A 9000/340 080009034425 two-user license
$ mount
/ on /dev+/localroot/dsk/c201d0s0 read/write on Tue May 23 19:48:13 1995 (hp705)
/UPDATE_CDROM on /dev+/localroot/dsk/c201d4s0 read only on Sun Nov 9 17:20:59 1997 (hp705)
$ echo "this is a test" > /tmp/test
$ cat /tmp/test
this is a test
And on the other machine:
$ uname -a
HP-UX hp705 A.09.07 A 9000/705 2001450354 two-user license
$ mount
/ on /dev+/localroot/dsk/c201d0s0 read/write on Tue May 23 19:48:13 1995 (hp705)
/UPDATE_CDROM on /dev+/localroot/dsk/c201d4s0 read only on Sun Nov 9 17:20:59 1997 (hp705)
$ cat /tmp/test
this is a test
But, binaries (like /bin/ls) are PA-RISC code on the 705 and 68K code on the 340. I know this, because the binaries work on each machine, but I can see this using the file command.
On the 705:
$ file /bin/ls
/bin/ls: s800 shared executable
$ ls -l /bin/ls
-r-xr-xr-x 6 bin bin 172032 Jun 9 1995 /bin/ls
On the 340:
$ file /bin/ls
/bin/ls: s200 demand-load executable -version 2
$ ls -l /bin/ls
-r-xr-xr-x 6 bin bin 143360 Feb 27 1995 /bin/ls
They are not the same file.
So ... they have mounted the same filesystem but the filesystem contents are different. What on earth is going on? How is one file both a 68K binary and a PA-RISC binary at the same time? But other files are just the same file?
You might think it's the NEXTSTEP trick of so-called fat binaries (as inherited by MacOS X and modern macOS). But look - the file sizes and timestamps don't match. So it's not one file with two binaries inside it.
I have bad news. That 20 minutes of thrashing when we set up cluster mode? We created ourselves a Context Dependent Filesystem. The contents of our filesystem are literally context-dependent. And the context comes from the machine you are logged in to.
Context Dependent Filesystems
Now we get to the point of the blog post. This filesystem is wild and I can totally see why HP ditched it in HP-UX 10.
When a file is a context-dependent file (or CDF), it in fact becomes a directory. Within this directory are files named after the various supported contexts. When you access the filename, you get the contents according to the context you are in. But when you access the filename including a + character at the end, you can see the directory and the context-dependent files it contains.
Directories can also be context-dependent and when that happens, each entry it contains is a directory for a specific context.
Here's /bin:
$ ls -ld /bin
drwxr-xr-x 3 root root 2048 May 23 1995 /bin
$ ls -ld /bin+
drwsr-xr-x 4 root root 1024 May 23 1995 /bin+
$ ls -l /bin+
total 10
drwxr-xr-x 3 root root 2060 Nov 9 17:44 HP-MC68020
drwxr-xr-x 3 root root 2048 May 23 1995 HP-PA
$ ls -l /bin+/HP-PA/ls
-r-xr-xr-x 6 bin bin 172032 Jun 9 1995 /bin+/HP-PA/ls
$ ls -l /bin+/HP-MC68020/ls
-r-xr-xr-x 6 bin bin 143360 Feb 27 1995 /bin+/HP-MC68020/ls
Oh look, our two copies of ls! It appears the context for the Series 700 files is HP-PA and the context for the Series 300 files is HP-MC68020.
(Side note: Don't worry about the dates - I moved the clock forward from the default of 1995 to 1997 before installing the 68K version because I got warnings on boot-up that files were newer than the current date/time)
They use this system even if you don't have a mixed-architecture cluster. There are some config files in /etc where the context is the hostname of the machine that's accessing the file. That way each machine in the cluster can get a unique copy of the config file (like /etc/checklist) whilst they can all share the same copy of some files (like /etc/passwd, which is not a CDF).
$ ls -l /etc/checklist+
total 2
-rw-rw-rw- 1 root sys 0 Nov 9 19:08 hp340
-r--r--r-- 1 bin bin 225 May 23 1995 hp705
$ cat /etc/checklist
# System /etc/checklist file. Static information about the file systems
# See checklist(4) and sam(1M) for further details on configuring devices.
/dev/dsk/c201d0s0 / hfs defaults 0 1 # Root device entry
$ cat /etc/checklist+/hp705
# System /etc/checklist file. Static information about the file systems
# See checklist(4) and sam(1M) for further details on configuring devices.
/dev/dsk/c201d0s0 / hfs defaults 0 1 # Root device entry
$ cat /etc/checklist+/hp340
$
Files you create whilst using the system will just be regular files - if you want to create a CDF, you must use the makecdf command. This turns out to be important because we need to fix a bug.
Fixing X11R5
If you try and run the VUE desktop on the Model 340 on this version of HP-UX, when booted from a Series 700 server running that version of HP-UX, the X11 server will fail to start. This is due to a missing library called libSXR5.sl.
After a lot of poking around online and finding extremely little about this file, I worked out that this because the X11-SERV package did not install correctly when we installed HP-UX for Series 300. Looking at /tmp/update.log we see:
* Beginning customize script for fileset "X11-SERV" (163 of 174) using
the command: /system+/HP-MC68020/X11-SERV/customize HP-MC68020
cp: cannot create /usr/lib/X11/extensions/libSXR5.sl+/HP-MC68020: No such file or directory
NOTE: couldn't copy /etc/newconfig+/HP-MC68020/X11R5/libSXR5.sl to
/usr/lib/X11/extensions/libSXR5.sl+/HP-MC68020
ERROR: Customize script for fileset "X11-SERV" failed. You might want to
re-invoke it manually later.
That's interesting. It's trying to put the Series 300 file into a context called HP-MC68020 but it cannot. Does that CDF exist? No it does not. But there is a file called libSXR5A.sl, which is not a CDF.
It turns out that this because in HP-UX 9.07 for Series 700, the library is called libSXR5A.sl. My theory is that they updated it at some point and figured it needed a new name. However, when we installed HP-UX 9.10 for Series 300, it still thinks the library is called libSXR5.sl, and it tries to install it to an existing CDF of that name, which does not exist. Therefore the installation of the X11-SERV package fails and that file ends up missing.
The workaround is to create the CDF manually, and then retry the installation of that package.
$ makecdf /usr/lib/X11/extensions/libSXR5.sl
$ /system+/HP-MC68020/X11-SERV/customize HP-MC68020
NOTE: copying /etc/newconfig+/HP-MC68020/X11R5/libSXR5.sl to /usr/lib/X11/extensions/libSXR5.sl+/HP-MC68020
$ ls -l /usr/lib/X11/extensions/libSXR5.sl+
total 36
-r-xr-xr-x 1 root sys 18262 Nov 9 18:22 HP-MC68020
If you ever try to replicate this setup, I hope this helps.
Now we have the file, and we can run X11R5 and the VUE desktop on our 68K UNIX workstation.
Wrapping up
You want to see the original version of the Sega classic Columns, running on a 68K UNIX workstation from 1989, in glorious 1280x1024 8-bit colour?
Turns out it was written by HP employee Jay Geertsen, and shipped as a game/demo in HP-UX. Sega later licensed it from the author, and you might remember playing it in the Arcade or on the Sega Mega Drive.
But do you want to play this game, on this hardware? Then come to the Retro Computer Festival, 15-16 November 2026 at the Centre for Computing History. I'll be there with these two monsters, along with a few more HPs, my SGI Power Indigo 2, and a few Sun workstations for good measure. Tickets are available from https://www.computinghistory.org.uk/ and are selling fast.
If you'd like more details about HP-UX in Cluster Mode, Bitsavers have a copy of Managing Clusters of HP 9000 Computers: Sharing the HP-UX Filesystem, along with many other interesting documents about HP-UX. Definitely worth taking a look.
What's Your Reaction?
Like
0
Dislike
0
Love
0
Funny
0
Angry
0
Sad
0
Wow
0