A/UX Version 0.7

Before attempting this procedure, you should verify that your hardware is compatible with A/UX 1.0 - A/UX bypasses the Macintosh Toolbox, and communicates directly with the hardware, so if your Mac is not on the compatibility list, you're out of luck. This also rules out any of the current Macintosh emulators - Unless your emulator accurately replicates the low-level functions of the PMMU, FPU, and SWIM chips, it will not work.


Step #1

This is a beta version of A/UX 1.0, so it's pretty safe to assume the same hardware restrictions apply. You wil need a Macintosh II with a 68881 FPU and a 68851 PMMU. No other system can run this version of A/UX. You will need a compatible video card... The Toby framebuffer should suffice.

Step 2

Grab a copy of the A/UX 0.7 software, and let's get started. As with the 1.1.1 installation, you will need an A/UX 3.0 system.




Step #3

Connect an external hard drive to your A/UX 3.0 system, and create the necessary partitions. I used the automatic "Standard A/UX" option of the Apple HD SC partitioning utility. Make a note of the partition sizes, and reboot into A/UX




Step #4

The earliest version of A/UX used the SVFS (5.2) filesystem - By default, the A/UX 3.0 kernel does not include SVFS support. Rebuild your kernel with SVFS support using:




Step #5

Next, we need to create the root filesystem where A/UX 0.7 will reside. You can do this using the mkfs command - just feed it the slice number, and the sector-count. In the example below, I am creating a 54,567KB (109,134 sector) filesystem on slice zero of SCSI ID 1:




Step #6

Mount the new filesystem on /mnt... We're going to dump the A/UX 0.7 files into it




Step #7

Decompress the A/UX 0.7 tarball into a directory called /UniSoft, and use cpio to copy it to the new root filesystem




Step #8

If all went according to plan, you should now have a full installation of A/UX 0.7 on the Unix partition of your external drive. Copy the MacOS files from the A/UX 1.1.1 cd-rom to the MacOS partition of the external drive... This will make your drive bootable.




Step #9

Now we have some cleanup to do... Many of the A/UX 0.7 files & directories have invalid owner & group data. Most of the device files are missing... Use chroot to change the root filesystem to /mnt



Step #10

Now that you chrooted into the A/UX 0.7 root filesystem, we can create the device nodes... Switch to the /dev directory, and execute the MAKENODES script. This will populate the /dev/dsk and /dev/rdsk directories. Unfortunately, a lot of other device files are missing, and I don't know the proper major and minor numbers. I created a few of them based on info from the A/UX 1.1.1 device tree.



Step #11

Last, you need to fix the user & group on some files and directories... Some of the files belong to non-existent users. This file contains the owner and group info for all the files on my A/UX 0.7 system. Here's how the info was gathered:



Step #12

Shut everything down, and disconnect the external hard drive... Change the SCSI ID to 0, and connect it to your Macintosh II. Turn it on, and you should boot into System 6. Double-click the A/UX SASH utility, and run a file listing... You should see the contents of your A/UX 0.7 root filesystem.



Step #14

Attempt to boot... It will fail on a "cannot mount root" error



So why didn't it work?

The A/UX 0.7 tarball does not contain all the device files, so it's realistically possible that I'm missing something critical from /dev... The MAKENODES script creates the /dev/dsk and /dev/rdsk device files using a major number of 4, instead of the 24 used in A/UX 1.1.1 - Was this the only major number that changed between the two versions? I don't know...

The SASH utility loaded the kernel, and the kernel went looking for a root filesystem to mount. The kernel identifies the root filesystem based on the ROOTDEV parameter. We can view/adjust this kernel parameter using the kconfig utility:



The ROOTDEV and PIPEDEV parameters are set to 0x0400, corresponding to /dev/dsk/c0d0s0 at major 4 minor 0. The SWAPDEV is set to 0x0401, which indicates /dev/dsk/c0d0s1 at major number 4 minor 1. This means A/UX is looking for the root filesystem in the proper location. It just can't mount the filesystem. Setting the ROOTDEV and PIPEDEV to 0xffff tells the kernel to get the root filesystem location from the SASH (preferences > general). Setting this gets me a little further, but it still produces a kernel panic.



So, am I using the wrong major/minor numbers for my device files... or perhaps missing a critical device file? Is there another kernel parameter that I need to tweak? Do I need to do something special with the dp utility to name the partitions? At this point, I really don't know... If you've been experimenting with the A/UX 0.7 beta, and gotten around this issue, please let me know. I would really like to get this working




Proceed to A/UX screenshots