::documentation::Penguin HOWTO  

Penguin - HOWTO

At the Top of the Iceberg

  1. System Requirements or... Before You Boot
  2. 1-2-3 Boot...
  3. Settings dialog explained
  4. Still can't boot?
  5. The Penguin Menus

System Requirements or... Before You Boot

  • 4 MB RAM is the bare minumum - more is required for large RAM disks and kernels.
  • System 7.0 or later (7.5 for IIsi and IIci)
  • MacOS in 32-bit mode (Memory control panel). Requires the MODE32 extension if your Macintosh ROM is not 32-bit clean
  • MacOS RAM disk and Virtual memory should be disabled (Memory control panel)
  • RAMDoubler, Pseud040 and SoftwareFPU extensions should be disabled (if present)
  • Linux kernel image
  • RAM disk image unless you're booting a hard disk partition
  • Your favorite mug filled with hot java and 1 oz. patience

1-2-3, Boot...

  1. Start the Penguin.
  2. Select "Settings" from the File menu to bring up the configuration options dialog.

    Use the "Kernel:" button to select the kernel binary to use. Either gzip'd (vmlinuz) or uncompressed (vmlinux) binaries can be used, however Penguin may fail to boot a large compressed kernel binary (known bug). For that reason, the uncompressed kernel (vmlinux) is preferred. You may need to uncompress the kernel binary manually, e.g. $ gzip -dk vmlinuz

    Use the "Ramdisk:" button to select a RAM disk image if you won't use a hard disk partition as your root filesystem (see documentation on how to prepare a hard disk partition).

    Enter the command line to use. If you're using a RAM disk as root you should enter root=/dev/ram If you have prepared a hard disk partition you have to know the disk id and partition number where the root filesystem resides. You can use the "Show SCSI Info" menu choice to find these. Something like root=/dev/sdXY; where X is the disk id ('a'-'p') and Y the partition number. For IDE drives, use root=/dev/hdXY. Common hard disk command lines are root=/dev/sda4 and root=/dev/sdb4.

    You don't need to touch any of the other options so hit the "OK" button.

  3. Select "Boot Now"

    Did you reach the login prompt? If not, was the screen cleared? If not, see "Still can't boot" since the error probably has something to do with your setup.

Settings dialog explained

Some of the options in the Settings dialog can be a bit difficult to understand, what a particular option does and if you should use it. This is a brief explanation to these whats and ifs.

Debugging output: [optional]

This item consists of several suboptions each giving you an additional piece of information about your machine during the boot process. If all went well and you're not interested in what the Penguin thinks about your machine - leave them all unchecked, they're here for informational purpose only. If you're going to file a bug report please turn all options on and select a log file in which the output from your failing boot will be saved.

Kernel: [mandatory]

This is were you specify what kernel image (file) to use. The file is the most important one of them all. This file is Linux, you won't get very far without it. Recent kernel images can be found on the downloads page. Penguin accepts both gzipped and plain kernel images. Penguin-18 also accepts bz2-zipped kernels. Zipped kernels will be unzipped before booting, causing a short delay and using some extra memory compared to an uncompressed kernel. So if you have little RAM and/or time, you may want to unzip the kernel before using it.

Ramdisk: [optional]

If you have not prepared a hard disk partition to use as your Linux root (/) you will have to select a RAM disk image. A RAM disk usually contains a minimal file system for installing or testing. This is a good thing to use the first time you try Linux on your machine, it is a fast and easy way to determine if your Mac is Linux compatible.

Note: The command line to use with RAM disk images is: root=/dev/ram

Log file: [optional]

By checking this option and selecting an output file the debug output during the Penguin boot process will be mirrored and saved into the file of your choice.

Command Line: [mandatory and optional]

This is perhaps the most difficult setting to explain since the options you enter are kernel arguments. Some kernels can handle certain arguments that others can't. The only really required argument is what "root" Linux should use. The "root" is the top of the Linux file system and this file system has to reside either on a hard disk partition or on a RAM disk (or floppy disk if supported by the kernel).

What you should enter as "root" depends on your setup. The base option is root= followed by the (Linux) name of the disk partition or device, if you are using a RAM disk this will always be: root=/dev/ram.

