FS#8498 - Enable kernel-mode for rp-pppoe
Attached to Project:
Arch Linux
Opened by Damjan Georgievski (damjan) - Saturday, 03 November 2007, 20:13 GMT
Last edited by Isenmann Daniel (ise) - Tuesday, 12 February 2008, 21:14 GMT
Opened by Damjan Georgievski (damjan) - Saturday, 03 November 2007, 20:13 GMT
Last edited by Isenmann Daniel (ise) - Tuesday, 12 February 2008, 21:14 GMT
|
Details
To enable kernel mode in the rp-pppoe pppoe-server you need
to compile it with the --enable-plugin=/ppp-2.4.4 option.
but that option needs a small patch (stolen from the
Slackware build).
Attached are a patch to the PKGBUILD and the patch for rp-pppoe's ./configure. |
This task depends upon
Closed by Isenmann Daniel (ise)
Tuesday, 12 February 2008, 21:14 GMT
Reason for closing: Fixed
Additional comments about closing: Fixed in package 3.8-3 in testing, please test it.
Tuesday, 12 February 2008, 21:14 GMT
Reason for closing: Fixed
Additional comments about closing: Fixed in package 3.8-3 in testing, please test it.
Can you provide more information for your references?
Actually it's not dependent on the kernel version.
@tpowa, why it didn't build it for you??
I've tested the PKGBUILD as it is, on my Arch and it builds ok, and I also tested the resulting binary which worked ok.
You can see the patch and the Slackbuild as it's used in Slackware here: ftp://ftp.slackware.com/pub/slackware/slackware-12.0/source/n/rp-pppoe/
there is no mention of it and also the configure doesn't contain any info on it.
There are no extra files added to the package etc.
so how should we see that it has an effect.
gentoo ebuild does also download ppp source to ensure the compilation, you tell the configure to use a directory that does not exist.
that is just my observation.
In the documentation (rp-pppoe-3.8/doc/KERNEL-MODE-PPPOE) of the package it says: "RP-PPPoE now supports kernel-mode PPPoE on Linux kernels 2.4.x." and "Make sure you are running kernel 2.4.x on the machine you will build rp-pppoe on." And that's all. No kernel 2.6.x is mentioned.
The thing that the option does is to enable "pppoe-server -k" option. BTW pppoe-server without -k does not even work.
that comment is obviosly added in the kernel 2.4 time and has not been updated to reflect the existence of 2.6.
The directory in --enable-plugin= is not important since we have the header files of ppp in /usr/include/pppd/ by the pppd package.
The other things it adds is "#define HAVE_LINUX_KERNEL_PPPOE 1" in config.h which is then checked in pppoe-server.c
@Damjan: Have you compiled it successfully and it works with the -k option? If yes, please send me the compiled package.
I see that the test in ./configure now fails with:
configure:5622: checking for Linux 2.4.X kernel-mode PPPoE support
configure:5657: gcc -o conftest -g -O2 conftest.c >&5
In file included from /usr/include/linux/if_pppox.h:23,
from conftest.c:58:
/usr/include/linux/if_pppol2tp.h:30: error: field 'addr' has incomplete type
This is either a gcc or a kernel-headers (I have 2.6.23.1-2) problem. I'll investigate further how to overcome this.
configure | 4 +++-
plugin.c | 1 -
2 files changed, 3 insertions(+), 2 deletions(-)
The patch is simple, adds #include <linux/in.h> in 2 tests in ./configure, removes -ansi from the CFLAGS and removes #include <linux/if_ppp.h> from plugin.c, obviously not needed :).
The built package is locate here, for reference:
http://damjan.softver.org.mk/rp-pppoe-3.8-3-i686.pkg.tar.gz (this will be removed in future).