blob: 03e6d2a6eb5b864db830c4ef2e86190bcac4ec89
1 | # LIC: GPL |
2 | |
3 | RP-PPPoE now supports kernel-mode PPPoE on Linux kernels 2.4 or newer. |
4 | However, the default "./go" build procedure does not make kernel-mode |
5 | support. |
6 | |
7 | Here's what you need to do: |
8 | |
9 | 0) Make sure you are running kernel 2.4 or newer on the machine you |
10 | will build rp-pppoe on. You must have the following kernel |
11 | configuration settings: |
12 | |
13 | CONFIG_PPP=m or CONFIG_PPP=y |
14 | CONFIG_PPP_ASYNC=m or CONFIG_PPP_ASYNC=y |
15 | CONFIG_PPP_SYNC_TTY=m or CONFIG_PPP_SYNC_TTY=y |
16 | CONFIG_PPP_DEFLATE=m or CONFIG_PPP_DEFLATE=y |
17 | CONFIG_PPP_BSDCOMP=m or CONFIG_PPP_BSDCOMP=y |
18 | CONFIG_PPPOE=m or CONFIG_PPPOE=y |
19 | CONFIG_N_HDLC=m or CONFIG_N_HDLC=y |
20 | CONFIG_UNIX98_PTYS=y |
21 | |
22 | You also need a /dev/ppp file: |
23 | |
24 | mknod --mode=664 /dev/ppp c 108 0 |
25 | |
26 | You might want to add these lines to /etc/modules.conf: |
27 | |
28 | alias char-major-108 ppp_generic |
29 | alias tty-ldisc-3 ppp_async |
30 | alias tty-ldisc-13 n_hdlc |
31 | alias tty-ldisc-14 ppp_synctty |
32 | alias net-pf-24 pppoe |
33 | |
34 | 1) If you are running pppd older than 2.4.0, check out the latest |
35 | version of the PPP software from the CVS repository at cvs.samba.org. |
36 | Here's how to do this: |
37 | |
38 | cvs -d :pserver:cvs@pserver.samba.org:/cvsroot login |
39 | # When prompted for a password, type "cvs" |
40 | |
41 | # Change to the directory in which you want to store the PPP source |
42 | # code. |
43 | cd /path/to/checked/out/sources |
44 | |
45 | # Check out the source |
46 | cvs -z5 -d :pserver:cvs@pserver.samba.org:/cvsroot co ppp |
47 | |
48 | If you are running pppd 2.4.0 or newer, and have the pppd development |
49 | headers installed, you can skip steps 1 and 2. |
50 | |
51 | 2) The source gets checked out into a subdirectory called ppp. If |
52 | the source ends up in /path/to/checked/out/sources/ppp, then call |
53 | that path $PPPDIR. |
54 | |
55 | Build and install the checked-out ppp code according to its instructions. |
56 | |
57 | 3) Unpack rp-pppoe. |
58 | |
59 | 4) In the rp-pppoe directory, change to src/ and type: |
60 | |
61 | ./configure --enable-plugin=$PPPDIR |
62 | |
63 | where $PPPDIR, of course, refers to the checked-out "ppp" directory |
64 | from cvs.samba.org. |
65 | |
66 | If you didn't check out the PPP software from cvs.samba.org, use: |
67 | |
68 | ./configure --enable-plugin |
69 | |
70 | This will work if the header pppd/pppd.h is located in /usr/include |
71 | or /usr/local/include. |
72 | |
73 | 4) Type make; make install |
74 | |
75 | 5) Edit /etc/ppp/pppoe.conf to include this line: |
76 | |
77 | LINUX_PLUGIN=/etc/ppp/plugins/rp-pppoe.so |
78 | |
79 | After that, pppoe-start should use kernel-mode PPPoE. |
80 | |
81 | The rp-pppoe.so plugin adds the following command-line options to pppd: |
82 | |
83 | ethXXX -- Use interface ethXXX as Ethernet interface |
84 | brXXX -- Use interface brXXX as Ethernet interface |
85 | nic-XXXX -- Use interface XXXX as the Ethernet interface |
86 | |
87 | rp_pppoe_service SERVICE_NAME -- Specify desired service name |
88 | rp_pppoe_ac NAME -- Specify desired access concentrator name |
89 | rp_pppoe_verbose 0|1 -- Print names of access concentrators |
90 | |
91 | rp_pppoe_sess nnnn:aa:bb:cc:dd:ee:ff -- Attach to existing session 'nnnn' |
92 | on AC with Ethernet address aa:bb:cc:dd:ee:ff |
93 | This skips the discovery phase. |
94 | |
95 | |
96 | -- |
97 | David F. Skoll <dfs@roaringpenguin.com> |
98 | |
99 |