If you are going to use a hard disk partition as "root" you must know the Linux naming scheme of devices. All SCSI hard disks have the base name "/dev/sd" with the disk and partition number appended ("/dev/hd" for IDE drives). The first hard disk found will have 'a' appended to "/dev/sd" giving us "/dev/sda". The second disk found will be named 'b' giving us "/dev/sdb" etc.

To these names the partition number is also appended. The partition count includes every partition on the disk, partition map, driver etc. counted. Usually the first "usuable" partition is partition number four (4) thus giving the first disk found the name "/dev/sda4" and our command line will be: root=/dev/sda4.

If you have initialized and prepared a partition to use with Linux you probably already know what name to use. If you have forgotten or otherwise not sure if you remebered it correctly you can always use "Show SCSI Info" on the "Hardware" menu to get a listing of your connected SCSI devices, their partitions and Linux names.

Another useful command line option at the moment is max_scsi_luns=0. This will prevent the kernel from probing the SCSI device chain. This is only useful if you have problems with SCSI, but that shouldn't happen.

The command line options are separated with a space (blank), for instance: root=/dev/ram max_scsi_luns=0

Auto Boot On Prefs File Open: [optional]

If you would like the Penguin to automatically boot immediately at start (without using the "Boot Now" menu choice) or on opening a settings/preference file, check this option. To temporarily disable this behavior, to be able to change the settings, hold down the <CMD> key while Penguin is starting or when you open a settings file that has this option set.

Use old RAM detection: [optional]

Since the release of Penguin 0.4.d14 (a.k.a Penguin-14) a new memory detection method is used by default. Should you get an error message early in the Penguin boot process saying "Failure while reading MMU tables...", check this option and try to boot again. This is of interest to me and I would like to hear from you with output of the items in the "Hardware" menu.

NOTE: This option has been removed from Penguin 18.

Don't Disable Video Card VBL's: [optional]

To let the kernel initialize its environment in peace we're trying to shut down as much as possible of MacOS, including the interrupts your video card generates. Some video cards do not support this and Penguin will give you an error at the very end of the boot, after the message "slot_int_set...". If you are concerned about that error message please check this option since the net effect is the same - the interrupts will not be disabled anyway.

NOTE: If your Mac stops after "slot_int_set..." and never goes any further there's probably something funny with the video card driver and the disable operation hangs your Mac. Check this option and try to boot again.

NOTE: The IIci and IIsi have buggy video drivers that will hang your Mac if this option is not checked. This behavior is expected in MacOS version 7.0 and 7.1. The buggy video drivers were replaced in MacOS 7.5 and later.

NOTE: This option has been removed from Penguin 18.

68020: Don't force kernel into bank A: [optional]

This is a special option for the 68020 and MacII owners only. It has to do with the physical arrangement of the memory banks in the MacII. Normally this option should NOT be checked. If you own a MacII that hangs at the end of the Penguin boot, check this option and try again. This should be reported to the current Penguin maintainer.

NOTE: This option has been removed from Penguin 18.

Don't Actually Boot: [optional]

If you would like to see the output produced when the debug options are used but not boot for real, check this option and Penguin will not take the final step or leap into the kernel. This will allow you to examine the output.

Color By Penguin: [optional]

This option will change the hardware palette your Mac is using. This is useful if you would like to have the familiar white text/black background Linux look. The palette is a standard (S)VGA palette so if you do a "ls --color" in Linux you should get the same results as on an Intel machine.

Enable external cache: [optional]

Some of the Mac's were equipped with external caches, the IIci has a cache expansion slot and the IIvx has this cache soldered on the main logic board. If you would like to use this cache in Linux, improving you Mac's performance, check this option.

NOTE: Should you get unexpected errors (bus faults, address errors) in Linux and you know your Mac is equipped with an external cache which is enabled, clear this option and try again.

NOTE: This option has been removed from Penguin 18.

Delay boot: [optional] (Penguin 18 only)

If, for some reason, you need to do work on your Mac between the time you tell Penguin to boot and the time it actually boots into Linux, check this option and specify a delay time. Could be useful in conjunction with the "Auto Boot" option.

