pppoe support c/o below0
SVN-Revision: 88
This commit is contained in:
parent
a33ddbdadc
commit
beac990354
9 changed files with 294 additions and 0 deletions
103
obsolete-buildroot/README.pppoe
Normal file
103
obsolete-buildroot/README.pppoe
Normal file
|
@ -0,0 +1,103 @@
|
|||
OPENWRT PPPOECD NOTES
|
||||
=====================
|
||||
|
||||
1. GENERAL
|
||||
----------
|
||||
|
||||
This package is used to estabilish basic connection to the
|
||||
Internet via DSL/ADSL modems. This is also known as the
|
||||
PPPoE or PPP-over-Ethernet connection.
|
||||
|
||||
The PPPOECD program included in the OpenWrt distribution is a
|
||||
modified version of the PPPOECD that is present in the original
|
||||
Linksys firmware.
|
||||
|
||||
This modified version is directly supported by the OpenWrt
|
||||
startup scripts.
|
||||
|
||||
2. BUILDING
|
||||
-----------
|
||||
|
||||
If you have a pre-compiled PPPOECD package, skip this section.
|
||||
|
||||
PPPOECD can be built in two ways. As an integrated part
|
||||
of the OpenWrt FLASH image or as an .ipk package that can
|
||||
be installed separately.
|
||||
|
||||
To build PPPOECD as an embedded component, add "pppoecd" to the
|
||||
TARGETS variable in the main OpenWrt Makefile before the
|
||||
"openwrt-bin" value.
|
||||
|
||||
To build as a standalone package, add "pppoecd" to the
|
||||
PACKAGES variable in the main OpenWrt Makefile.
|
||||
|
||||
3. NVRAM variables
|
||||
------------------
|
||||
|
||||
In order for the PPPoE link to be established by the networking
|
||||
scripts the following NVRAM variables must be present:
|
||||
|
||||
wan_ifname Should be set to: ppp0
|
||||
|
||||
wan_proto Should be set to: pppoe
|
||||
|
||||
pppoe_ifname Set it to the WAN interface on which the PPPoE
|
||||
is to function. On a 2.0 or a GS model it is
|
||||
usually vlan1. The 1.0 and 1.1 models used vlan2.
|
||||
|
||||
ppp_username User name for your PPPoE connection.
|
||||
|
||||
ppp_passwd Password for the connection.
|
||||
|
||||
ppp_redialperiod Time between reconnect attempts.
|
||||
Usualy set to 30.
|
||||
|
||||
ppp_idletime Time the link has to stay dead before reconnecting.
|
||||
Usually set to 5.
|
||||
|
||||
wan_mtu The Maxumum Transfer Unit for the PPPoE connection.
|
||||
Typically 1492.
|
||||
|
||||
Please consult the OpenWrt WIKI or the forum for more
|
||||
information on NVRAM variables.
|
||||
|
||||
|
||||
4. STARTUP / SHUTDOWN
|
||||
---------------------
|
||||
|
||||
OpenWrt will attempt to connect using PPPOECD when starting up.
|
||||
The script responsible for that is /etc/init.d/S40network.
|
||||
|
||||
You can also manually start the PPPOECD by doing:
|
||||
|
||||
. /etc/functions.sh; ifup wan
|
||||
|
||||
Similarly you can shutdown the PPPOECD by doing:
|
||||
|
||||
. /etc/functions.sh; ifdown wan
|
||||
|
||||
|
||||
5. CONFIGURATION
|
||||
----------------
|
||||
|
||||
PPPoE firewall configuration is the standard OpenWrt configuration
|
||||
in /etc/init.d/S45firewall that applies to all the other types
|
||||
of connections to the Internet.
|
||||
|
||||
Additional actions can be performed when connecting or disconnecting
|
||||
by modifying "ip-up" and "ip-down" scripts in the /etc/ppp directory.
|
||||
|
||||
When connecting, PPPOECD creates /tmp/resolv.conf file that contains
|
||||
DNS server entries as supplied by the ISP. The standard ip-up
|
||||
script will also add a default route leading via the PPPoE link.
|
||||
|
||||
6. DIFFERENCES FROM THE ORIGINAL PPPOECD
|
||||
----------------------------------------
|
||||
|
||||
The main difference is the location of files. Original Linksys
|
||||
PPPOECD operated almost exclusively in the /tmp/ppp directory. This
|
||||
however prevents any persistent configuration of the program via
|
||||
ip-up or ip-down scripts. Also the program itself was located in
|
||||
/usr/sbin whereas OpenWrt scripts expect it to be in /sbin directory.
|
||||
|
||||
|
73
obsolete-buildroot/make/pppoecd.mk
Normal file
73
obsolete-buildroot/make/pppoecd.mk
Normal file
|
@ -0,0 +1,73 @@
|
|||
# build the Linksys pppoecd
|
||||
|
||||
# Note that this patches the linksys pppd before patching pppoecd.
|
||||
# The pppd patch changes the pathnames that pppoecd will use.
|
||||
# In an attempt to avoid conflicts the marker file is called
|
||||
# .patched-pppoecd in the pppd directory.
|
||||
|
||||
PPPD_DIR=$(BUILD_DIR)/WRT54GS/release/src/router/ppp/pppd
|
||||
PPPD_PATCH=$(SOURCE_DIR)/pppoecd-pathnames.patch
|
||||
|
||||
PPPOECD_DIR=$(BUILD_DIR)/WRT54GS/release/src/router/ppp/pppoecd
|
||||
PPPOECD_PATCH=$(SOURCE_DIR)/pppoecd.patch
|
||||
PPPOECD_BIN=$(TARGET_DIR)/sbin/pppoecd
|
||||
|
||||
PPPOECD_IPK_DIR=$(BUILD_DIR)/pppoecd-1.0
|
||||
PPPOECD_PACKAGE=$(BUILD_DIR)/pppoecd_1.0_mipsel.ipk
|
||||
PPPOECD_IPK_BIN=$(PPPOECD_IPK_DIR)/sbin/pppoecd
|
||||
|
||||
# patch pppd for the openwrt compatible path names
|
||||
$(PPPD_DIR)/.patched-pppoecd: $(BUILD_DIR)/WRT54GS/.source
|
||||
cat $(PPPD_PATCH) | patch -d $(PPPD_DIR)
|
||||
touch $(PPPD_DIR)/.patched-pppoecd
|
||||
|
||||
# patch the pppoecd itself for GCC3.x compatibility and to move pppoecd to /sbin
|
||||
$(PPPOECD_DIR)/.patched: $(PPPD_DIR)/.patched-pppoecd
|
||||
cat $(PPPOECD_PATCH) | patch -d $(PPPOECD_DIR)
|
||||
touch $(PPPOECD_DIR)/.patched
|
||||
|
||||
# build the pppoecd binary for the ipk version
|
||||
$(PPPOECD_IPK_BIN): $(PPPOECD_DIR)/.patched
|
||||
mkdir -p $(PPPOECD_IPK_DIR)/etc/ppp
|
||||
cp $(SOURCE_DIR)/pppoecd.ip-up $(PPPOECD_IPK_DIR)/etc/ppp/ip-up
|
||||
chmod a+x $(PPPOECD_IPK_DIR)/etc/ppp/ip-up
|
||||
$(MAKE) -C $(PPPOECD_DIR) CC=$(TARGET_CC) LD=$(TARGET_CROSS)ld \
|
||||
SRCBASE=$(OPENWRT_SRCBASE) INSTALLDIR=$(PPPOECD_IPK_DIR) LIBDIR=$(UCLIBC_DIR)/lib \
|
||||
STRIP="$(STRIP)" \
|
||||
install
|
||||
|
||||
# setup ipkg control files
|
||||
$(PPPOECD_IPK_DIR)/CONTROL/control:
|
||||
mkdir -p $(PPPOECD_IPK_DIR)/CONTROL
|
||||
cp $(SOURCE_DIR)/pppoecd.prerm $(PPPOECD_IPK_DIR)/CONTROL/prerm
|
||||
chmod a+x $(PPPOECD_IPK_DIR)/CONTROL/prerm
|
||||
cp $(SOURCE_DIR)/pppoecd.postrm $(PPPOECD_IPK_DIR)/CONTROL/postrm
|
||||
chmod a+x $(PPPOECD_IPK_DIR)/CONTROL/postrm
|
||||
cp $(SOURCE_DIR)/pppoecd.conffiles $(PPPOECD_IPK_DIR)/CONTROL/conffiles
|
||||
cp $(SOURCE_DIR)/pppoecd.control $(PPPOECD_IPK_DIR)/CONTROL/control
|
||||
|
||||
# build the ipk package
|
||||
$(PPPOECD_PACKAGE): $(PPPOECD_IPK_BIN) $(PPPOECD_IPK_DIR)/CONTROL/control
|
||||
cd $(BUILD_DIR); $(STAGING_DIR)/bin/ipkg-build -c -o root -g root pppoecd-1.0
|
||||
|
||||
# main target for building the ipk version
|
||||
pppoecd-ipk: $(PPPOECD_PACKAGE)
|
||||
|
||||
# the embedded binary
|
||||
$(PPPOECD_BIN): $(PPPOECD_DIR)/.patched
|
||||
mkdir $(TARGET_DIR)/etc/ppp
|
||||
cp $(SOURCE_DIR)/pppoecd.ip-up $(TARGET_DIR)/etc/ppp/ip-up
|
||||
chmod a+x $(TARGET_DIR)/etc/ppp/ip-up
|
||||
$(MAKE) -C $(PPPOECD_DIR) CC=$(TARGET_CC) LD=$(TARGET_CROSS)ld \
|
||||
SRCBASE=$(OPENWRT_SRCBASE) INSTALLDIR=$(TARGET_DIR) LIBDIR=$(UCLIBC_DIR)/lib \
|
||||
STRIP="$(STRIP)" \
|
||||
install
|
||||
|
||||
# main target for building the embedded version
|
||||
pppoecd: $(PPPOECD_BIN)
|
||||
|
||||
pppoecd-clean:
|
||||
-$(MAKE) -C $(PPPOECD_DIR) clean
|
||||
rm -f $(TARGET_DIR)/usr/sbin/pppoecd
|
||||
rm -rf $(PPPOECD_IPK_DIR)
|
||||
rm -f $(PPPOECD_PACKAGE)
|
66
obsolete-buildroot/sources/pppoecd-pathnames.patch
Normal file
66
obsolete-buildroot/sources/pppoecd-pathnames.patch
Normal file
|
@ -0,0 +1,66 @@
|
|||
--- pathnames.h.orig Tue Oct 14 03:09:53 2003
|
||||
+++ pathnames.h Sat Jul 10 21:04:34 2004
|
||||
@@ -9,37 +9,37 @@
|
||||
|
||||
#else /* HAVE_PATHS_H */
|
||||
#ifndef _PATH_VARRUN
|
||||
-#define _PATH_VARRUN "/tmp/ppp/"
|
||||
+#define _PATH_VARRUN "/var/run"
|
||||
#endif
|
||||
#define _PATH_DEVNULL "/dev/null"
|
||||
#endif /* HAVE_PATHS_H */
|
||||
|
||||
#ifndef _ROOT_PATH
|
||||
-#define _ROOT_PATH
|
||||
+#define _ROOT_PATH "/etc"
|
||||
#endif
|
||||
|
||||
-#define _PATH_UPAPFILE _ROOT_PATH "/tmp/ppp/pap-secrets"
|
||||
-#define _PATH_CHAPFILE _ROOT_PATH "/tmp/ppp/chap-secrets"
|
||||
-#define _PATH_SYSOPTIONS _ROOT_PATH "/tmp/ppp/options"
|
||||
-#define _PATH_IPUP _ROOT_PATH "/tmp/ppp/ip-up"
|
||||
-#define _PATH_IPDOWN _ROOT_PATH "/tmp/ppp/ip-down"
|
||||
-#define _PATH_AUTHUP _ROOT_PATH "/tmp/ppp/auth-up"
|
||||
-#define _PATH_AUTHDOWN _ROOT_PATH "/tmp/ppp/auth-down"
|
||||
-#define _PATH_TTYOPT _ROOT_PATH "/tmp/ppp/options."
|
||||
-#define _PATH_CONNERRS _ROOT_PATH "/tmp/ppp/connect-errors"
|
||||
-#define _PATH_PEERFILES _ROOT_PATH "/tmp/ppp/peers/"
|
||||
-#define _PATH_RESOLV _ROOT_PATH "/tmp/ppp/resolv.conf"
|
||||
+#define _PATH_UPAPFILE _ROOT_PATH "/ppp/pap-secrets"
|
||||
+#define _PATH_CHAPFILE _ROOT_PATH "/ppp/chap-secrets"
|
||||
+#define _PATH_SYSOPTIONS _ROOT_PATH "/ppp/options"
|
||||
+#define _PATH_IPUP _ROOT_PATH "/ppp/ip-up"
|
||||
+#define _PATH_IPDOWN _ROOT_PATH "/ppp/ip-down"
|
||||
+#define _PATH_AUTHUP _ROOT_PATH "/ppp/auth-up"
|
||||
+#define _PATH_AUTHDOWN _ROOT_PATH "/ppp/auth-down"
|
||||
+#define _PATH_TTYOPT _ROOT_PATH "/ppp/options."
|
||||
+#define _PATH_CONNERRS "/tmp/connect-errors"
|
||||
+#define _PATH_PEERFILES _ROOT_PATH "/ppp/peers/"
|
||||
+#define _PATH_RESOLV "/tmp/resolv.conf"
|
||||
|
||||
#define _PATH_USEROPT ".ppprc"
|
||||
|
||||
#ifdef INET6
|
||||
-#define _PATH_IPV6UP _ROOT_PATH "/tmp/ppp/ipv6-up"
|
||||
-#define _PATH_IPV6DOWN _ROOT_PATH "/tmp/ppp/ipv6-down"
|
||||
+#define _PATH_IPV6UP _ROOT_PATH "/ppp/ipv6-up"
|
||||
+#define _PATH_IPV6DOWN _ROOT_PATH "/ppp/ipv6-down"
|
||||
#endif
|
||||
|
||||
#ifdef IPX_CHANGE
|
||||
-#define _PATH_IPXUP _ROOT_PATH "/tmp/ppp/ipx-up"
|
||||
-#define _PATH_IPXDOWN _ROOT_PATH "/tmp/ppp/ipx-down"
|
||||
+#define _PATH_IPXUP _ROOT_PATH "/ppp/ipx-up"
|
||||
+#define _PATH_IPXDOWN _ROOT_PATH "/ppp/ipx-down"
|
||||
#endif /* IPX_CHANGE */
|
||||
|
||||
#ifdef __STDC__
|
||||
@@ -48,7 +48,7 @@
|
||||
#ifdef HAVE_PATHS_H
|
||||
#define _PATH_PPPDB "/var/run/pppd.tdb"
|
||||
#else
|
||||
-#define _PATH_PPPDB "/tmp/ppp/pppd.tdb"
|
||||
+#define _PATH_PPPDB "/tmp/pppd.tdb"
|
||||
#endif
|
||||
#endif /* __STDC__ */
|
||||
|
1
obsolete-buildroot/sources/pppoecd.conffiles
Normal file
1
obsolete-buildroot/sources/pppoecd.conffiles
Normal file
|
@ -0,0 +1 @@
|
|||
/etc/ppp/ip-up
|
10
obsolete-buildroot/sources/pppoecd.control
Normal file
10
obsolete-buildroot/sources/pppoecd.control
Normal file
|
@ -0,0 +1,10 @@
|
|||
Package: pppoecd
|
||||
Priority: optional
|
||||
Version: 1.0
|
||||
Architecture: mipsel
|
||||
Maintainer: below0
|
||||
Section: net
|
||||
Source: Embedded in the main openwrt tarball
|
||||
Description: Linksys PPPoE daemon for access to internet using DSL modems
|
||||
|
||||
|
5
obsolete-buildroot/sources/pppoecd.ip-up
Normal file
5
obsolete-buildroot/sources/pppoecd.ip-up
Normal file
|
@ -0,0 +1,5 @@
|
|||
#!/bin/sh
|
||||
|
||||
# set default route
|
||||
/sbin/route add default gw $IPREMOTE
|
||||
|
27
obsolete-buildroot/sources/pppoecd.patch
Normal file
27
obsolete-buildroot/sources/pppoecd.patch
Normal file
|
@ -0,0 +1,27 @@
|
|||
--- pppoe.c.orig Sat Jul 10 20:55:38 2004
|
||||
+++ pppoe.c Sat Jul 10 20:55:55 2004
|
||||
@@ -131,8 +131,7 @@
|
||||
|
||||
if (pppoe_srv_name !=NULL) {
|
||||
if (strlen (pppoe_srv_name) > 255) {
|
||||
- poe_error (ses," Service name too long
|
||||
- (maximum allowed 256 chars)");
|
||||
+ poe_error (ses," Service name too long (maximum allowed 256 chars)");
|
||||
poe_die(-1);
|
||||
}
|
||||
ses->filt->stag = make_filter_tag(PTT_SRV_NAME,
|
||||
--- Makefile.orig Sun Jul 11 03:26:49 2004
|
||||
+++ Makefile Sun Jul 11 03:27:18 2004
|
||||
@@ -68,9 +68,9 @@
|
||||
all: pppoecd
|
||||
|
||||
install: all
|
||||
- install -d $(INSTALLDIR)/usr/sbin
|
||||
- install -m 755 pppoecd $(INSTALLDIR)/usr/sbin
|
||||
- $(STRIP) $(INSTALLDIR)/usr/sbin/pppoecd
|
||||
+ install -d $(INSTALLDIR)/sbin
|
||||
+ install -m 755 pppoecd $(INSTALLDIR)/sbin
|
||||
+ $(STRIP) $(INSTALLDIR)/sbin/pppoecd
|
||||
|
||||
pppoecd: $(OBJS)
|
||||
$(LD) -r -o .$@ $^ $(LIBCRYPT)
|
4
obsolete-buildroot/sources/pppoecd.postrm
Normal file
4
obsolete-buildroot/sources/pppoecd.postrm
Normal file
|
@ -0,0 +1,4 @@
|
|||
#!/bin/sh
|
||||
|
||||
rm -rf /etc/ppp
|
||||
|
5
obsolete-buildroot/sources/pppoecd.prerm
Normal file
5
obsolete-buildroot/sources/pppoecd.prerm
Normal file
|
@ -0,0 +1,5 @@
|
|||
#!/bin/sh
|
||||
|
||||
killall pppoecd
|
||||
sleep 3
|
||||
killall -9 pppoecd
|
Loading…
Reference in a new issue