LinuxPPC on a PowerBook G3

LinuxPPC on a PowerBook G3:

This is a totally UN-OFFICIAL installation/help guide, and before reading any of this you should go to and read that about 6 thousand times.
        [email protected]

To install LinuxPPC Lite on a PowerBook G3 you do NOT need Open Firmware, Quik, installer.coff, BootVariables, or a floppy drive.

Step 1. Download LinuxPPC Lite. (RPMS, base, bin) Download ramdisk.image.gz
***You need to download the files in BINARY format.***

Step 2. Download BootX 1.01 and kernel 2.1.130 at Benjamin Herrenschmidt's site. Place the BootX extension in the extensions folder and place the control panel/app in the control panels folder. The kernel should be downloaded as a binary file.

Step 3. Rename the kernel to "vmlinux" and place it inside your system folder. Place ramdisk.image.gz in your system folder too.

How the files should be arranged on your system:

Inside your main hard drive you should have a folder called "RedHat" containing the folders RPMS, base, and bin. Inside your system folder you should have "vmlinux" and "ramdisk.image.gz" Inside your extensions you should have the BootX extension. And lastly, the BootX control panel should go in the control panels folder. Don't worry about the MacOS cutting off the end of the long RPM file names, the Red Hat installer will still recognize them.

System Folder

    BootX Extension

   Control Panels
    BootX App

Macintosh HD:



Step 4. Back up all your data. Format your hard drive with Drive Setup. I formatted my disk into 3 parts:
      MacOS - HFS (1.0 Gig) (NOT HFS+)
      root - HFS (970 megs)
      swap - HFS (72 megs)

You can use the mac version of pdisk to figure out what device numbers your partitions are (/dev/hdaX) and how big they are. It is very helpful to write this information down so you don't erase the wrong partition.

Step 5. Re-install MacOS 8.5 on the MacOS HFS partition, upgrade to 8.5.1. Place all the RedHat/Linux files where they should be. (as they were above).

Step 6. Open the BootX App, for root device enter the partition that your system/kernel files are on. Enter /dev/hdaX (X being the partition number, it is 7 on my machine, oh btw hda means the drive is IDE) Check the use ramdisk option. Check the no video driver option.

Step 7. If you have any trouble booting into linux try using another kernel. Otherwise the installer will take you step by step through the installation process.

A note about using fdisk to partition your disk: What I did was deleted the root partition (970 megs) and then created a new partition that began and ended at the same spot as the root partition. I did the same thing with my swap partition. That was an easy way for me to create the two Apple_UNIX_SVR2 partitions. If you mess up just press q. w writes the partitions and should only be used when you're sure you have it set up right.

When the installer asks if you want to install quik select NO. Also when it asks for bootvariables do not type anything, just select OK.

If the installer says it cannot find the components file or FATAL error opening RPMS then you need to re-download the base directory and it's files (BINARY FORMAT!). You might have to re-download genhdlist (in the bin directory) as well.

Step 8. To boot into your new linux system change the root device in BootX to the partition you installed linux on. Un-click the use ramdisk option, (it runs the installer)


If you want to develop applications and compile them you need to downlaod egcs (gcc/g++, C and C++ compiler)

Download the following R4 rpms: (DO NOT download any R5 rpms, it will screw your system)


You can put these on your MacOS HFS drive and then mount the drive while in linux. "mount -nr /dev/hdaX /mnt" (X being the partition number) will mount the MacOS HFS drive in /mnt as read-only, so the HFS partition is not messed up accidently.

To install the packages type: rpm -i package_name The packages should be installed in the order they are listed.

If you get errors with iostream.h/streambuf.h that look like:

/opt/egcs/include/g++/streambuf.h:403: warning: invalid type `void *' for default argument to `ios *' In file included from test.c:1: /opt/egcs/include/g++/iostream.h:50: warning: invalid type `void *' for default argument to `ostream *' /opt/egcs/include/g++/iostream.h:123: warning: invalid type `void *' for default argument to `ostream *'

It's because the header files are gcc's, not egcs's. For example, at line 50 of iostream.h, change it from
ostream(streambuf* sb, ostream* tied= NULL);
ostream(streambuf* sb, ostream* tied= (ostream*)NULL);

If you are uncomfortable doing this you can get the source for the fixed iostream.h at:

Other very useful packages:


You need to install tcl and then tk if you want to run netcfg.

Extra info:

-KDE Startup:
To stop KDE from starting every time you boot linux disable it in /etc/inittab
x:3:once:/opt/kde/bin/kdm -nodaemon
#x:3:once:/opt/kde/bin/kdm -nodaemon

-Shadowed Passwords:
LinuxPPC-Lite does not enable shadowed passwords upon initial installation. To enable shadowing you should be familiar with /etc/passwd and how it works.

And you should probably only do this if you have created a regular user account for yourself.

(assuming root is the first user in /etc/passwd)
cd /etc
head -n 1 passwd > shadow
change the encrypted password in /etc/passwd to x
change the format of /etc/shadow from

If you still feel weary about doing this just create /etc/shadow and then create a new user, then you should be able to figure it out.

-Using crypt();
If you're having problems using the crypt(); function (password crackers use it) you need to add -lcrypt to the g++ command line. For instance: g++ -lcrypt file.cpp

If you're getting a blank screen/crash when you try to go into linux it's probably because you're using a kernel that your machine does not support (2.1.130 should work on PowerBook G3's though.) Also you SHOULD CHECK the no video driver option in BootX.

If your machine is taking a strange amount of time to show the mac computer icon everytime it starts up then you probably crashed while in Linux, to fix this reset the pram. Command-option-P-R

If you're having a problem it is very likely that someone else has had the same problem. has a large list of people's problems and how they solved them.

Some people are helpful on irc (#linux, #linuxhelp, #C).

If you really can't figure it out email someone who knows a lot about linux. I will not list any emails, because I email them all the time and I know they must hate me. :)