TITLE: How to QUICKLY install PPP 2.4.1 over a modem (serial line) on LFS UPDATED: 28-8-02 LFS VERSION: 3.3 AUTHOR: Sebastien Millet SYNOPSIS: When you manage to install a simple PPP access over a modem (a SERIAL modem, connected to a regular RTC phone line), in order to get connected to your ISP, you need to know where is the latest PPP package available and how to install and configure it. This hint will indicate you how to do this WITHOUT downloading huge packages like wvdial, linuxconf or other high level configuration tools. You'll only need to download the PPP source (ppp-2.4.1.tar.gz at the time of this writing). Also, this hint includes an option to make connection be automatic (on demand). HINT: 1. Where to get PPP ? PPP project Homepage http://www.samba.org/ppp Alternative freshmeat URL http://freshmeat.net/projects/pppd 2. Get PPP installed Once you've downloaded ppp source, extract it from the gzipped tarball by running tar -zxvf ppp-2.4.1.tar.gz Then CD to ppp-2.4.1 directory and run the usual triptic ./configure make make install As usually "make install" must be run as root. 3. Configure PPP It is assumed here that you compiled your kernel with support for PPP. To make PPP available in your kernel, CD into /usr/src/linux, execute make config and answer Y (or M when possible, if you manage to make PPP be available as a module) to the questions Networking support ... TCP/IP networking ... PPP (point-to-point protocol) support ... PPP support for async serial ports PPP support for sync tty ports PPP Deflate compression PPP SD_Compress compression Also you have to enable the "dummy network driver", so to have PPP manage an "empty" network device when the PPP link is down. Starting from this point, it is assumed that you're root. Execute the following to create the file ppp-on-dialer: cat > /etc/ppp/ppp-on-dialer << "EOF" #!/bin/sh /usr/sbin/chat -v \ TIMEOUT 3 \ ABORT '\nBUSY\r' \ ABORT '\nNO ANSWER\r' \ ABORT '\nRINGING\r\n\r\nRINGING\r' \ '' \rATM0 \ 'OK-+++\c-OK' ATH0 \ TIMEOUT 30 \ OK ATDT$TELEPHONE \ CONNECT '' \ ogin:--ogin: $ACCOUNT \ assword: $PASSWORD EOF chmod a+x /etc/ppp/ppp-on-dialer Note that \rATM0 is used to turn modem speaker off. If you want your modem speaker on or if ATM0 command fails on your modem, simply write \rAT (original string, given by the PPP-HOWTO) instead of \rATM0. Now create ppp-on script: cat > /etc/ppp/ppp-on << "EOF" #!/bin/sh # Beginning of /etc/ppp/ppp-on TELEPHONE=my-phone-number ACCOUNT=-my-account-name PASSWORD=my-password LOCAL_IP=0.0.0.0 REMOTE_IP=0.0.0.0 export TELEPHONE ACCOUNT PASSWORD DIALER_SCRIPT=/etc/ppp/ppp-on-dialer exec /usr/sbin/pppd /dev/ttyS0 115200 $LOCAL_IP:$REMOTE_IP \ connect $DIALER_SCRIPT disconnect "chat -v -- \d+++\d\c OK ATH0 OK" # End of /etc/ppp/ppp-on EOF chmod a+x /etc/ppp/ppp-on You have to replace my-phone-number, my-account-name and my-password with your values. Also, in the "exec ..." line, replace /dev/ttyS0 with the correct serial port on which your modem is installed. Consider that /dev/ttyS0 corresponds to COM1: /dev/ttyS1 corresponds to COM2: ... Now ADD an option to the options file, by executing: cat >> /etc/ppp/options << "EOF" debug defaultroute EOF If you want you can also specify the option idle in /etc/ppp/options, where is the hang-up timeout in seconds (for example idle 60 to get a one minute idle timeout). Now create the file ppp-off: cat > /etc/ppp/ppp-off << "EOF" #!/bin/sh # Beginning of /etc/ppp/ppp-off if [ "$1" = "" ]; then DEVICE=ppp0 else DEVICE=$1 fi if [ -r /var/run/$DEVICE.pid ]; then kill -INT `cat /var/run/$DEVICE.pid` if [ ! "$?" = "0" ]; then rm -f /var/run/$DEVICE.pid echo "ERROR: Removed staled pid file" exit 1 fi echo "PPP link to $DEVICE terminated." exit 0 fi echo "ERROR: PPP link is not active on $DEVICE" exit 1 # End of /etc/ppp/ppp-off EOF chmod a+x /etc/ppp/ppp-off Now you can connect to your ISP by running /etc/ppp/ppp-on and disconnect by running /etc/ppp/ppp-off To analyze what's going on in case of failure, switch to a terminal that you'll dedicate to display system messages (or open a xterm if you're working under X), execute tail -f /var/log/sys.log and you'll see chat and pppd logs on the fly. When you're OK you can remove the debug option from pppd options file (/etc/ppp/options). You can also consider removing -v option of chat invocation (in the /etc/ppp/ppp-on-dialer file), though this logging is useful and often left. 4. Configure name resolution Configure name resolution by executing the following: cat > /etc/host.conf << "EOF" # /etc/host.conf order hosts,bind multi on EOF cat > /etc/resolv.conf << "EOF" # /etc/resolv.conf domain my-isp-domain-name nameserver first-dns-ip-address nameserver second-dns-ip-address EOF In the file /etc/resolv.conf, replace my-isp-domain-name, first-dns-ip-address and second-dns-ip-address with the correct values. 5. Configure on-demand connection (optional) Execute the following: cat > /etc/sysconfig/network-devices/ifconfig.ppp0 << "EOF" ONBOOT=yes EOF cat > /etc/sysconfig/network-devices/ifup-ppp0 << "EOF" #!/bin/sh /etc/ppp/ppp-on exit 0 EOF cat > /etc/sysconfig/network-scripts/ifdown-ppp0 << "EOF" #!/bin/sh /etc/ppp/ppp-off ifconfig ppp0 down exit 0 EOF cat >> /etc/ppp/options << "EOF" ktune demand idle 60 EOF Note that you may have already supplied the idle option. Tune the idle option to a value that fits your wishes. 6. How to get detailed informations about PPP Online HOWTO http://www.tldp.org/HOWTO/PPP-HOWTO/index.html The same HOWTO as above, but in a single HTML file http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/html_single/PPP-HOWTO.html The Linux PPP FAQ ftp://sunsite.unc.edu/pub/Linux/docs/faqs/PPP-FAQ/PPP-FAQ