The Trials and Tribulations of Installing LinuxPPC 2000 Q4
I recently wrote about using Mac OS X as my main desktop OS (see “Mac OS X: First Impressions” at http://www.linuxjournal.com/articles/misc/0035.html). Prior to working with Mac OS X (the X is read as ten), I ran a Mac OS 9/LinuxPPC dual-boot system. A longtime Mac user but a UNIX geek at heart, I was thrilled with the prospect of Mac OS X—a Mac-like GUI on top of a UNIX core. I enthusiastically installed the Public Beta of Mac OS X on my desktop machine, a Macintosh Server G3.
Initially, all went well with Mac OS X. However, once the honeymoon was over, I became increasingly frustrated with Apple's latest OS. The main problems are it is terribly slow, it has no support for floppy diskettes, there are GNU software compatibility issues and it has poor “classic” Mac OS emulation. In particular, there is no support for AppleTalk file sharing with older Macintosh computers. The lack of backward-compatible AppleTalk support was the hardest to take. After all, this was Apple's new OS not talking properly to its old OS using Apple's own networking protocol.
Late last year I decided to dump Mac OS X in favor of LinuxPPC. General availability of LinuxPPC 2000 Q4 (LPPC2000) was announced in time for the January 2001 MacWorld Expo, and pre-orders were being taken on the LinuxPPC web site. I wasted no time in ordering a copy.
In early February a LinuxPPC box-set arrived in the mail. For $30 US (which included shipping), I received four CDs, a printed user's guide and my very own LinuxPPC “Think Linux” t-shirt. The four CDs were Install, Source, FWB Software's Hard-Disk Toolkit-PE and Extra Software. The CDs were all dated December 2000.
I wanted to install on three computers: my G3 (128MB RAM, 4GB HDD), an original translucent green iMac (32MB RAM, 4GB HDD) and a cherry iMac (32MB RAM, 6GB HDD). Of the three, only the cherry iMac would require the services of the FWB-Toolkit (third-party software that allows an existing Mac hard disk to be repartitioned while preserving the original contents). This wasn't a concern with the other machines—the G3 was running Mac OS X, so repartitioning and reformatting were the orders of the day, and the green iMac was running an older version of LinuxPPC, the 1999 Q3 release. This machine's hard disk would also be wiped prior to installing LPPC2000. The cherry iMac is at home and is used by my kids to run a collection of Mac-based educational software.
I started with the green iMac. The LinuxPPC web site and the user's guide made a big deal of the fact that this release was shipped on a bootable CD-ROM. It was simply a matter of dropping the Install CD into the CD drive, rebooting and holding down the C key while the iMac started up. What could be easier? I did this on the green iMac, and after a few moments Linux booted, and the LPPC2000 graphical installer (X Linux Installer) loaded and appeared on screen. So far so good. All I had to do was follow the instructions on screen.
Up popped four large buttons and two small ones. The large buttons were labeled Instructions, Language, Select Partitions and Choose Packages. The smaller buttons were Options Menu and Reboot. The Instructions button gives a brief introduction to the install process, and the Language button lets you choose a language to work in. The real work starts with the Select Partitions button. Clicking here brings up the Mount Partitions and Setup Swap window, providing a means of specifying the mount points and names of any partitions. The partitions can then be formatted and mounted from this window. Of course, prior to doing this I needed to get my partitions in order, and LPPC2000 ships with partitioning software called Perldisk. Now Perldisk isn't pretty, but it does work, even though it can be a little strange to use. I didn't like the Add Partitions dial control for specifying the size of a newly created partition. It was, for example, hard to move the dial to exactly 20MBs, so I ended up manually calculating the exact size of the partition and entering the value into the text field under the dial. It is important to calculate the size using the proper formula. For instance, to request a 20MB partition, use
(1024 * 2) * 20
to get the correct value.
The partition information is then written to disk; then the Installer requires a reboot (remember to hold down the C key while the Mac starts up to continue with the install). With the Installer back on screen, I selected the Select Partitions button again and specified the partitions to format and mount prior to starting the install. For the green iMac, my partitioning strategy was to have /boot (20MB), swap space (128MB), /root (1GB) and /home (1.8GB). A further 1GB was set aside as a Mac OS formatted drive. I clicked on Done, and the partitions window disappeared.
The list of package groups then appeared in the Choose Packages window. Over and above the default selections, I selected the Editors, Interpreters, Network Servers, Network Apps/Utilities and Development package groups. A word of warning: don't unselect any of the default selections from this list—things tend to come out muddled as a result. I clicked on the Install button, and the process of copying LinuxPPC and its packages was underway.
It took a long, long time to copy over the 600MBs worth of packages, and I attribute this to the awful CD drive shipped with the original crop of iMacs. Some four hours later I was presented with a message box detailing the name of my root partition (a nice touch) and offering two further buttons: Reboot and Additional Options.
Clicking on Additional Options brings up the Configure LinuxPPC window that lists a selection of Post Install Options. There are buttons labeled Set Password, Set Date & Time, Set Timezone, Configure inetd, Set Network Settings, Configure Modem Port, Configure PPP Settings, Configure Runlevels, Setup Users and Groups, Configure X Modifier Keys and Run linuxconf. I made sure the clock settings were correct, set my root password, set the timezone to “Eire”, removed any unnecessary network processes from inetd and then configured the iMac for use with IP. (Note that I prefer to use chkconfig over the Runlevel Editor.) I closed the Configure LinuxPPC window and then clicked on Reboot.
The green iMac restarted, then the dreaded Apple flashing question mark appeared in the middle of the screen. The green iMac couldn't find an OS to boot!
The program that controls booting into LPPC2000 is called yaboot. The users' guide does a good job of describing how to use this program, but check the LinuxPPC web site for a fix to a small but important typo on page 40.
From the users' guide, I followed the instructions for selecting LPPC2000 as the green iMac's default OS. This involved booting from a Mac OS CD and then running the Startup Disk control panel. I selected /boot as my default choice and then restarted. The iMac continued to refuse to boot. I checked the documentation for clues as to why this was happening and was told that /boot should contain a “fake” Mac OS system folder copied there during installation. But this had not happened. On the green iMac, /boot contained the yaboot binary and a collection of kernel files but no system folder. I thought I was stumped until I remembered that the Install CD was itself bootable. I found a Mac system folder on the CD, copied it from the Install CD onto /boot, edited yaboot.conf, restarted the green iMac and watched while the iMac booted directly into Linux. Cool.
Despite having gone through a successful, if somewhat involved, installation on the green iMac, installing on the G3 was to present even more hurdles. For starters, the holding down the C key while booting trick did not work. Only Macs with a “New World ROM” can boot directly from the Install CD. If your Mac is an iMac or newer, you are probably going to be fine. If it isn't, you won't be. The problem for me was that the G3 can boot from Mac OS bootable CDs, so I was initially confused as to why the Install CD did not boot. Of course, if I'd read the entire printed manual I would have seen that the G3 had problems in this area.
It certainly pays to read through the entire printed manual prior to attempting to do anything. Although the install process is made easier by the graphical installer, it is not straightforward, and this can result in a number of false starts. This is what happened to me with the G3.
As the G3 could not boot from the CD, the manual suggests booting into Mac OS and running the Mac-based Installer application from the Install CD. I had already booted from a bootable Mac OS CD and partitioned the G3's hard disk into two Mac OS partitions (750MB and 250MB), /boot (20MB), swap space (128MB) and /root (3.1GB). I installed a minimal subset of Mac OS 9.0 onto the Mac OS system partition, as my intention was to keep the OS available should I wish to access any legacy data from when I was using Mac OS exclusively. With Mac OS 9 installed and running, I popped the Install CD into the CD drive, double-clicked on it and looked for the Installer icon. To my dismay, the Installer application wasn't on the CD. I checked the manual and was told that it should have been there. It wasn't. Heading rapidly toward panic, I searched the other three CDs in the set, all to no avail. The Installer application was missing from the distribution CDs! Of course, the Installer application is available for download from the LinuxPPC web site, but as I'd only installed the minimal Mac OS setup, the internet connectivity software wasn't available to me.
The printed manual came to my rescue. Page 45 details the steps to perform if the Installer program doesn't work. I copied a selection of files and folders from the Install CD to various locations on the hard-disk and then restarted the G3. Up popped the Mac OS-based BootX OS chooser. I was in business.
I configured BootX to start the graphical installer and then clicked on the Boot button. Things went pretty smoothly from here on in. After about 90 minutes, I had a working installation of LPPC2000 running on my G3.
I decided to opt for a direct boot on the G3 as opposed to configuring BootX to provide a choice between Mac OS 9 and LPPC2000. I would never have considered this 18 months ago. But now, with more and more of my daily activities handled by Linux, I was ready to let go of the Mac OS crutch and run Linux as my main desktop OS. For those times when I needed to access Mac OS 9, I planned to run the Mac-On-Linux emulator within an X window.
As with the green iMac, I had to copy the system folder from the Install CD onto /boot and edit the yaboot.conf file. Upon rebooting, yaboot brought me directly to a graphical Linux login. LPPC2000 defaults to GNOME as the preferred desktop with KDE installed as an option. I left GNOME as the default.
I logged in as root and created an account for myself. Under user “barryp”, I ran a small set of commands to see what was installed. Typing uname -a confirmed that LPPC2000 was shipped with version 2.2.18 of the kernel. I checked to see if vi, latex and ispell were installed. As expected, they were. I then issued the perl -v command to see which version of Perl was running. What I saw shocked me. LPPC2000 ships with release 5.005_03 of Perl, not the 5.6.0 release which has been available (and stable) since mid-2000! It turns out that LPPC2000 is based on the software packages shipped with Release 6.1 of Red Hat. And of course, Red Hat 6.1 shipped with release 5.005_03 of Perl. Since 6.1, the folks at Red Hat have gone through 6.2, 7.0 and are now shipping release 7.1 of their distribution (as of April 2001). Even though LPPC2000 was new, it was already quite outdated. As a Mac user, this is something that I had become accustomed to: seeing new versions of software appear first on the Intel platform and then waiting for updates to appear on the Mac (if ever). I thought that moving to Linux on the Mac hardware platform would protect me from this. I was annoyed and disappointed.
Now as any Linux user knows, the latest release of open-source software is never more than a download and a “tar -zxvf” command away. However, for the vast majority of Mac users (who must constitute a large chunk of LinuxPPC's target market), this is already too much to ask of them.
My next task was to install and configure a printer. This is easily accomplished using the Printer Configuration control panel from within X. I'd done this before, and it has always worked fine. But not this time. Everything looked as it should, but printing did not work. I checked the LinuxPPC web site for any help and found a support item stating that LPRng needed to be installed. I downloaded LPRng and tried to install it. It complained that the rhs-printfilters package was missing. I found an RPM for this package on the Net, and after installing it I was able to complete the install of LPRng. Unfortunately, printing still did not work. I searched my hard disk for copies of the printcap file. It turned out I had two: one in /etc and another in /usr/etc. Checking the contents of these files confirmed that LPRng was using the empty printcap file in /usr/etc, while the Printer Configuration Control Panel was using the file in /etc. As root, I copied the printcap from /etc over the file in /usr/etc, restarted LPRng and, lo and behold, printing worked! Of course, it would have been nicer to have printing work out-of-the-box.
The Extra Software CD has a load of LinuxPPC-ready RPMs of many different software packages. I was initially very interested in the Bochs x86 emulator and thought I might install the RPM to see what the emulator was capable of. Using the graphical RPM installer, I located the RPM on the CD. When I clicked to install, I got a message telling me that user/group jcarr was missing from my system and that I couldn't install the RPM as a result (Jeff Carr is a key player at LinuxPPC). I added an entry for jcarr to the /etc/passwd and /etc/group files, and the RPM installation problem went away. Really though, the techies at LinuxPPC should be catching things like this long before CDs make their way into the hands of users.
I was interested in the x86 emulator, but not as much as I was in the Mac OS emulator, Mac-On-Linux (MOL). Having gone to the trouble of installing Bochs, I have yet to look at it in any detail. The same cannot be said for Mac-On-Linux. Here is a piece of software that lets you run a copy of Mac OS (pre-X) within an X window. MOL does a better job of this than the similar technology built into Mac OS X. It supports more versions of classic Mac OS, including those based on releases 8 and 9. Mac OS X's classic emulation only works with the 9.1 release. MOL also has great support for AppleTalk—I was able to work with drives on remote Macintoshes within MOL, something that is not possible with Mac OS X. Printing was better integrated, too. All in all, MOL is another great advertisement for why open source is a better way.
I was worried about installing onto the cherry iMac, primarily due to the fact that the kids would never forgive me if I upset their Mac OS installation.
It was time to take a look at FWB Software's Hard Disk Toolkit-PE. The cherry iMac used to run LinuxPPC 1999 Q3, but I had never really used it. So the 6GB was already partitioned as 4GB for Mac OS and 2GB for LinuxPPC. As one of the Toolkit-PE's main features is to rearrange existing partitions, I wanted to shrink the 4GB Mac OS partition to 3GB and use the extra 1GB as the cherry iMac's /root . The other 2GB would be used by /home. As no instructions on the use of FWB's tools came with LPPC2000, I downloaded an article from http://www.linuxppc.org/. I followed the instructions but could not shrink the partition. The software complained that the driver needed to be updated and suggested I choose the Update Driver option from the FWB menu. Every time I tried, Toolkit-PE crashed with a Mac OS error “of type 2”. When I tried to install the software onto the Mac OS partition, I was asked for a serial number. I did not get a serial number with LPPC2000, and no mention of the serial number was to be found on the http://www.linuxppc.com/ web site. The FWB article did mention that the serial number wasn't needed if the software was used directly from FWB's bootable CD. This was how I was using it, and it was crashing every time.
I had to make do with installing on the old LinuxPPC partition, and the install went smoothly. I'm not sure what I would have done had I needed to shrink the partition before the install, as reformatting, repartitioning and re-installing the Mac OS setup was not something I wanted to do. Luckily for me, the partitions already existed.
This release of LinuxPPC is a huge improvement over previous releases. However, I am disappointed by the amount of effort I had to expend in order to get the software installed. Most of what I went through will be so alien to the vast majority of Mac folk that they may not bother with LinuxPPC at all, which would be a shame. Apple definitely has the upper hand here, as all it takes to install Mac OS X is a CD insertion and a reboot. Of course, the provided functionality leaves a little bit to be desired.
In defense of LinuxPPC, they do state that this release of their distribution is the last before a “major reorganization”. As a company, LinuxPPC is transitioning from a for-profit business to a nonprofit organization, and this is to be applauded and supported. Despite my initial disappointments and configuration problems, I now have LPPC2000 running smoothly on my G3. The gain was well worth the pain. I see no reason to change to another OS, and I keep a regular eye on the Updates page on the LinuxPPC web site. I also look forward to the next release of LinuxPPC. But be warned: read the manual before attempting your install and check the LinuxPPC web site for hints, tips, fixes and updates.
Paul Barry (email@example.com) lectures in Computer Networking at The Institute of Technology, Carlow in Ireland (http://www.itcarlow.ie/). He is the author of Programming the Network with Perl, which will be published by John Wiley & Sons. The green iMac referred to in this article hosts Paul's home page at glasnost.itcarlow.ie/~barryp/index.html.