===== Working with Power Macintosh G3 (Beige) Open Firmware ===== ===== Abandon all hope, ye who enter here ===== This is not a fun process, and it provides very little in the way of reward. I've been using Linux since 1994, and I've used it on a number of different architectures, not just Intel and ARM. I've worked with 'big iron' and a variety of UNIX workstations. I knew that trying to resurrect turn-of-the-millenium hardware was going to be a challenge, but I thought I was experienced enough to make it work, and work reasonably well. I knew that there would be but I thought it was going to be a fun exercise with a sense of accomplishment at the end. That is **not** what I experienced. At all. I started with what NetBSD describes as the "notoriously difficult" Power Macintosh G3 (Beige). After spending dozens of hours over weeks of time (with no real success), I ended up putting that aside and switching to a Power Macintosh G4 (Digital Audio). I still experienced plenty frustration, but on that one I eventually was able to figure out how to actually accomplish my goal of booting an actual Linux install -- at least kind of, anyway. Here's the thing: even then, what was I left with? A 32-bit-only big-endian-only machine based on an orphaned CPU family, with a single core running at less than 1GHz, with less than 1GB of RAM, that consumes north of 100 watts at idle... It's big, it's noisy, it's power-hungry and it can't run modern software. Yes, even that latest-and-greatest G5 you might have -- in fact, **especially** that G5 you might have. In short, a decade-old $35 Raspberry Pi 3B+ out-performs this thing, has **much** better software support, and consumes 1/10 of the power. Linux on a Power Mac just does not make any sense whatsoever. These machines were designed to run Mac OS 9 or OS X. They are adequate at running those operating systems. Stick with that: you'll be **much** happier and the machine might actually be able to do something... mildly productive. I can hear you now: "But OS X 10.5 and older won't run any modern software!" Well, **no** 32-bit PowerPC system will run modern software, no matter what up-to-date version number might be attached to the Linux distro you install. When even the tiniest systems today are all 64-bit, more and more software is simply not supporting 32-bit. You're going to be stuck with old, obsolete versions -- just like if you stuck with OS X... I mean it: you will not be able to run modern software. What's the most important program you can run on a computer today? Well, how are you reading this right now? That's right: with a web browser. But you won't have one on a PowerPC system... That's right: even if you're running Debian 12, you can't install Chromium or Firefox. The closest I could find to a modern browser is Evolution -- and that's assuming you can get a graphical environment in the first place. My guess is that this is not the first time you've heard this reasoning. You've probably already found a bunch of other posts of varying age echoing these same thoughts, yet still offering instructions on how you, too, can fall into the same tarpit that they did. But you're thinking something like, "It can't be **that** bad... They're just young Gen Alphas that have never had to struggle... I'm sure **I** can do better..." Which is why I gave you my credentials in the beginning. I've been facing these struggles for far longer than I'd care to admit. I remember the agony of trying to hit exactly the right X config to work with my video card and still sync with my monitor, the frustration of dealing with IRQ and DMA conflicts, IP networking where even having a link light and an 'up' interface didn't actually mean anything was working right, and all of that stupid nonsense we've left long behind... Well, I'm here to tell you. This is going to throw an entirely **new** set of frustrations at you, where your old skills won't really help you -- but it will give you the flashbacks of that terrible past. Do yourself a favor: if you're looking for a challenge, go grab a RISC-V board and play with that. Fedora just added RISC-V for Fedora 42. It's new enough that it's still a bit of a struggle to make it work. You get to be forced to use a serial console and everything! But when you're done, you'll have a modern CPU with plenty of power and RAM that costs about a dime a day to operate. Seriously. I wish I had... What? You're still here? OK, then. Let's keep going. But don't say I didn't warn you. ===== History Lesson: Macintosh System Firmware ===== What makes this process so difficult? A lot of it comes down to the conflicting and cobbled-together nature of the entire PowerPC environment. And nothing illustrates this more than the history of the Macintosh system firmware. For those who might already know much of the history or simply want a brief tl;dr: if you want anything approaching a smooth process, make sure you are working with a NewWorldROM-based Macintosh. That would be any machine starting with the Blue-and-White Power Macintosh G3 or newer. Any of the 'beige' machines are going to make your life miserable, up to and including the last beige G3's. That includes machines that have CPU upgrades: the problem is not the CPU, it's the motherboard and its firmware. Now, for the history lesson: in the early Macintosh computers (the ones based on Motorola 68k processors), a great deal of the operating system is built into the system's ROM, what PC people would call the BIOS (or UEFI today). That's how they could cram an entire GUI operating system onto a 400k floppy and still have space left over: there's a fair bit of that capability built into the hardware itself! During the time Apple continued to develop new designs based on that basic original 68k architecture, the original firmware (called the Macintosh Toolbox) largely came along as well. However, when Apple moved to PowerPC processors, they couldn't just stick with the same firmware as before: literally everything was different. To address this, Apple chose to adopt an existing firmware (now) called Open Firmware. However, the Mac OS operating system still fully expected to be able to use the Macintosh Toolbox, and that meant that nearly all functionality was still going to come from it. On those early machines, Open Firmware really only had one job to do: perform the absolute minimum amount of hardware initialization and then turn control over to the Macintosh Toolbox, which would then give the classic Mac OS the environment it expected. This environment is what we now call the OldWorldROM environment. Open Firmware is there, but if you were a classic Mac OS user, you would literally never know it. In fact, on the earliest Power Mac systems you can literally only interact with Open Firmware via an exernal serial console! That's how little Open Firmware was expected to do: you literally couldn't get to it... By the time you get to the last of the OldWorldROM machines (the beige G3's), Open Firmware was slightly (and I do mean **slightly**) more capable, but practically it still had only one job: get the system into the PowerPC-adapted Macintosh Toolbox, and then use that to handle booting into classic Mac OS. Of course, we don't want to run Mac OS. We want to run Linux. Well, that's a problem: these computers simply were **not** designed to run anything else. "But they can run Mac OS X, and that's not classic Mac OS!" And you're right. And in order to do that, Apple had to do two things: one, dynamically patch a bunch of bugs and limitations in the Open Firmware on OldWorldROM systems -- but only just the absolute bare minimum needed for OS X; and two, carefully design OS X to fit within the limitations of systems designed to boot classic Mac OS. That meant using a partition table and filesystem that was compatibile with classic Mac OS. By working both sides of the problem, Apple was able to bring OS X to these machines. But even then, it's a fragile and noticably-limited process -- and they controlled all of the pieces! With Linux, we get none of those advantages. We are still severely limited by the incredibly basic Open Firmware capabilities on the OldWorldROM machines. And, we don't get the luxury of using an operating system designed around the Macintosh Toolbox expectations. So it ends up being an epic struggle. If you want to avoid that, you need to start with a machine with a NewWorldROM. After running into their own difficulties supporting their new operating system with their old ROM, Apple, finally improved this (somewhat) with the Blue-and-White Power Macintosh G3. The Open Firmware system was updated to 3.0, which expanded it enough to allow **it** to manage the boot process instead of the Toolbox. That means that it finally had enough capabilities to actually be able to boot from things like CD's and USB sticks. (Theoretically, the earlier ones should, too; but practically they don't: there just isn't enough capability to make it work.) And for trying to boot Linux on these machines, it's absolutely night and day: NewWorldROM-based machines can actually boot from the install CD like you would expect. That's only one hurdle out of the way, but it's a big one. So unless you really like the concept of building out a huge framework of extra hardware and network systems just to boot your Linux install... stick with a NewWorldROM system. ===== Which Distro / Why Debian? ===== In the (distant) past, that might actually be an interesting question with multiple useful answers. Today... not so much. Here are the only distros I can find that have images that have been updated in the past, say, five years: * Debian * Adelie Linux * Chimera Linux ===== Adelie Linux ===== Link: [[https://www.adelielinux.org/]] There's two options to work with: a Live CD and and Install CD. If you navigate to the download page, you'll be able to choose what type of image you want. I ended up with 1.0 Beta 6 for PPC / Desktop / XFCE. I was under the impression that you could also install from that image, but I couldn't find a way to do it, in text or graphics mode, logged in as root or live. But it's a great way to quickly get a feel for what Linux on a PowerPC system is like. Here's what I did for the Live CD: * Burn CD. Nothing fancy here: I used a CD-R, Maximum speed, default method. Verified fine. * Insert CD and boot computer. (Hint: Hold down C at chime to boot from CD.) * Adelie Linux Live (PowerPC 32-bit) I know I've said this a **LOT**, but I really, really mean it: **BE PATIENT!**. I tried booting the CD multiple times, each times freezing in the kernel in less than a second. I waited for a fair bit: 30-60 seconds? I had zero evidence of anything happening. One time I left it that way while I wrote down some notes. I looked back after about two minutes: it was actually loading! You just need to be patient... (And no: the CD activity light was not lit at all...) Even after the text console starts up (and implies you need to log in), keep waiting. It will eventually load a graphical environment. Again, when you think you haven't waited long enough, keep waiting even longer. Like literally 5-7 minutes to get to a desktop. (And yes, the CD light **does** eventually blink, so you can use that to have an idea that things are still percolating.) Short answer: there's not much you can do. For one thing, there's still no Web browser... (Maybe just sticking with the Live CD to see there's not much there might just save yourself a **lot** of grief?) But I also wanted to try an actual install. More digging and stumbling around eventually led me to the Full Directory Listing: [[https://distfiles.adelielinux.org/adelie/current/iso/]]. There's an "inst" image instead of "live", so I tried that. (Here's a link to the exact image I used, using a non-current path that might actually stick around: https://distfiles.adelielinux.org/adelie/1.0-beta6/iso/adelie-inst-ppc-1.0-beta6-20241223.iso) I followed the exact same burn and boot process as the Live CD. As part of my digging, I found a number of pages that stated that the text-based installer was harder to use but more reliable, so I tried to figure out how to use that one. But I could find no way to start the installer: all I got was a shell, and I couldn't find any kind of install command. I then tried the normal graphical boot, and **this** time I got an installer! * Continue (Intro) * Continue (English/US) * Continue (Allow closed-source firmware) * Continue (Single disk) * Continue (Erase and Use Whole Disk: Selected)/Yes (Confirm) * Automatic: Selected/Continue (Networking)/Continue (Success) * Time zone: east/