parent
a33ddbdadc
commit
beac990354
@ -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. |
||||
|
||||
|
@ -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)
|
@ -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__ */
|
||||
|
@ -0,0 +1 @@ |
||||
/etc/ppp/ip-up |
@ -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 |
||||
|
||||
|
@ -0,0 +1,5 @@ |
||||
#!/bin/sh |
||||
|
||||
# set default route |
||||
/sbin/route add default gw $IPREMOTE |
||||
|
@ -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)
|
@ -0,0 +1,4 @@ |
||||
#!/bin/sh |
||||
|
||||
rm -rf /etc/ppp |
||||
|
@ -0,0 +1,5 @@ |
||||
#!/bin/sh |
||||
|
||||
killall pppoecd |
||||
sleep 3 |
||||
killall -9 pppoecd |
Loading…
Reference in new issue