Pre-configure ("warm up") serial ports: [optional]

As of Penguin 18, you can use this option to configure the line rate, frame size, parity and stop bits for the Printer and Modem ports. On 68k PowerBooks, the serial ports are subject to power management but the Linux serial driver does not power them up. This option gets the MacOS serial driver to do it. Also, some old kernel releases had SCC initialization bugs and this option served as a workaround.

Still can't boot?

How long should I wait after "fasten seat belts..."?

That depends on the speed of your Macintosh and whether your kernel image was compressed or not. About 10-15 seconds is what it takes a IIci to leave the Penguin and enter the kernel. Has nothing happened on your dog slow 1987 machine after 60 seconds, I would call it a crash (you'll notice if "something happened"...).

My IIci is stuck at "slot_int_set ..."

And you are using 7.0.x or 7.1.x aren't you? This is due to a bug in the early video drivers for the IIci (and IIsi) machines. Unfortunately, there's nothing Penguin can to about this. The solution is to upgrade to 7.5.x since new, working, versions of the video drivers are included in systems after 7.5. If you don't have the possibility to upgrade to 7.5, you could check the "Don't disable Video Cards VBL's" in the "Settings" dialog. This will prevent the Penguin from calling the buggy driver, leaving the interrupts enabled.

"Unable to allocate memory for kernel..." What does that mean?

That you'll have to increase the default memory partition for the Penguin ("Get Info" in the Finder). The Penguin needs to load the kernel, and RAM disk, into memory and either the kernel or RAM disk was so large that the default partition size wasn't large enough.

"Failure while reading MMU tables ..."???

The Penguin needs to collect information about your memory configuration, for reasons unknown it failed while doing so. This is when the "Use old RAM detection" setting can be useful, set that option and try to boot again. If the boot still fails then I need the output from the items in the "Hardware" menu from you. (Since it failed in the first place, I would be interested in seeing that output anyway).

How can I get white text on black background in Linux?

Check "Color By Penguin" in the settings dialog. If you're using a monochrome display, specify "video=inverse" in the command line.

The kernel stops while probing the SCSI device chain

Your Mac is probably equipped with a 53C96 SCSI chip which is not supported under older kernels. Get a newer kernel, or use a RAM disk image and add max_scsi_luns=0 to your command line.

The Penguin Menus


  • Settings...

    Brings up the main settings dialog. This is the place were all boot parameters are set and configurations done. See "Settings dialog explained" for information about the various parameters.

  • Open Settings...

    Opens a previously saved settings file and loads the values from that file into the current setup. Double clicking or drag- dropping a file onto the Penguin application will have the same effect.

  • Save Settings...

    Saves the current setup into a settings file for later use.

  • Save Settings As Default

    Set the current settings as your default choice, i.e. the settings that will be used every time you start the Penguin.

  • Boot Now

    Starts the boot process using the current settings.

  • Quit

    Quit Penguin, what else did you expect?


The usual Macintosh Copy & Paste stuff. You can use the "Copy" item to transfer output from the various status dumps into other applications.


  • Show Machine Profile

    Dump current machine status. Interesting information about your Macintosh and what hardware we can expect to find inside the box.

  • Show SCSI Info

    List your SCSI devices and their names as Linux will name them. This can be useful if you don't know what to enter as root filesystem on the command line. By looking at the output this item produce you can see what name your Linux partition will have and use that as "root", i.e. "root=/dev/sdXY" where "/dev/sdXY" was listed as your Linux partition in the output.

  • Show Device Mappings

    Some real hardware information about your Macintosh. This will show you the logical to physical translation of the various devices (chips) in your machine. Confused? Hopefully you'll not have to use this item unless there's some problem with your boot and we need to know how and if the kernel will find your devices.

Written by Mikael Forselius <>, March 13th 1998. Updated by Andrew McPherson <>, May 30th 2000. Current Penguin maintainer: Finn Thain <>

Valid HTML 4.01 Transitional Valid CSS! Copyright © 2000-2015 Linux/m68k for Macintosh Project.