Wednesday, December 25, 2019

Installing A/UX on the Quadra 610

Installing A/UX on the Quadra 610

Sun, Dec 2, 2018

In this post, I’m going to go through the process of setting up Apple’s A/UX on a Quadra 610. It’s been a long time in the making - I think I had the hardware for nearly a year before I finally got A/UX running properly!

Wait, what is A/UX?

I’m not misspelling AIX, the IBM Unix that ran on the Apple Network Server range. It is a hybrid of Unix and the classic Mac OS, but it isn’t related to the Mac OS X we use today. A/UX is:

  • an operating system sold by Apple for their Motorola 68000 computers (while Apple was developing a version 4.0 that ran on their PowerPC computers, it was never released)
  • built on Unix System V
  • capable of running a Mac OS environment on top of the Unix base

You can log in to and use A/UX in a few modes. The main one is a Macintosh Finder interface that can run normal Mac programs and Unix programs - both console ones (in the “CommandShell” terminal emulator) and X11 ones (via “MacX”, a rootless X client).

The version of A/UX I’m installing here is the final one - 3.1. A/UX 3.1 is based on System 7.0.1 (for the Mac parts) and an amalgam of Unix System V R2.2 with some backported bits from System V R3, R4, and BSD (for the Unix parts).

The machine

While Apple made a few machines (in its Quadra line) that fit my definition of a pizzabox, they don’t all run A/UX. An FPU is required, and there are only drivers for some models (Apple’s compatibility reference).

  • the Quadra 605 shipped without an FPU (it uses a 68LC040 processor), and even if you replace the CPU with a full 68040, the video isn’t supported
  • the Quadra 610 shipped without an FPU, but if you replace the processor, it can work
  • the Quadra 660av has an FPU, but isn’t compatible (I believe this is because of ROM differences?)

So, a Quadra 610 it is, then!

Quadra 610 nameplate (a bit scuffed up)

I am given to understand that Apple sold some Quadra 610s with the full 68040, but mine wasn’t, so I had to hunt down a replacement CPU. Apple didn’t use ZIF sockets for their CPUs, so I just had to pry out the old one:

old and new CPUs, side-by-side

These older designs didn’t produce enough heat to need a heat sink. Imagine running a modern higher-end computer (like an Intel Core i7) without any special cooling hardware!

After replacement, I verified that the machine would still boot to the installed System 7 (it did!) and started prepping to install A/UX.

Installation woes

I had hoped that with the CPU in order, I was in for smooth sailing. I procured an install CD, made a boot floppy, booted in to the installer, partitioned my disk, and…realized that the built-in 80 MB hard drive was far too small to realistically run A/UX. Some guides suggest that it is theoretically possible to do a stripped-down setup under such tight constraints, but I wanted to explore all that A/UX has to offer, not the lowest common denominator.

When I need to replace a broken, missing, or “inadequate” hard drive, the tool I reach for is the trusty SCSI2SD. I started with the normal “out of the box” config, restarted the install process, went to partition the disk, and…the Apple HD SC Setup tool refused to deal with a drive whose model it doesn’t recognize. Drat.

There are patched versions of HD SC Setup that allow it to format any drive, but having partitioned the Quadra 610’s internal drive, wiping its former System 7 install, I no longer had a useful Mac test-bench. I decided to try preparing an A/UX partition layout from Linux, writing it directly to the SD card I’d use in the SCSI2SD. This…wasn’t a very good idea. I may have misused the tools, but trying to boot with the hacked-up drive connected caused the Quadra to boot to a “Sad Mac” screen (I believe because it had an almost, but not totally valid partition table on the normal boot drive).

At the time, I didn’t think that bad data on a drive could cause a “Sad Mac” error, so I dove in to a bunch of fruitless fixes, including trying various termination settings (at one point, I believe I installed the termination resistors backwards, which…probably didn’t help). I tried to use third-party formatting tools from my Quadra 605, but it also wouldn’t boot with the SCSI2SD connected. I ordered internal active terminators, I tried different SCSI ID layouts, nothing seemed to work.

Installation successes

Over the course of a couple of months, I tried several times to get the install rolling (often trying the same things that hadn’t worked before, in the hope that something had “magically” changed). What finally worked was (some combination of):

  • starting from a blank SD card, instead of one with my failed attempt to pre-create a partition table - I “cleared” my SD card by dd-ing /dev/zero to the first few MB of the card.
  • not having the terminator resistor pack in backwards

