Code Maturity Level

The masquerading code is still labeled as experimental in the Linux 2.0.x kernels (where x <= 29), so it is important to select the configuration option of Code Maturity Level when compiling a new kernel.

* Code maturity level options
Prompt for development and/or incomplete
   code/drivers (CONFIG_EXPERIMENTAL) [N/y]? y

After that point you can choose the options as shown in the article.

The options for ICMP, ipautofw support and the modules for VDOLive, CUSeeMe and Quake are only available in the pre-2.0.30-2 “Bumper” patch. The patch can be obtained from

You can apply the patch file by saving it in the /usr/src/linux directory and then using the following commands (or your own favorite set):

gunzip pre-patch-2.0.30-2.gz
patch -p1 < pre-patch-2.0.30-2
make config
make dep
make clean
make zImage
make modules
make modules_install

After that just install your new kernel and reboot.

Note that I ran into a small problem when compiling ipfwadm (version 2.3.0) after I installed the patch file. It seems the /usr/include/linux/ip_fw.h changed enough to cause a compile error. You can either restore the original ip_fw.h file (ip_fw.h.orig) and remake ipfwadm, or add the line

#include <linux/timer.h>

to the ipfwadm.c file before the inclusion of ip_fw.h.