10.2. Patching the Debian Kernel for MPPE Support

Oops, you have an older (pre-2.6.15-rc1) kernel on your Debian system, so you need to build the MPPE kernel module. How do you do this?

Follow these steps. First, download the necessary tools, kernel sources, and MPPE patch:

	# apt-get install gcc bin86 libc6-dev bzip2 kernel-package kernel-patch-mppe

Find your kernel version:

	# uname -r
	2.6.8

Then, download, unpack, and prepare the kernel source package:

	# apt-get install kernel-source-2.6.8
	# cd /usr/src
	# tar xfj kernel-source-2.6.8.tar.bz2
	# cd kernel-source-2.6.8
	# make-kpkg clean

Copy over your existing kernel configuration file to use for building your new kernel:

	# cp /boot/config-2.6.8 ./.config-2.6.8

Finally, build your new kernel package:

	# cd /usr/src/kernel-source-2.6.8
	# make-kpkg  \
	  --added-patches mppe \
	  --append-to-version -mppe \
	  --config oldconfig \
	  --initrd \
	  kernel_image

When you're configuring the new kernel, be sure to enable CONFIG_PPP_MPPE as a module:

	PPP MPPE compression (encryption) (PPP_MPPE) [N/m/?] (NEW) m

When that's all finished, and the kernel is compiling, you might as well go take a walk because it will take a few minutes. Maybe a lot of minutes, depending on what type of machine it's compiling on. When it's all finished, install the new kernel:

	# dpkg --install /usr/src/kernel-image-2.6.8-mppe_10.00.Custom_all.deb

Reboot to load the new kernel, then test for MPPE support:

	# modprobe ppp-compress-18 && echo success
	success

Hurrah! All finished, and now you can configure your Poptop server.

A build environment needs a bit of elbow room; give yourself a couple of gigabytes. You can set up a PC as a build machine, then copy your new kernel image to its final destination. You'll want to be careful to tailor it for the hardware it's going to run on.

Debian offers up a limited number of official kernel versions:

You can find more kernel versions at the Debian snapshot site (http://snapshot.debian.net/), but as the site warns you, there could be problems with the packages archived here.

When Debian Etch was released, Debian moved to a new kernel-package naming convention. The old convention for source packages was kernel-source-[version], and binary packages were named kernel-image-[version]. In anticipation of someday supporting other kernels, such as the Hurd, the new naming conventions are linux-source-[version] and linux-image-[version].