Version 1.3 Release Notes
This file serves as both a README and a How-To for EnterNet 100 for Linux, PPPoE Client, Version 1.300.000 RC1
Contents
If you do not have the PPP daemon installed on your system, you should install it now. You can find it on your Linux distribution CD. It is best to use the latest version of pppd available. EnterNet 100 will work with versions as old as 2.3.7.
Check your Linux supplier's Web site for updates and patches. Alternately, the latest version of pppd can be found at ftp://cs.anu.edu.au/pub/software/ppp/. At the time of this writing the latest version of pppd is 2.3.11.
2) INSTALLING
This outline of how to install was prepared for use on Red Hat Linux 5.2, 6.0, and 6.1.
Place files: pppoed, start-pppoe, and stop-pppoe in the directory /usr/local/bin. You can use a different binary directory, but you will need to reflect those changes in the start-pppoe shell script.
Edit the shell script start-pppoe, follow the comments in the area marked off as "User Changeable Area". Be sure to put in your correct USERID in the start-pppoe file. If you were given a specific Service Name to use and/or Access Concentrator, make those changes as well.
Update /etc/ppp/chap-secrets and pap-secrets with your login UserID and password information provided by your service provider.
Below are examples of pap-secrets file entries:
# Secrets for Authentication using PAPIf you need more information about the pap-secrets or chap-secrets file see the man pages for pppd.
# Client server secret IP address
myuserid * donttell *
Place options.pppoe in the /etc/ppp directory.
If you do not have an Ethernet NIC installed, install one now. Refer to NET3-HOWTO or Linux-related documentation for help on setting up networking. ifconfig can be used to list the network interfaces currently up and running on you system. Most network install procedures/programs/scripts will want an IP address for the Ethernet NIC. Use an address such as 10.1.1.1 from the private address list. Do not configure the NIC for DHCP or bootp.
The command line below is used to put the ethernet port in a usable state for PPPoE. This line is included in the start-ppppoe script:
ifconfig eth0 0.0.0.0 up -broadcast -arpThis has the effect of stopping all IP activities on the Ethernet interface, thereby enabling it to send and receive only PPPoE packets.
Note: Leaving an old IP address on any network interface that is of the same sub-network, as the one your PPPoE connection uses, may cause either connection failure or routing confusion. An IP Address from the list of private addresses should not be a problem.
Your ISP should have provided you with the address of one or more DNSs.. To use them you will need to update the file /etc/resolv.conf. An updated file may look like this:
nameserver 10.11.12.133) STARTING
nameserver 10.11.12.14
Now you can run:
/usr/local/bin/start-pppoe.4) STOPPINGIf you were successful in connecting to the internet, you should be able to run ifconfig and see details of a new driver ppp0.
To stop the PPPoE session, run:
/usr/local/bin/stop-pppoe.5) MISCELLANEOUS
You can view the Service Names and Access Concentrator Names that are accessible by running:
/usr/local/bin/pppoed -LWhen editing start-pppoe, the -L option can be helpful in getting the correct spelling for the AC and service names. Note that most people will not need to detail this information. When the service name and AC name are left out, pppoed will connect to the first responding server. You only need to use AC name if you have been instructed by your ISP to connect to a particular access concentrator server. The service name may be used by some providers to allow you to access a specific service. At this time, most people do not need either of these.This can be useful as a test aid. Getting a resource list in the response indicates that pppoed can talk to your NIC -> DLS Modem -> phone line -> Access Concentrator at the Phone Co. No login is required.
/usr/local/bin/pppoed -v will show the version number of the pppoed program.If you see syslog message like these after running the EnterNet 100 client, continue reading:
modprobe: can't locate module char-major-108The message ... modprobe: can't locate module char-major-108 should be ignored for 2.0.x and 2.2.x Linux kernels. The pppd version 2.3.10 code is trying to access something that is only found in the 2.3.x kernel. This message does not appear in pppd version 2.3.11.
modprobe: can't locate module ppp-compress-21
modprobe: can't locate module ppp-compress-26
modprobe: can't locate module ppp-compress-24
If you see the following messages in your syslog, don't worry:
modprobe: can't locate module ppp-compress-21These messages are harmless and can be prevented by adding the following three lines to /etc/conf.modules:
modprobe: can't locate module ppp-compress-26
modprobe: can't locate module ppp-compress-24
alias ppp-compress-21 bsd_comp.oTo eliminate the following syslog message
alias ppp-compress-26 ppp_deflate.o
alias ppp-compress-24 ppp_deflate.o
kernel: pppoed uses obsolete (PF_INET,SOCK_PACKET)6) BUILDING pppoedCopy from ./release/pppoed-2.2 to /usr/local/bin/pppoed. If you do not have pppoed-2.2, then you will need to rebuild the pppoed module.
Change directory to ./src., Do a make cleanthen a make linux2_2.
Now copy the file ../release/pppoed-2.2 to /usr/local/bin/pppoed
The only library that is not in the default link is is libpthread.so.0, which is in the Linux distribution. Just "cd" to the pppoed source directory and run make. In the ./release/ directory you will find a copy of pppoed with the symbols stripped off. Copy it to /usr/local/bin/, or its equal on your system.
7) IMPROVE PERFORMANCE - SYNC OPTION
Using the sync option can reduce pppoed's CPU utilization to about 1/4. If you are running the ready build kernel from RedHat 6.1 or Mandrake 6.5, your system is ready to use the sync option after you do two things.
To use the sync option you need:
The HDLC TTY line discipline support is in RedHat 6.x release. It was not in the RedHat 5.2 release; however, it can be added. On RedHat release 5.2, 6.0, and 6.1, you will need to add the following line to file /etc/conf.modules, so that n_hdlc can be loaded automatically on demand:2) pppd version 2.3.7 or higheralias tty-ldisc-13 n_hdlc
Otherwise you would need to explicitly run the command:
insmod n_hdlc
For the RedHat 5.2 release you will need to get a copy of the file n_hdlc.c from one of the later releases. (RedHat 6.0 has it) Copy the file to your kernel source tree /usr/src/linux/drivers/char. Update the Makefile.
Locate the line with "M_OBJS :=". Append to the end of this line, n_hdlc.o.
The line should then read as "M_OBJS := n_hdlc.o". Rebuild the modules and install modules. Refer to related how-to's and kernel release notes for rebuilding modules. This is getting messy for some, and it may be time to upgrade.
If you do not have pppd version 2.3.7 or higher you must get one before you can proceed. Edit the start-pppoe file. Find the comment section that talks about the sync option and uncomment the SYNC variable.
3) Kernel module for PPP that supports the sync option
The kernel or kernel module supporting ppp must have sync support in it. Redhat 6.0 ppp kernel module does not. It is present in the 6.1 release. The pppd 2.3.7 or newer archive will have an updated kernel ppp driver source that can be installed and built. If you must update your system, you might just as well get the latest version. To install follow the README and README.Linux that comes with the archive.
You can check syslog file for messages from pppoed to see if the sync option was accepted. e.g. the output of "tail -25 /var/log/messages" should contain a line like this:
... pppoed[5555]: Operating in Sync mode.
If it didn't work, you will see Operating in Async mode instead. This may be due to an old ppp.o kernel driver module being used with the new pppd daemon.
If you see the message:
Required N_HDLC line discipline for sync option is not supported by the system.
The n_hdlc.o kernel module did not load. Recheck syslog for error messages and check /etc/conf.modules for the line:
alias tty-ldisc-13 n_hdlc