From ArchWiki
Revision as of 18:49, 18 May 2008 by Overmind88 (talk | contribs) (i18n links start)
Jump to: navigation, search

Template:I18n links start Template:I18n entry Template:I18n entry Template:I18n links end

This page explains how to set up a PPPoE connection using pppd and the kernel PPPoE driver. Note that this setup does not need rp-pppoe. ( With rp-pppoe you can have only one account configuration, however, using the method described below, you can have several account configurations at the same time and use anyone of them easily. Besides the dial speed of pppd is much faster than pppoe-start. )


  • Make sure pppd is installed and your kernel is compiled with PPPoE support
$ pacman -Q ppp 
ppp 2.4.3-1
$ zgrep CONFIG_PPPOE /proc/config.gz 
  • Create the configuration file /etc/ppp/peers/pppoe
# /etc/ppp/peers/pppoe
plugin rp-pppoe.so
# rp_pppoe_ac 'your ac name'
# rp_pppoe_service 'your service name'
# network interface
# login name
name "someloginname"
# Uncomment this if you want to enable dial on demand
#idle 180

If you want usepeerdns to work, you have to edit your /etc/ppp/ip-up and add a command that copies /etc/ppp/resolv.conf to etc/resolv.conf.

  • Edit /etc/ppp/pap-secrets

Put a line like this in /etc/ppp/pap-secrets

someloginname * yourpassword

You can now start the link using the command

pppd call pppoe

Alternatively, you can use this

pon pppoe

If you want to make the "pppoe" configuration file the default one, just creat a link /etc/ppp/peers/provider point to the default one and then call


To close a pppoe connection, use this

poff pppoe

Starting pppd with Arch

  • Create a symlink to /etc/ppp/peers/provider
ln -s pppoe /etc/ppp/peers/provider
  • Make sure ppp module is loaded

If ppp support is compiled as a module, you have to load the ppp_generic module. In this case, add this to rc.conf:

MODULES=(... ppp-generic ...)
  • Add ppp to DAEMONS in /etc/rc.conf
DAEMONS=(... ppp ...)


If you have a preconfigured default route before the pppd is started, the default route is kept, so take a look in /var/log/errors.log and if you have something like:

pppd[nnnn]: not replacing existing default route via xx.xx.xx.xx

and xx.xx.xx.xx is not the correct route for you

  • Create a new script /etc/ppp/ip-pre-up
$ chmod +x /etc/ppp/ip-pre-up

with this content:

/sbin/route del default
  • Restart pppd:
$ /etc/rc.d/ppp restart