From f26476c862bc76370a3884555d8677c9886eb792 Mon Sep 17 00:00:00 2001 From: nbd Date: Sat, 26 Mar 2005 01:14:33 +0000 Subject: [PATCH] make pppoe work automatically git-svn-id: svn://svn.openwrt.org/openwrt/trunk@459 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- openwrt/package/ppp/Makefile | 3 +++ .../ppp/control/ppp-pppoe-plugin.control | 2 +- .../ipkg/ppp-pppoe-plugin/etc/init.d/S50pppoe | 23 +++++++++++++++++++ .../target/default/target_skeleton/sbin/ifup | 7 +++--- 4 files changed, 31 insertions(+), 4 deletions(-) create mode 100755 openwrt/package/ppp/ipkg/ppp-pppoe-plugin/etc/init.d/S50pppoe diff --git a/openwrt/package/ppp/Makefile b/openwrt/package/ppp/Makefile index f929f00f7..dd1dbd220 100644 --- a/openwrt/package/ppp/Makefile +++ b/openwrt/package/ppp/Makefile @@ -95,6 +95,8 @@ $(PKG_PPP): $(PKG_BUILD_DIR)/pppd/pppd mkdir -p $(I_PPP) cp -af ./ipkg/ppp/* $(I_PPP) $(SCRIPT_DIR)/make-ipkg-dir.sh $(I_PPP) control/ppp.control $(PKG_VERSION)-$(PKG_RELEASE) $(ARCH) + mkdir -p $(I_PPP)/etc/ppp + ln -s /tmp/resolv.conf $(I_PPP)/etc/ppp/resolv.conf mkdir -p $(I_PPP)/usr/sbin cp -af $(PKG_BUILD_DIR)/pppd/pppd $(I_PPP)/usr/sbin/ $(STRIP) $(I_PPP)/usr/sbin/* @@ -113,6 +115,7 @@ $(IPKG_STATE_DIR)/info/ppp.list: $(PKG_PPP) $(PKG_PPP_PPPOE_PLUGIN): $(PKG_PPP) $(SCRIPT_DIR)/make-ipkg-dir.sh $(I_PPP_PPPOE_PLUGIN) control/ppp-pppoe-plugin.control $(PKG_VERSION)-$(PKG_RELEASE) $(ARCH) + cp -af ./ipkg/ppp-pppoe-plugin/* $(I_PPP_PPPOE_PLUGIN) mkdir -p $(I_PPP_PPPOE_PLUGIN)/usr/lib/pppd/rp-pppoe cp -af $(PKG_BUILD_DIR)/pppd/plugins/rp-pppoe/rp-pppoe.so \ $(I_PPP_PPPOE_PLUGIN)/usr/lib/pppd/rp-pppoe diff --git a/openwrt/package/ppp/control/ppp-pppoe-plugin.control b/openwrt/package/ppp/control/ppp-pppoe-plugin.control index 33e6a3219..8bbd8610f 100644 --- a/openwrt/package/ppp/control/ppp-pppoe-plugin.control +++ b/openwrt/package/ppp/control/ppp-pppoe-plugin.control @@ -6,4 +6,4 @@ Architecture: mipsel Maintainer: Felix Fietkau Source: buildroot internal Description: a PPPoE (PPP over Ethernet) plugin for PPP -Depends: ppp +Depends: ppp, kmod-pppoe diff --git a/openwrt/package/ppp/ipkg/ppp-pppoe-plugin/etc/init.d/S50pppoe b/openwrt/package/ppp/ipkg/ppp-pppoe-plugin/etc/init.d/S50pppoe new file mode 100755 index 000000000..52e1d79c4 --- /dev/null +++ b/openwrt/package/ppp/ipkg/ppp-pppoe-plugin/etc/init.d/S50pppoe @@ -0,0 +1,23 @@ +#!/bin/sh + +. /etc/functions.sh + +WAN_PROTO=$(nvram get wan_proto) +[ "$WAN_PROTO" = "pppoe" ] || exit 0 + +for module in slhc ppp_generic pppox pppoe; do + insmod $module 2>/dev/null >/dev/null +done + +IFNAME=$(nvram get pppoe_ifname) +USERNAME=$(nvram get ppp_username) +PASSWORD=$(nvram get ppp_passwd) +REDIAL=$(nvram get ppp_redialperiod) +REDIAL=${REDIAL:+holdoff $REDIAL} +IDLETIME=$(nvram get ppp_idletime) +IDLETIME=${IDLETIME:+idle $IDLETIME} +MTU=$(nvram get ppp_mtu) + +ifconfig $IFNAME up +echo -e "plugin /usr/lib/pppd/rp-pppoe/rp-pppoe.so\nconnect /bin/true\nusepeerdns\ndefaultroute\nuser \"$USERNAME\"\npassword \"$PASSWORD\"\nmtu $MTU\n$IDLETIME\n$REDIAL" > /tmp/.pppoe-data +/usr/sbin/pppd file /tmp/.pppoe-data $IFNAME diff --git a/openwrt/target/default/target_skeleton/sbin/ifup b/openwrt/target/default/target_skeleton/sbin/ifup index 6b4a7740b..f8e41ce8c 100755 --- a/openwrt/target/default/target_skeleton/sbin/ifup +++ b/openwrt/target/default/target_skeleton/sbin/ifup @@ -58,10 +58,11 @@ idletime=$(nvram get ppp_idletime) mtu=$(nvram get wan_mtu) - $DEBUG ifconfig $if 0.0.0.0 up +# handled by /etc/init.d/S50pppoe +# $DEBUG ifconfig $if 0.0.0.0 up - $DEBUG /sbin/pppoecd $if -u $username -p $password \ - -i 0 -I $redial -T $idletime -t $mtu -k +# $DEBUG /sbin/pppoecd $if -u $username -p $password \ +# -i 0 -I $redial -T $idletime -t $mtu -k ;; none) ;;