This article based on work done by Frontalot at Linkstationwiki.org
This article assumes you already have installed the necessary cross-toolchain(s). Please see Articles/GeneralCrossToolchain for instructions on how to install and use a cross-toolchain.

Don't Forget

You must use the same version of GCC as the kernel was originally built with, aka the "stock" cross-toolchain

Download and unpack the appropriate GPL source code. It may be obtained from the downloads area. Find out which box you have and go into the box`s folder. There you find it in the GPL folder. In our example, we will be building kernel modules for the powerpc-hdhlan LinkStation:

unzip gpl_powerpc-hdhlan.zip

Unpack the kernel source code:

tar -pzxvf linux-2.4.17_mvl21-sandpoint.tar.gz

Download and apply any available patches. The 2.4.17_mvl21-sandpoint kernel needs 2 patches:

patch -p1 < netfilter.patch

patch -p1 < usbvideo.patch

Download a working kernel .config from here and place it in the kernel source directory. Make sure to rename the kernel .config file to .config:

mv powerpc-hdhlan.config .config

Open up .hhl_cross_compile in a text editor. Replace the existing text with the name of the cross-toolchain - powerpc-hdhlan-linux- in our example. The trailing dash is required.

Then start the configuration menu:

make menuconfig

Double-check the kernel settings then save and exit. Now you can build the kernel modules: