Yellow Dog Linux on the iMac
Running Linux on a Macintosh is a little different than with Intel. On the Intel side, most folks use LILO. On the Mac, the boot loader of choice used to be BootX, but now yaboot is also available.
BootX runs under MacOS and can be set up as an extension, so like LILO, you are offered the choice of booting MacOS or Linux. Unlike LILO, you are already well into the MacOS boot-up GUI before you get the opportunity to choose Linux, although you do have a nifty graphical screen, allowing you to enter some options that control the boot process (see Figure 2).
yaboot works at a lower level, more like LILO, giving you a boot prompt at power-up. The Champion Server documentation steps you through the setup for both of these programs, with special notes as to options for the various Mac hardware platforms.
While I'm on the subject of documentation, let me take a moment to comment on the Yellow Dog manual. Although only a loose-leaf three-hole package, it is very well done with clear instructions covering the full install. As mentioned above, it also lists special considerations for the various Mac/PPC hardware platforms. They also have a FAQ area on their web site (see Figure 4) and the usual mailing lists, monitored by YDL staff. Questions are answered fairly quickly.
I started using Linux on the PPC with another distribution, and had considerable trouble getting basic things like the keyboard, video and mouse, which I had taken for granted on Intel, to work. Setting up X can sometimes be a true challenge on the PPC, and since the Mac has no text mode, you can end up in a situation where you don't even have a visible command prompt. YDL wisely opted to boot the system in run level 3 with only the command prompt, so you can set up and test your X configuration before committing to booting straight into X with run level 5.
I already had a BootX setup from my old install and chose to keep it. Older iMacs have an ATI Mach64 video card, and Yellow Dog recommends adding the stanza video=atyfb:vmode:17 to your kernel arguments and unchecking the “No Video Driver” option. I also have a non-standard iProRaidTV SCSI card/TV tuner installed in the mezzanine slot of my Revision B iMac, so I have an additional ncr53c8xx=safe:y option to force the card to wait for the SCSI bus to settle during the boot process. This also disables some of the advanced features of the card, but it does work—usually.
For BootX, take a copy of the Linux kernel (vmlinux—PPC does not use compressed kernel images) and put it in your system folder or the kernel folder under your BootX install. I generally use the system folder along with the BootX extension, so I can go right into Linux early in the Mac OS boot process.
I ran the BootX program, checked my kernel parameters and pressed the “Linux” button. The Mac OS screen changed to a black screen with the ever-present Tux in the upper-right-hand corner, and I observed the normal stream of boot messages identifying and configuring my hardware—until it hit the iProRaid card. At this point, I ended up in a somewhat familiar endless loop of SCSI resets and was forced to power down the machine to get out. YDL apparently uses the sym53c8xx SCSI driver in their stock kernel, and it did not recognize my “safe” kernel parameter. (Both of these drivers are very similar, as I believe Symbios bought the old NCR chipset technology. The NCR/Symbios cards are very popular and inexpensive; I've got three of them in various Intel machines.) I tried replacing ncr with sym in my kernel arguments, as well as sym53c875=0, but nothing seemed to stop that endless SCSI bus reset.
But all was not lost. I've got my own home-compiled 2.2.14 kernel with the NCR driver, as well as modules for the video portion of the card, so I used it instead, and soon I was up and running, looking at the root login prompt. Although an annoyance for me, I do realize my machine is non-standard, and if it weren't for the iProRaid card, I would have been up and running much sooner. What would be nice is being offered both a monolithic kernel and a modular one, with a choice of modules to install.
- Readers' Choice Awards--Nominate Your Apps & Gadgets Now!
- diff -u: What's New in Kernel Development
- Memory Ordering in Modern Microprocessors, Part I
- Source Code Scanners for Better Code
- Security Hardening with Ansible
- Tech Tip: Really Simple HTTP Server with Python
- RSS Feeds
- Non-Linux FOSS: AutoHotkey
- Readers' Choice Awards 2013