pptp client
 getting started
 try it
 fedora core 1
 fedora core 2
 fedora core 3
 fedora core 4
 fedora core 5
 fedora core 6
 mandrake 9.0
 mandrake 10.0
 mandrake 10.1
 red hat 9
 red hat 8.0
 red hat 7.3
 suse 10.0
 suse 9.2
 suse 9.1
 suse 8.2
 support faq
 contact us

PPTP Client

Debian MPPE HOWTO, patch your own kernel

by James Cameron
6th December 2005

News: MPPE in Linux 2.6.12-rc4-mm2
Thanks to Matt Domsch, Frank Cusack, and Brice Goglin, an MPPE patch using in-kernel crypto functions has been accepted into the Linux kernel 2.6.12-rc4-mm2 by Andrew Morton, for review and testing.

The development team welcomes test reports. If you'd like to test this kernel on a system that you can afford to lose data from, grab the 2.6.11 source tar.bz2, apply the 2.6.12-rc4 patch, then the 2.6.12-rc4-mm2 patch. You can find each of these on kernel.org.

If you'd like to test just the patch, then Matt's version of it (less the Kconfig changed by Brice) is available here on our project site; linux-2.6.10-rc1-ppp_mppe.patch with signature.


These are instructions for installing MPPE support on Debian GNU/Linux, with a kernel patched and built from sources.

You do not need to do this for kernel 2.6.15 and later, since MPPE support is already present.


  1. prepare the system for kernel package building:

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

  2. install, unpack and clean a kernel source package:

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

    Note: for these instructions we used a kernel-source package built from kernel sources from kernel.org, even though the latest kernel-source package from Debian Sarge is 2.6.8, and on Debian Sid is 2.6.11. It is up to you to choose an appropriate kernel version, and so far in the 2.6 series we've found every version worked.


  3. adopt the currently installed .config file:

    # cp /boot/config-`uname --kernel-release` ./.config

    Note: you may want to substitute a configuration file from a previous version, or obtain the Debian configuration file by either installing or unpacking the source of the kernel-image- package.

    Note: if you are using an already customised configuration file, ensure that the configuration builds PPP support as modules. That means CONFIG_PPP=m in .config. The default Debian configuration file already does this. We've found that static compilation results in pppd being unable to load MPPE.

  4. build the kernel package:

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

    Note: if the kernel version you are building for is 2.6.11.x and the kernel-patch-mppe package has not yet been fixed, you will need to edit the file /usr/src/kernel-patches/all/apply/mppe to include the kernel version number. kernel-patch-mppe 2.4.2+20040216-4 or earlier is affected, see Debian Bug report #301918.


    Note: if you are tracking Debian woody, you may wish to remove --initrd.

    When you are prompted for the CONFIG_PPP_MPPE option, type m and press Enter:

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

    Note: you may be prompted for other options if you chose a .config file that is older than the kernel you are building. Popular belief says you hit Enter on them.

    Note: two people found that they needed to export PATCH_THE_KERNEL=AUTO before they ran make-kpkg, otherwise the kernel-patch-mppe was not applied ... but we've not figured out why. We've tested it many times without it. Perhaps they had package lag. If you know why this happens, please let us know.


    Note: the make-kpkg can take a long time, it took 49 minutes on a 750MHz Pentium III processor with 196Mb. If you have other computers available, you can reduce this time.

  5. install the kernel package:

    # dpkg --install /usr/src/kernel-image-

  6. reboot, then test:

    # modprobe ppp-compress-18 && echo success

    If this works, "success" will be displayed. If you are on a console or watching syslog, you may see:

    ppp_mppe: module license 'BSD without advertisement clause' taints kernel.
    PPP MPPE Compression module registered

    These messages do not stop it from working.

The procedure for other kernel versions is identical, thanks to Debian's kernel packaging package. Adjust the commands above for the version you are choosing to use.


You have now installed MPPE support. Return to the Installation step in the main HOWTO.


If you have comments on this document, please send them to the author at quozl at laptop.org. But if you need help, use the mailing list so that we can share the load.


2006-01-04 Linux 2.6.15 release includes MPPE.
2005-12-06 Reverified with Debian Sarge using kernel 2.6.8. No effective changes.
2005-04-11 Rework for kernel, and add note that we know Debian hasn't got that version yet.
2005-03-29 Rework for kernel, and add warning about apply script failure. Lay out make-kpkg command more clearly, thanks to David de Hoog.
2004-10-28 Rework for kernel 2.6.8.
2004-07-02 Eliminate the need to edit the .config file, by use of --config flag to make-kpkg, reported by John Pearson. Revise for kernel 2.6.6.
2004-04-24 Revise for new Debian kernel-patch-mppe package and kernel 2.6.5, though the instructions are still valid for kernel 2.4.x. We now give our blessing to kernel-patch-mppe. Thanks Debian!
2004-02-16 Revise for new source package and kernel 2.6.2.
2003-12-31 Add `uname -r` to copy of config file, add missing kernel_image target, reported by David Powell.
2003-12-30 Major rewrite.