=============================================================================
PPP-compile guide... (1-28-98)

You can get the latest version of ppp from the home site of ppp.

ftp://cs.anu.edu.au/pub/software/ppp   <-Home site.)

ppp-2.3.3.tar.gz etc.                    
=============================================================================

~# tar xzvf ppp-2.3.3.tar.gz

ppp-2.3.3# configure
         # make kernel               <-Then compile the kernel,
         # make                        see below.)
	 # make install
	 # cp -r scripts /etc/ppp
	   
If your service provider uses (c)all (b)ack (c)onfiguration (p)rotocol,
you have to compile ppp-2.?.? to support cbcp.

Do this in ppp-2.?.? to get cbcp support.

ppp-2.3.3# patch -p1 < README.cbcp

If you want microsoft ms-chap-80 support do this below in 
ppp-2.3.3/pppd/Makefile.linux.

# Uncomment the next 2 lines to include support for Microsoft's
# MS-CHAP authentication protocol.
CHAPMS=y
USE_CRYPT=y

Read: ppp-2.3.3/README.MSCHAP80

You need to have 'libdes.a' on your system to compile ppp-2.?.? with 
ms-chap-80 support, either in /lib/libdes.a or /usr/lib/libdes.a, also 
put 'des.h' from libdes in /usr/include/des.h.

If you happen to have /usr/lib/libcrypt.a or libcrypt.so.? on your 
system you don't need to get libdes, ppp-2.3.3 will use it instead.

You can get libdes from: 

ftp://ftp.psy.uq.oz.au/pub/Crypto/DES "libdes-4.01.tar.gz"

4.01 is the latest as of this writing, there's also a patch
for 4.01 libdes-4.01.patch1.

libdes-4.01# patch -p0 < libdes-4.01.patch1
libdes-4.01# make x86-elf   <-To compile on linux elf system.)

I have no experience with cbcp or ms-chap-80, but a sample options file 
might look like this.

Sample /etc/ppp/options file.

lock
defaultroute
noipdefault
modem
/dev/modem
38400
crtscts
debug
passive
callback "7771818"
user "jerry"              
remotename "foo.boo.com"      

Your "phone number" for the callback, include the quotation marks.

The 'user' option is just required for pap, chap, or ms-chap, it would 
be your username when you login to your service provider.

In addition to the name option ms-chap-80 requires the remotename option, 
it would be your service providers domain name.

If your service provider is using PAP, your /etc/ppp/pap-secrets file
should look like this.

# Username      Server       Password
jerry             *          password

If your service provider is using CHAP, your /etc/ppp/chap-secrets file
should look like this.

# Username      Server       Password
jerry        foo.boo.com     password
foo.boo.com       jerry      password

The Server should be your internet service providers domain name,
if not sure just put * for Server.

The Password should be the password for jerry.

The permissions on /etc/ppp/pap-secrets or chap-secrets should be.

~# chmod 600 /etc/ppp/pap-secrets

More and more service providers are using PAP or CHAP for authentication, 
you should ask your ISP if they are using PAP or CHAP, it could save you 
a lot of wasted time.

If you're having a problem making the ppp connection, look at the
/var/log/messages and or debug file for the output from pppd and
chat.

The output from pppd and chat should also be in the /var/log/pppd.chat
file if you're using pppsetup.

=============================================================================
Compiling PPP as a module...
=============================================================================

~# dmesg | grep -i ppp
PPP: version 2.?.?    <-You have PPP in the kernel.)

If you have PPP compiled in the kernel, you'll have to compile the
whole kernel for the new ppp.

If you don't have PPP compiled in the kernel you don't have to compile
the whole kernel, just answer yes to these questions below and (m)odule 
for ppp.

If your present kernel is 2.0.33, the kernel source in /usr/src/linux
must be from 2.0.33 also etc.

~# uname -r      <-To see what kernel version you're running.)
2.0.33       

Look at /usr/src/linux/Makefile, it should say 2.0.33 also etc.

VERSION = 2
PATCHLEVEL = 0
SUBLEVEL = 33

If your kernel was 2.0.33 and the kernel source in /usr/src/linux was
2.0.34 for example, you could change it to 2.0.33.

VERSION = 2
PATCHLEVEL = 0
SUBLEVEL = 34

VERSION = 2             <-Change it to match 'uname -r' then put it
PATCHLEVEL = 0            back after 'make modules_install' below.
SUBLEVEL = 33

~# cd /usr/src/linux
/usr/src/linux# make config      <-Configure kernel source.)

It doesn't matter how you answer all the other questions, you can just 
press enter and accept the defaults, just be sure that these questions 
below are answered like this.

etc...
Enable loadable module support (CONFIG_MODULES) [Y/n/?] y 
etc...
Networking support (CONFIG_NET) [Y/n/?] y 
etc...
TCP/IP networking (CONFIG_INET) [Y/n/?] y 
etc...
Network device support (CONFIG_NETDEVICES) [Y/n/?] y
etc...
PPP (point-to-point) support (CONFIG_PPP) [N/y/m/?] m   <-Answer (m)odule.)
etc...

/usr/src/linux# make modules              <-Compile ppp module.)
              # make modules_install      <-Install ppp etc. modules.)
 
You should have a /lib/modules/2.0.33/net directory with these
modules in it.

ppp.o
slhc.o
bsd_comp.o
ppp_deflate.o

~# depmod -a         <-Create /lib/modules/?/modules.dep file.)
 # modprobe slhc     <-You should load slhc also.)
 # modprobe ppp      <-To load the ppp module.)
 # lsmod             <-To see what modules are loaded.)
 # rmmod slhc        <-To unload slhc.)
 # rmmod ppp         <-To unload ppp.)

If you have any linux ppp questions or problems, you can post them 
to these newsgroups.

comp.os.linux.networking
comp.protocols.ppp
 
End... (By Kent Robotti) (1-28-98)
=============================================================================