This howto deals with building the standard PowerPC Linux Kernel with Nubus PowerMacs. It is very similar to compiling the kernel with PCI/OpenFirmware PowerMacs, with a few slight differences.


Download Kernel Source

First off you need to get the standard Linux 2.4 kernel source. The best place to get it from is Paulus' rsync archive, by using this rsync command:

rsync -avz penguinppc.org::linux-pmac-stable /usr/src/linux

This will download about 20 MB of Linux 2.4 source code to /usr/src/linux.

Download Nubus Patch

While Paulus' Linux 2.4 contains some Nubus PowerMac patches, it likely does not have the most up to date patches. Therefore, you should get the newest patch avalible at ftp://nubus-pmac.sourceforge.net/pub/nubus-pmac.

Once you get this patch, you can patch the kernel using this command:

gzip -cd /path/to/patch-2.4.0-xxx-xxxx.gz | patch -p1

MkLinux Booter or BootX Booter

At this point, you need choose which booter you want to use with your new kernel.

Most users will want to use BootX, as it is easiest to use and maintained.

If your monitor is hooked up to a HPV video card (such as the default with the PowerMac 7100 and the PowerComputing 120) you must use the MkLinux Booter.

PowerMac 7100 users, may alternatively use the HDI45 connectior that is on the motherboard of your machine.

Kernel Compile for the MkLinux Booter

Note: Due to the way the MkLinux Booter works, you must compile an PowerPC Linux ramdisk.image.gz (used to install most PowerPC Linux distros like LinuxPPC, Debian, etc.) inside of the Mach Kernel file. To do this, you must copy the gzip'd ramdisk.image.gz file to /usr/src/linux/arch/ppc/appleboot, before starting the compile.

Type in this commands, to clean the kernel, and create the nubus configuration.

make clean
make nubus_config

Next you need to run make menuconfig. Select any specfic drivers you need for your hardware.

Make any depends:

make dep

Make the fake Mach Kernel:

make zImage.initrd

/usr/src/linux/arch/ppc/appleboot will have your "fake" Mach Kernel file, named Mach Kernel.initrd

Copy this file into your Mac OS Extensions folder, and use MkLinux to boot with it.

If you compiled in a ramdisk, you should specify the ramdisk_size in lilo.conf, by modifing the mach_options line like this:

mach_options="ramdisk_size=8192"

Kernel Compile for the BootX Booter

Type in this commands, to clean the kernel, and create the nubus configuration.

make clean
make nubus_config

Next you need to run make menuconfig. Select any specfic drivers you need for your hardware.

Make any depends:

make dep

Make the Monolithic Linux Kernel:

make vmlinux

/usr/src/linux/ will find the kernel, named vmlinux.

Copy this file into your BootX-ludo folder, leave it named vmlinux.

Good Luck. Send comments, questions, etc. to Andrew Arthur, .