Skip to main content

AccelPPTP On OpenWRT

Please note that this article was written in 2009. It is likely to be completely useless now. I no longer have the hardware and ISP described here so will not be able to provide any assistance should you want to use this guide.

SF project site – Accel-PPTP

Please note that version 0.8.2 does not contain support for persist option of pppd, I’ve seen some info about custom patches made by other firmware projects though.

Checkout OpenWRT trunk and build the toolchain

svn co svn://svn.openwrt.org/openwrt/trunk/

Configure OpenWRT to include pppoe or pppoa

CONFIG_DEFAULT_ppp=y
CONFIG_DEFAULT_ppp-mod-pppoe=y

This will give the required pppox.ko module.

Set paths for crosscompiling:

$ export PATH=$PWD/staging_dir/toolchain-mipsel_gcc-4.1.2_uClibc-0.9.29/usr/bin:$PATH

Build accel-pptp:

Untar accel-pptp 0.8.2 Go to accel-pptp-0.8.2/pppd_plugin

pppd module

$ export KDIR=/home/rtg/Projects/openwrt/trunk/build_dir/linux-brcm47xx/linux-2.6.28.9
$ ./configure –enable-static=no –enable-shared=yes –host=mipsel-openwrt-linux
$ make all install DESTDIR=/tmp/openwrt

Get the resulting pptp.so.0.0.0 from /tmp/openwrt/usr/local/lib/pptp.so.0.0.0 and upload pptp.so.0.0.0 to OpenWRT box as /usr/lib/pppd/2.4.3/pptp.so

kernel module

Go to kernel/driver directory

$ make KDIR=/home/rtg/Projects/openwrt/trunk/build_dir/linux-brcm47xx/linux-2.6.28.9\
CROSS_COMPILE=mipsel-openwrt-linux- ARCH=mips

file pptp.ko will say:

pptp.ko: ELF 32-bit LSB relocatable, MIPS, MIPS32 version 1 (SYSV), not stripped

Upload resulting pptp.ko to /lib/modules/`uname -r`

insmod pppox and pptp, observe the loading line in dmesg with driver version 0.8.2

Update startup scripts:

Replace the lines for start_pppd in /lib/network/pptp.sh with the following:

start_pppd "$config" \
plugin pptp.so \
pptp_server $server \
file /etc/ppp/options.pptp \
mtu $mtu mru $mtu

Remove ‘lock’ directive from /etc/pppd/options.pptp since we have nothing to lock and it is an unrecognized option.

Live example: OpenWRT PPTP Client – Part 2