got the drive to not cause a “Sad Mac” error on boot. Partitioning it was also pretty easy - it turns out that if you set the manufacturer and model strings to magical values in the SCSI2SD Utility, the stock HD SC Setup will be OK with formatting it. My config ended up being:

<SCSITarget id="0"> <enabled>true</enabled> <quirks>apple</quirks> <deviceType>0x0</deviceType> <deviceTypeModifier>0x0</deviceTypeModifier> <!-- The size has to be less than 2GB total  for A/UX to boot from it --> <sdSectorStart>0</sdSectorStart> <scsiSectors>3984589</scsiSectors> <bytesPerSector>512</bytesPerSector> <sectorsPerTrack>63</sectorsPerTrack> <headsPerCylinder>255</headsPerCylinder> <!-- These are the magical settings: --> <vendor> SEAGATE</vendor> <prodId> ST225N</prodId> <revision>1.0 </revision> <serial>1234567812345678</serial> <modePages> </modePages> <vpd> </vpd> </SCSITarget>

For the installation process itself, I basically followed the instructions from A/UX Penelope pretty closely. I wont repeat their instructions, but here’s some screenshots of my experience:

starting the installation

choosing what software to install

First boot - needs the Enabler

First boot - seems to be working

Kernel has been reconfigured

Some notes from my experience:

  • on the Quadra 610, A/UX wont boot after install until you boot from another disk and install the “System Enabler 040” (https://support.apple.com/kb/TA28948) by dragging it in to the “MacPartition” System Folder
  • formatting the hard drive takes a long time - more than an hour for my ~1.9 GB disk!
  • some sort of SCSI error appeared on screen, but didn’t seem to actually impact the process. The error references /dev/dsk/c104d0s6, even though my actual disk is c0d0s0:

the SCSI error during install

Impressions of A/UX

There doesn’t seem to be a ton of “special” configuration or tools on the Unix side - the Mac Control Panel only does things that apply to Mac programs, and the Unix parts can only really be configured by using unix utilities / config files. My understanding is that Apple marketed A/UX as a way to run your existing Unix software along side Mac productivity apps - it doesn’t seem like there was any focus on unique A/UX-only possibilities.

One exception to this was “Commando” - a Mac UI for launching Unix commandline tools. Commando allows you to choose options and input files using a dialog box (instead of memorizing options). Commando was also part of Apple’s IDE for developing Mac apps, the Macintosh Programmers Workshop (some docs are here). I like how Commando dialogs serve as interactive documentation - I’m not sure I’d use them every day (vs the commandline), but it’s much nicer than manpages for exploring options.

commando dialog for mount(1)

Booting A/UX is a little bit unusual - it first boots in to a normal System 7, then runs a program that switches control over to A/UX (which completely replaces the original Mac OS in memory). It reminds me a little bit of LINLOAD, a tool that let you start Linux from MS-DOS. Other pizzaboxes don’t seem to have anything comparable about their booting process:

  • first, because they are (mostly) running their native OSes rather than an alternate one
  • second, because they largely have robust ROM Monitors

The original Mac ROM was strictly tuned towards the Mac OS - it included Toolbox routines, for example. It seems like Apple more or less just kept going with a ROM similar to the original Macintosh until they moved to the OpenFirmware monitor on PowerPC macs.

What might have been

It’s impossible to use A/UX without thinking about its potential. Apple managed to release an OS that was nearly as usable as the Mac OS, but had the advantages of Unix! I’m curious how viable a version of A/UX that doesn’t have any Unix tools, just runs Mac programs in isolated Unix memory spaces and with pre-emptive multitasking, would have been. I’m not sure if the Mac programs each ran in an isolated fashion or if they all were grouped together. Throughout the 1990s, Apple experimented with a bunch of paths to “modernize” the Mac OS: Pink/Taligent, Copeland, adopting BeOS, and the eventual plan of merging the Mac OS with OpenSTEP. Would the computing world be different if they had run with a consumer OS based on A/UX?

From here

As always, if you have any stories about using A/UX, a Quadra 610, or any other pizzaboxes, I’d love to hear them! You can reach me via email at sophie@pizzabox.computer. I intend to one day work on writing some software on A/UX to have a deeper understanding of the experience. I’d also love to do some benchmarking of using A/UX as an AppleShare server vs a more standard System 7 install on the same hardware - I believe this was one of the most popular uses of A/UX.

You may now switch off your Macintosh safely

I want to thank my friend Cameron who helped me with this project - we experimented with various ways to get the install going over the course of months, and I wouldn’t have been able to get things working without them!



from Hacker News https://blog.pizzabox.computer/posts/installing-aux-quadra/

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.