Preparing Your Low-End Mac for Linux
Shortly after the last article in this series went live, my email box suddenly disgorged quite a few interesting letters, some of which I thought bore mentioning here.
First off, in the last column I stated that "NuBus (x100 series) PowerMacs can only run the 'MkLinux' Linux distribution." This was the case for quite some time, but as Clae pointed out from right here in sunny Australia, the LinuxPPC distribution added support for these machines as of June 2001. This is a good demonstration of the development of free Unix being advanced through it's Open Source nature, and it's likely that support for these first-generation PowerMacs will spread - at least through the Linux world.
Another topic to come up was one of the Mac world's hottest - OS X, or rather the lack of coverage it's received here so far. While my own discussion OS X has been conspicuous by its absence, that was a deliberate move in light of the fact that OS X is almost everyone's topic of choice at the moment, making for no shortage of information out there. For the moment, I'm playing around with the Unices less well known in consumer circles, but I do plan on getting into OS X as soon I go out and get that dual G4 I've been drooling over at the AppleCentre. I'm particularly interested to see how well it interoperates with the free "home-brew" Unices that for so long have been the mainstays of the enthusiast.
I also had a bit of discussion concerning the breadth or "completeness" of the information this column contains - specifically whether or not there's enough of it. Good question. The world of Unix, and particularly Open Source Unix, is a dynamic, complicated place, described and documented in countless releases which lie scattered all over both the Internet and the printed computer press. As far as I know, it would be impossible for one person to try to compile all of that into a single, all encompassing piece of work - especially in one's spare time.
Also, even if you were to filter out the politics and general events in the Unix world, you have to remember that what we're looking at is still a very large, very complicated, and somewhat cryptic operating system dating back almost to the dawn of the mainframe. Any attempt to cover every step of every process in the detail it deserves would quickly blow this column out to an impossible length.
It's for these reasons that each of these pieces, rather than trying to dissect Unix and lay all the guts out to view, simply provides overviews, anecdotes and hopefully ideas. It's not intended to replace one's own research or self-education. There are reams of books, guides, files, and how-tos offering a wealth of information on almost every aspect of Unix imaginable, and it would be an impossible situation if a single person was to appoint himself the hopeless task of obsoleting all that. It for this reason that the last piece gave a general idea of the difficulties that can plague a prospective Mac Unix user rather than listing each and every issue broken down to the last detail. It's also the reason why this release, while telling of my latest adventure in installing Linux, isn't designed as a guide on how to do so (though you will find links to such material). Hopefully that is the sort of thing you want to read, though you're always welcome to let me know what you think.
Choosing the Hardware
Departing my inbox for the lure of some 68K Unix experience is what led me to pull my Debian GNU/Linux CDs from the shelf. It was some months ago when I originally bought the three CDs which comprise the official Debian GNU/Linux 2.2 "potato" disk set. At the time, I had a mind to use them on a 33 MHz 68040-class machine - specifically a Colour Classic I was upgrading with an LC 575 logic board. However, those plans came to an end when that Colour Classic's analogue board proved to running on its last legs. Rather than letting the CDs continue to gather dust while the Colour Classic awaits repair, I decided to try a different tack, which is how I came to find myself clearing the cobwebs from Iridium.
Iridium is the name I give my SE/30. A fine-looking machine, the SE/30 - with it's 16 MHz 68030 processor, integrated FPU, 128 MB RAM limit, and single expansion slot - is well known to classic Mac enthusiasts as the most powerful and useful of all the compact Macs, those early all-in-one Macs with a built-in 9" monochrome screen. Costing me the tidy sum of 80 Australian dollars just over a year ago, the venerable machine came fitted with 8 MB RAM, a 250 MB hard disk, and System 7.1.
Though the usefulness of a machine in the class of the SE/30 as a highly interactive, general-purpose Unix system is questionable, it does provide a useful frame of reference as a low-performance Unix box. Also, it's compact size and good looks make it a favourite with vintage Mac aficionados.
Anyway, the little box had found itself with little do after I belatedly purchased a used Power Mac, leaving it wide open for involvement in this little adventure.
Preparing for Linux
Having settled on the machine, it was time to prepare it for Linux. The 8 MB RAM was fine, at least for this initial stage of experimentation (Debian Linux for the 68K Macintosh requires a bare minimum of 5 MB), though I'll likely add more later.
The hard disk capacity on the other hand was something I wanted to increase immediately. A minimal, pared down installation of Linux for a 68K Mac can be squeezed into 64 MB, however, for your machine to actually be useful, you're looking towards at least 200 MB with no upward limit. Factor in room for the Mac OS and a swap partition, and my SE/30's 250 MB begins to look anemic. The solution lay buried among my piles of electronic junk in the form of two 1 GB Apple-branded hard disks - one an IBM, one from Quantum.
I planned on using one of the two 1 GB drives, installing it inside the SE/30 in place of the original 250 MB unit. Once installed, I'd split it into three main partitions - one for the Mac OS and two for Linux.
If you've ever used Unix on either a PC or a dedicated workstation (say, a Silicon Graphics O2) you'll be familiar with the system booting directly into Unix when powered on. Unfortunately, old 68K Mac can't do this. Instead, you must first boot into the Mac OS and then use a loader program to start up Unix. This means that any 68K Mac running Linux must also contain a Mac OS partition. If you're planning on using Mac OS only as a means of booting your Unix OS, this partition can be very small indeed - less than 10 MB. I want to continue using Iridium to run all those classic Mac apps I have laying around, so I chose to make my Mac partition 250 MB, the same size as the original hard disk whose contents I later planned on copying to it.
On my chosen 1 GB IBM hard disk, 750 MB remained for Linux. Now when you come to allocating disk space to Linux, remember that you really need at least two partitions - the root and the swap partitions.
The swap partition is the smaller of the two and is used for Linux's virtual memory scheme. Linux's virtual memory, as that of the Mac OS, allows you to set aside a portion of your hard drive for use as simulated (albeit slow) RAM. In most OSes, such as the Mac OS and Windows, the contents of this virtual memory lives in a file on your main hard disk partition known as a "swap" or "page" file.
Linux can do this, too - at least on most architectures - but it is far more common (and advisable) to use a dedicated swap partition - an entire hard disk partition dedicated for use as virtual memory. How large you make your swap partition is up to you - a common recommendation is that it should be around twice the size of your machine's actual RAM level, and, according to most Debian Linux guides, no less than either 20 or 25 MB. For my own machine, I chose to make the swap partition 25 MB in size.
This left 725 MB free for the "root" partition - that is, the partition that will actually hold Linux and all its files.
So, now that I had a volunteer Mac, a likely hard disk, and an idea of how I was to carve it up, all there was to do was open 'er up, put the drive in, and get to work.
Installation of anything inside a compact Mac can seems daunting at first, but becomes a quick operation with time, and the upgrade of Iridium's hard disk went smoothly. To partition the disk, I eschewed Apple's HD SC Setup in favour of Surf City Software's Lido, which I consider more powerful and smoother in operation, as well as better equipped to deal with errors on the disk. A small portion of the disk will be taken up by two preexisting partitions named Apple_Driver and Apple_partition_map. These contain, respectively, the disk's driver and partition map and should be left alone.
Having split the hard disk to my taste, the next bit of housekeeping was to copy the contents of Iridium's original drive to the Mac OS partition of its larger replacement.
Should you find yourself having to do this, you have a number of options. The first and best is to hook up both hard disks directly to the Mac, either through the external SCSI port or a spare internal interface if one is present. Otherwise, you can place the old hard disk in another Mac and network the two together via the Mac OS's built-in file sharing to copy the contents across. If you take this latter approach, your best bet is to go with ethernet networking - AppleTalk or direct serial port connections are interminably slow and will require much patience and coffee for all but the smallest drives.
Wanting to get on with things as quickly as possible, especially as I was going on holidays and would lose a week of writing time, I decided to hook both drives up to Iridium. The 1 GB IBM drive was already snugly installed in the Mac's belly, leaving me to find a way to hook the old 250 MB unit to the external SCSI port. The proper way to do that would be to put the hard drive into one of those 3.5" external SCSI boxes and connect that to the Mac. However, I didn't have one of those boxes, nor the Aus$60 which seems to be the typical asking price.
What I did have was an old Apple CD300 external SCSI CD-ROM drive - actually a tray-loading Apple CD300 Plus in the case of the older caddy-loading drive, this 2x unit is what I was to use to actually install Linux on the SE/30. However, for the moment it would make a perfect temporary home for Iridium's old hard disk, so I popped it open, scooped out the CD drive, and put the hard disk in its place. Of course, the 3.5" hard drive was a bad fit for the 5.25" case, so there was no point in closing it up - I left the hard disk open to the world, which helped lend just the right air of geeky ambiance to Iridium's environment. Copying went smoothly, with the 80 MB or so of files making the journey between hard disks in around ten minutes.
With the storage solution sorted, there were only a few loose ends to tie up. The first was to install Mode 32 (search the page for "mode32").
The SE/30, along with a few of it's brethren (basically the first generation of 68020 and '030) Macs, has what are called "dirty" ROMs. This means that the machine's ROMs contain some old 24-bit code that can prevent various things from working properly in 32-bit mode. The best known symptoms of this problem is that the machine is unable to address any more than 8 MB of RAM and some software will refuse to run.
Mode 32 is a free bit of software from Connectix, which resolves this issue by patching the old 24-bit code with a proper 32-bit equivalent.
If you spend any time with Unix on minority platforms such as ye olde 68K Macintosh, you'll come to realise that they are often no easy answers and a good example of this concerns the use of Mode 32. Some documents claim that Mode 32 is a must for any 32-bit dirty systems to run Linux, while others state that it's not always necessary, but it's presence or absence can mean the difference between booting successfully and failure.
If you plan on using more than 8 MB RAM in your "dirty" Mac, you'll definitely need it. Penguin - the loader program used to start Linux from the Mac OS - recommends you use Mode 32 on "dirty" Macs, but it will continue without it (I've read reports, however, that older versions of Penguin will refuse to run on "dirty" Macs if Mode 32 is not present.)
As you've probably guessed, the key here is experimentation. I installed Mode 32 on Iridium, and things have gone just fine so far. A smaller confusion concerning Mode 32 is what version to use. The only major versions I'm aware of are versions 1.2 and 7.5. At least one document concerning Debian Linux states that you need a particular version for things to work properly, but fails to tell you which one. I used version 1.2 with no problems, but once again, you might want to experiment. Please bear in mind, though, that if you're using System 7.5 or greater, you must use version 7.5 or risk file corruption in your Mac OS partition.
With Mode 32 out of the way, all I had to do was reunite my 2x CD-ROM with its external case. While I was at it, I contemplated putting my PowerMac's 12X unit in the case instead, but decided against it.
It was a decision I would come to regret.
Continued in Installing Linux on Your Low-End Mac.
Cult of Mac
Shrine of Apple
The Mac Observer
Accelerate Your Mac
The Vintage Mac Museum
Mac Driver Museum
System 6 Heaven
System 7 Today
the pickle's Low-End Mac FAQ