Booting into Linux
18-Feb-2001
Stefan Jeglinski
BootX
- BootX is an application by Benjamin Herrenschmidt that allows one to dual-boot MacOS and Linux (or MkLinux) on old-world (aka beige, aka non-colored) Power Macintoshes that are running MacOS thru version 9.1. It's by far the easiest method for these machines. There are reports that BootX will not work with 9.x on any machine (low confidence), and that it will not work on any new-world (aka colored) machine regardless of MacOS version (high confidence). Kernel 2.1.125 or higher is required to boot Linux with BootX. This requirement is satisfied automatically with all modern kernels.
- Older versions of BootX can be downloaded from calvaweb.calvacom.fr/bh40/. Version 1.2.2 is the latest (and last) revision, and can be downloaded from http://penguinppc.org/~benh/. Version 1.1.3 is more compatible with 603 processors (higher versions are known to cause odd behavior [e.g., very slow operation] on 603s). Version 1.2.2 is usable on 604e and G3 old-world Macs, or G3-upgraded Macs.
- Brief BootX How-to:
- Copy the BootX extension to the Extensions folder.
- Acquire a kernel and place it into the Linux Kernels folder in your System Folder.
- Reboot MacOS and when the BootX splash screen appears:
- Hit tab to make Linux the default button. In the device field, enter the Linux device and partition which contains the root directory (for the example partition map, /dev/hda12). The kernel selected should be one from the aforementioned Linux Kernels folder. Hit return to boot the kernel.
- Select MacOS (default) to boot back into MacOS. After booting, launch the BootX app and follow the same directions as above.
- If you know that the device and default button settings are the ones you want to save, select Save to Prefs so they don't have to be reentered.
- Video Arguments
- Unaccelerated: run the OpenFirmware frame buffer (OFfb) by checking No Video Driver. This will prevent accelerated video from starting, no matter what video arguments are passed to the kernel. The OFfb is very slow, but also compatible with most any video card. If you can see the standard console, you should be able to run X fine with the OFfb.
- Accelerated: run the accelerated video driver for your hardware by passing the argument video=XXXXX:vmode:NN,cmode:MM with No Video Driver unchecked. XXXXX is the designation for your video card. The definitive list of these is found in the source code, in /usr/src/linux/drivers/video/fbmem.c. For ATI Rage II or Rage Pro cards, for example, the argument is atyfb. NN is the mode number, and must be supported by your monitor and video card. For example, 15 is 1024x768 at 72Hz. MM is the color depth. Depending on what your monitor and video card supports (and whether the video driver is bug-free!), possible values are 8, 16, 24, and 32.
- If you know that the video settings are the ones you want to save, select Save to Prefs so they don't have to be reentered.
- Cache Settings
- 603 or 604 machines with motherboard L2 cache rely on the MacOS to turn the cache on early in the boot sequence. It can be difficult to determine if the L2 cache is really on or not. cat /proc/cpuinfo should list L2 cache info but may not. The only definitive way to determine if the cache is active is to compare the execution time of test code (small processor-intensive loops) with and without the cache chip installed.
- G3 machines typically have backside cache that can be turned on by BootX. To do so, the BootX prefs must have a resource containing the 32-bit word that properly initializes the backside cache. To this end, the BootX distribution has a console program called GrabG3CacheSetting. Running it should load the correct 32-bit word as a resource in the BootX prefs. Alternatively, the PowerLogix G3/G4 Cache Profiler can determine the same information and modify the BootX prefs as well. To double check, the BootX prefs can be opened with ResEdit and the 32-bit word can be compared to the PowerLogix cache profiler result; the value can be modified or entered by hand with ResEdit as well. cat /proc/cpuinfo should list L2 cache info; an example result for a 9500-class machine with a PowerLogix upgrade card is l2cr override: 0xb9080000. In addition, dmesg will include information about the cache, for example: L2CR overriden (0xb9080000), backside cache is enabled.
- The BootX checkbox for G3 cache must be on!
- Other Arguments
- single will boot Linux in single-user mode
- adb_buttons=nnn,mmm will set the useage for 2- or 3-button mouse emulation (deprecated!)
yaboot
rapierbit