Tuesday, June 13, 2006

Linux on a Mac

My tech project of the week: Installing some sort of POSIX compliant operating system on a Beige G3 Power Macintosh.

Normally, I'd try linux right off the bat, and go from there, but this particular Mac boots from OpenFirmware 2.0.f1, which is really finniky about what it will and will not boot from. Of course, I learned this the hard way.

I tried booting from the current Debian-PPC installation cd (sarge), but that didn't work. Then I tried the boot floppies. Those didn't work. Then I tried some other flavor boot floppies; they didn't work either.

Then I tried NetBSD. They had reams of documentation about getting your OldWorld mac booted up and running NetBSD. Their documentation on OpenFirmware was such that every other linux distro I saw that 'supported' that model referenced it. And they had boot floppies. That booted.

The NetBSD installation boot floppies would boot, just like they were supposed to; they would read the initial ram disk, just like they were supposed to; and then they would completely freeze, just like they WEREN'T supposed to. Fortunately, the NetBSD install guide had a troubleshooting section which included symptoms, causes, and cures. The symptom of freezing right after hardware detection was documented, but the cause(s) listed were "multiple and varied". There was no cure.

So, back to Linux.

After much reading and digesting, it appeared that the easiest way to boot linux on a mac was to use BootX, the Mac equivalent of loadlin, to boot the linux kernel from a running instance of MacOS. Once we got that figured out, it was very easy to load a kernel and start the install process (debian sarge).

I found an installation guide here (http://mfdh.ca/apple/debian_on_oldworld_mac.html) that was very helpful.

The installation went very smoothly- I used the default partitioning scheme, which was to use the entire disk. It created a small partition at the beginning of the drive, type Apple Something, then the / folder, then a 211ish meg partition at the end for swap. It downloaded the base system, install the Quik bootloader, and prompted for a reboot.

The instructions I was following said that before rebooting, I needed to manually edit the quik.conf file and point it at the correct kernel location. Since the instructions were from 2002 (four years ago!), I figured that that step was probably outdated, and that the new debian-installer would configure everything correctly.

I was wrong, apparently. I followed the installer's directions and rebooted, but it wouldn't boot. All it did was sit there at the grey screen with the little disk icon in the middle that would flash "?" repeatedly. I understand that's symptomatic of an inability of OpenFirmware to locate a bootable device.

So now I've got an installed debian system with no way to boot it. The debian boot floppies didn't work, virtually all the installation guides said the only to boot linux on those machines was to use BootX, and BootX requires some sort of MacOS to be installed on the system. Note that I had reformatted the hard drive during the installation, and MacOS jus' didn' exist there anymore.

So, the search for boot floppies commenced.

Today I was able to locate a repository of install floppies from a debian developer that are supposed to work on OldWorld macs. I think they use some sort of modified miBoot to effectuate the boot process, but at any rate, some of them work.

I've been able to boot the system with this disk, and load a debian-current ramdisk from a floppy, but so far I haven't been able to find a module floppy (net-drivers, cd-drivers) that is compatible. The ones from the debian-current set don't work (different kernel, I suspect) I'm still searching.


I'm going to try these disks next.

Edit:

I just found another repository. I'm going to give these a shot.
It's referenced in this thread.

Edit:

It's working! It's Working! It's Really Working!

To outline the basic install process:
Disk 1: Boot floppy. This is used to load the linux kernel and a very small set of modules. Typically, this will boot, then ask for a ramdisk.
Disk 2: Initrd.gz Initial Ramdisk. This could be either a basic shell, or the next stage of an installer. For Debian, it's a very basic install setup.
Disks 3/4: Drivers. Debian uses 2 disks for this, one for network drivers and one for cdrom drivers.

The installer takes over after that, and installs the system either directly from the internet or from a cd-rom.

I was able to use this file for disk 1, this file for disk 2, and this file for the network drivers. You'll notice that Disk2 is from a different set- this was necessitated by the root disk from the 2006-04-04 set being too large for a floppy.

The installation should be finished sometime later this evening- I'll update when I know how it goes.

Edit:
I'm having trouble with Quik- the ppc bootloader. I can't seem to get in installed and configured properly.

Edit:
2006-06-15 I'm giving it another shot with Debian Etch. After the initial setup, I can run the installer over an ssh connection!

Hm. It didn't work. The system install, it had an error when it attempted to install quik, I installed quik manually, it said everything was good, but when I rebooted it, it wouldn't load. So, back to square 2.

Edit
Well, after much consternation, the project is on hold. I found additional instructions on this page concerning OpenFirmware configuration, but it requires you (me) to create floppy disks from disk images that are exclusively MacOS compatible. Meaning I need to have a running MacOS system with a floppy drive!

I've got access to several MacOS X systems, but none of them have floppy drives. So, the project is on hold pending the availability of a USB floppy drive.

Current Status:
I've successfully installed Debian Etch (as of 2006-06-15) on the machine. Quik reports that it is correctly installed. OpenFirmware reports that it cannot open the boot device (ata-int/disk@:,).

Updates will be appended to this blog entry as they occur.

- jhj

Saturday, June 10, 2006

Saturday Afternoon

It's a beautiful Saturday afternoon here, bright and sunny, about 95 degrees, slight breeze-

And here I sit, manning the Front Desk. There's a wedding tomorrow, and a pre-wedding picnic this afternoon. My schedule didn't leave time for the picnic, and I was on site, so... I'm here at the Front Desk, outlining Criminal Procedure.