Linux for Die-hard Mac Users - Thorny Path to Success, Part II
My SuSE 7.0 boxes finally arrived. PowerPC version consist of 5 CDs and almost 500 pages handbook; x86 Professional version contained 6 CDs, 1 DVD, 600 pages handbook, 200 pages configuration manual, and small 100 pages applications reference. Not so bad for so cheap (I mean price, not quality) software.
iBook Installation Procedure
Although you may be happy and your hardware will be instantly compatible with Linux, I wasn't. Installation procedure for FireWire iBook may be found in SuSE support database, but it requires a few explanation if you never worked with Linux on Mac before. First of all, Linux cannot be installed directly on MacOS native HFS or HFS+ formatted partition, so it requires either separate hard drive (Ultra ATA or SCSI), or at least separate partition. Since there is no space for second hard drive inside iBook, and Linux cannot be installed on the external FireWire disk, I had to reformat my hard drive (see previous page). SuSE Linux 7.0 installation CD crashed on the FireWire iBook during startup because of its kernel was too old and incompatible with ATI Rage 128 Mobility video accelerator.
Tip from MacGuru: If your Linux installation CD crashes because of outdated boot kernel, the best and simplest solution is to download newest boot kernel (usually it is named vmlinux and is available on the publisher's ftp or WEB site) and copy it to HFS Linux boot partition. If this still doesn't work, try to disable video acceleration and run in frame buffer mode. This technique so far works for any Mac Linux distribution, even for those which use different booting scheme (e.g. Debian).
The Linux HFS boot partition should look like this. So, suseboot is a fake system folder with Linux startup kernel. Text file called "partitions.txt" lists all partitions, it is not mandatory but very helpful since Linux has specific naming scheme for storage devices. For example, first Ultra ATA device called hda, second hdb, first SCSI device sda, second sdb, and so on. In my case, primary MacOS partition (6 GB) is hda9, Linux root (primary) partition hda10 (3 GB), Linux swap partition hda11 (96 MB), HFS Linux boot partition hda12 (32 MB). Where are partitions hda1, hda2, and all others till hda9? They are not lost, these tiny invisible partitions are used by MacOS itself to store partition map, hard disk drivers and driver patches. Just because MacOS always hides them, you most likely never notice their presence. Folder called "install" (with penguin icon) holds essential Linux updates and patches needed for first time installations. In my case, it was latest runtime kernel (do not confuse with boot kernel which is used only during installation), LILO (Linux Loader) update, and X Windows for FireWire iBook configuration file.
Next, let's take a look inside Linux boot folder which resides on HFS boot partition (in our case it is named as "suseboot"). Finder and System are really fake files, but without them Mac will not recognize Linux boot folder as startup system. Further explanation needs few under-the-hood details. iBook (as well as Blue&White G3, All G4, all iMacs and iBooks, most PowerBook G3, all PowerBook G4) are so called New World Macintoshes. Unlike old Macintoshes (respectively named Old World), they do not have large MacOS core inside ROM chip on the motherboard. Instead, MacOS ROM file resides on the hard drive, and Open Firmware uses startup script (actually text file of type "tbxi") to load and execute necessary codes. In our case, this is os-chooser script.
My os-chooser and yaboot configuration file may be downloaded here. You can open and modify them in any plain text editor which understands UNIX-style end of line, like free version of BBEdit, for example.
Tip from MacGuru: Do not forget to mark your Linux boot partition as startup in Mac Control Panel (Startup Disk or System Disk, depending on MacOS version)! Later, if you have trouble with booting either OS, reset PRAM to launch MacOS after next restart; use Command-Option-Shift-Delete to start up from another disk; or boot Mac from CD.
os-chooser is an Open Firmware script which checks whether space key is pressed on the startup and passes control either to yaboot (Linux bootloader) either to MacOS loader inside active system folder. If you want to use Linux as your primary OS (i.e. load it by default) just change the lines with boot statement. Statement ultra x:y points to the device and partition where bolted resides (do not confuse with with Linux device naming scheme, os-chooser is an Open Firmware, not Linux script !).
So, what, happens next, after executing os-chooser script? Yaboot reads its own configuration file and loads Linux kernel (either boot kernel from HFS partition either runtime kernel from Linux root partition). Further, Linux startup process will not differ from any other platform.
Boot kernel will invoke Linux installer, in my case, SuSE YaST. There is virtually nothing unusual with standard installation procedure (formatting/selecting partitions -> choosing profiles/software packages ->15 - 30 min installation -> basic configuration -> applying recent patches -> rebooting with runtime kernel -> having fun/nightmare).
Booting Linux on the Old World Macintoshes
Old world Macintoshes (which store MacOS ROM on the motherboard memory chip) use minimalist MacOS system folder with BootX extension, which unloads MacOS and invokes Linux. BootX does not work reliably with MacOS 9.04 and later even on the old world Macs, and almost never does not work at all on new world, because MacOS initializes hardware and thus prevents Linux to do the same correctly.
First Run (Smoke Test)
Configuration and tweaking of PowerPC SuSE Linux 7.0 (just as any other Linux) wasn't walk and watch procedure, several times I just screwed my installation almost completely until I figured out which versions of packages to use and how to recall the soul of broken Linux. The most tricky part was configuration of XFree86 (Linux windowing system) with hardware acceleration support enabled (frame buffer mode is slow and sucks). I have combined SuSE supplied XFree86 configuration for old iBook with Debian XFree86 for iBook DV, and got desired result (my XFree86 configuration file for FireWire iBook Summer 2000 model available here). After all this, I had the following:
In short, I've got almost what I am expected. Since I am using Linux on iBook only for research and testing purposes, missing support for video-out and somewhat quirky graphic acceleration do not bothers me. However, full HFS+, FireWire and iBook Power Management support would be certainly beneficial.
AppleTalk and AppleShare IP Emulation
See below, installation and configuration procedure is identical for both Mac and PC versions of Linux.
PC Installation Procedure
PC installation procedure was rather simple. Just boot PC from the SuSE CD#1 and follow installer. Hardware detection went smoothly, except the common Linux quirk when memory above 64 MB is not recognized. It may be cured very simple, just add statement "append = your amount of RAM" in LILO configuration file and run LILO again. My PC configuration was AMD Athlon CPU/850 MHz, 128 MB RAM, VIA chipset, nVidia video card, two 3COM Fast Ethernet cards, 40 GB hard drive, TEAC CD-ROM.
Windows File and Print Sharing
Linux SAMBA provides file and print services for Windows PCs. SAMBA can be configured with WEB based tools WEBMIN or SWAT (the last is much better), or with manual editing of configuration file (smb.conf). Once configured, Linux server (and its shared resources) will be visible from Windows workstations just any other PC box.
Novell File and Print Sharing
MARS_NWE (Martin Stovers Netware Emulator) does this job. I do not use Novell, so I have nothing to say about this software.
SuSE Linux 7.0 supplied with pretty old version of Netatalk - 1.4b2+asun patches. It was very good decision, however. Newest version 1.499 and prerelease 1.5 are still buggy to be really usable in production environment (I have tried them both and finally thrown away). Netatalk required modification of three configuration files (interface, shared volumes, printers), and after that worked without any problem, very fast and reliably. Netatalk emulates AppleShare IP, so you can use AppleTalk over TCP/IP. If you still want to use newer version, you can compile Netatalk for yourself with sources obtained from SourceForge.net. Do not forget to use "with shadow" and "enable SuSE" options, if you have SuSE Linux.
Tip from MacGuru: it is really bad idea to immediately follow recent versions of software, especially in production environment. Old versions should be utilized as long as they remain usable and efficient. Latest releases always have certain bugs and glitches, and nobody knows, how they may affect your deadline (and bottom line).
The Last Word
Current state of Linux on Mac may be described as work in progress. I have encountered the following problems (by the time I am writing this):
Continued - Mac Linux Distributions Compared...