Note: You are viewing an old revision of this page. View the current version.

PPPoA is an Acronym for PPP over ATM, a protocol which is commonly used for ADSLModems such as World-Net's AccessRunner and D-Link AHL110. The default PPP distribution for linux does not come with PPPoA support and neither does the debian packages in either woody, sarge, or sid. However there are patches floating around to add this functionality. The patches provided below are originally from the current SuSe? version of ppp which ships with PPPoA support. I have extracted these patches and verified that they work with both the standard ppp-2.4.1 distribution and the debian sarge ppp-2.4.1 source package.

Kernel Options

You'll need a kernel that has ATM support compiled in. Make sure the following options are enabled

  • Code maturity level options [*? Prompt for development and/or incomplete code/drivers
  • Networking options [*? Asynchronous Transfer Mode (ATM) (EXPERIMENTAL) [*? Classical IP over ATM (NEW) <*> LAN Emulation (LANE) support (NEW) <*> RFC1483/2684 Bridged protocols (NEW)

You'll also need standard PPP support in your kernel, for obvious reasons

  • Network Device Support <M> PPP (point-to-point protocol) support [*? PPP multilink support (EXPERIMENTAL) [*? PPP filtering <M> PPP support for async serial ports <M> PPP support for sync tty ports <M> PPP Deflate compression <M> PPP BSD-Compress compression <M> PPP over Ethernet (EXPERIMENTAL) <M> PPP over ATM (EXPERIMENTAL) (NEW)

And recompile your kernel. Note - at least one person had trouble with pppoa not working which was apparently solved by compiling atm and ppp over atm support into the kernel instead of as modules . - The problem with using modules for pppoa is that if you use too many you get a large dependency tree, this is the problem mentioed above. It is entirely possible to run pppoa (and other ppp related code) as modules provided that you are aware of the dependencies and ensure that the modules are loaded in the correct order. modprobe should surely handle this itself, as it understands module dependencies. Can you elaborate on the correct module load order? --DanielLawson

Precompiled .deb

If you are impatient and just want to get PPPoA up and running on your system without compiling from source the following debs may work for you. Grab whichever one is appropriate for your version of debian. If you dont run debian woody or sarge, you have to compile from source.


Skip ahead to the Configuring PPPoA section.

Compiling from Source

  1. You will need the following 3 patches

  2. You will also need to have the atm-tools and atm-dev packages installed

Compiling from the Standard ppp distribution

  1. Obtain ppp-2.4.1
  2. Download the 3 patches from above
  3. Extract ppp-2.4.1 and change into the directory
  4. patch -p1 < 028_pppoe.diff
  5. patch -p1 < 029_pwfd.diff
  6. patch -p1 < 030_pppoatm.diff
  7. ./configure
  8. make
  9. make install

Compiling from the Debian Source

  1. apt-get install atm-dev (its needed, but not listed in the builddepends for the .deb)
  2. apt-get source ppp
  3. copy the 3 patch files to ppp-2.4.1.uus/debian/patches
  4. cd ppp-2.4.1.uus/
  5. debian/rules unpatch
  6. debian/rules patch
  7. dpkg-buildpackage
  8. cd ..
  9. dpkg -i ppp_2.4.1.uus-4_i386.deb

Configuring PPPoA

This step is much the same as it would be for compiling PPP normally, if you are unfamiliar with PPP it might be an idea to read a HOWTO or something. I have ppp configured so that it is easy to switch between my normal dsl provider (World-Net) and JSGames. I will show you how to set this up.

Create configuration files in /etc/ppp/peers for your dsl provider and JSGames. The most important line to have in each file is

plugin /usr/lib/pppd/2.4.1/ 0.100

This tells pppd to load the PPPoA plugin. Download my sample configs to see the full set of options

My configuration is setup to use PAP authentication, make sure you have a line such as

username@provider * yourpassword

in your /etc/ppp/pap-secrets file. Download my sample pap-secrets file

Finally setup ppp to start on boot

  • mv /etc/ppp/no_ppp_on_boot /etc/ppp/ppp_on_boot
  • chmod +x /etc/ppp/ppp_on_boot
  • Edit /etc/ppp/ppp_on_boot so that it calls your adsl provider on startup ie for the example provider you download above we would have the line

    • $PPPD call ppp-provider
  • Download my example

That's it. You should be done!!