PPPoA is supported out of the box on Debian Sarge (pppd 2.4.3), so this page is largely unnecessary now. As of 2.4.1 howver, the default PPP distribution for linux did not come with PPPoA support, and neither did the Debian package in Woody. 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 woody ppp-2.4.1 source package.
Before we start with all the configuration you should be aware of the fact that you need to connect your ADSL modem directly to your Linux box (eg via USB or as internal PCI card) - it is not possible to have it connected via Ethernet.
-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 mentioned 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
I've not yet seen modprobe do it correctly (i've never spent the time trying), i am not sure what the correct order is and it is dependent on what parts you have as modules and what parts are built in, specifically I think that pppoa requires pppoe to add some hooks but as they are not strictly dependent on each other the information that modprobe requires is not present. --MattBrown
There are problems with Kernel Oops when you try doing all this with Kernel version 2.4.22 - this is supposed to be fixed in the 'pre' patches for 2.4.23, but 2.4.21 works fine. --WarrenBoyd?
There are problems with Kernel Errors leading to stalled pppd with latest 2.4.X and 2.6.0 when using ipv6 on ppp with ipv6 ipsec enabled. Deactivate ipv6 privacy extensions in your kernel for pppd to reconnect correctly. dmesg error is unregister_netdevice: waiting for ppp0 to become free. Usage count = 1. --TheMadHatter
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.
Notes on compiling from Debian source
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.
Also make sure you have 'noauth' in there somewhere, else the RAN will try and authenticate against you, and fail miserably.
That's it. You should be done!!