]> git.ozlabs.org Git - ppp.git/blobdiff - README.linux
Forgot to remote *.ln files (made by lint) when doing make clean.
[ppp.git] / README.linux
index 2a6321a39009ee859f67569a563c2aa637441a31..df918cfcf07b6696e0a209fb7d14171716e49f91 100644 (file)
@@ -1,11 +1,11 @@
-PPP for Linux                                             Version 2.3.2
+PPP for Linux                                             Version 2.3.9
 =============                                                  based on
-                                                              ppp-2.3.2
-                                                               Oct 1997
+                                                              ppp-2.3.9
+                                                              July 1999
 
-Michael Callahan    callahan@maths.ox.ac.uk
-Al Longyear         longyear@netcom.com
 Paul Mackerras      Paul.Mackerras@cs.anu.edu.au
+Al Longyear         longyear@netcom.com
+Michael Callahan    callahan@maths.ox.ac.uk
 
   Contents:
     INTRODUCTION
@@ -63,13 +63,13 @@ the link down, when it negotiates a graceful disconnect.
 
 CREDITS
 
-I (MJC) wrote the original kernel driver from scratch.  Laurence
-Culhane and Fred van Kempen's slip.c was priceless as a model (a
-perusal of the files will reveal that I often mimicked what slip.c
-did).  Otherwise I just implemented what pppd needs, using RFC1331 as
+Michael Callahan wrote the original kernel driver from scratch.
+Laurence Culhane and Fred van Kempen's slip.c was priceless as a model
+(a perusal of the files will reveal that he often mimicked what slip.c
+did).  Otherwise he just implemented what pppd needs, using RFC1331 as
 a guide.  For the most part, the Linux driver provides the same
 interface as the free 386BSD and SunOS drivers.  The exception is that
-Linux has no support for asynchronous I/O, so I hacked an ioctl into
+Linux had no support for asynchronous I/O, so he hacked an ioctl into
 the PPP kernel module that provides a signal when packets appear and
 made pppd use this instead.
 
@@ -79,24 +79,46 @@ the kernel driver and the OS-independent part of pppd.  His
 contributions to Linux PPP have been immense, and so this release
 is being distributed over both our names.
 
-The pppd program comes from the free distribution of PPP for Suns and
-386BSD machines, maintained by Paul Mackerras.  This package lists
-"thanks to" Brad Parker, Greg Christy, Drew D. Perkins, Rick Adams and
-Chris Torek.
+Paul Mackerras rewrote and restructured the code for improved
+performance and to make a cleaner separation between the
+network-interface and async TTY parts of the ppp driver.
+
+Nick Walker added the code to pppd to query the peer for DNS server
+addresses.
+
+
+USING THE NEW PPP KERNEL DRIVER
+
+As of kernel version 2.3.13, the development series of kernels contain
+a new kernel PPP driver, rewritten from scratch by Paul Mackerras.
+This package supports the new driver, although it doesn't include the
+source for the new driver.
 
-Jim Freeman added the code to support a ppp module and to dynamically
-extend the number of ppp devices. All ppp devices listed in the Space.c
-will be unlinked when the kernel is loaded. This feature makes the use
-of '16 channel' support obsolete.
+The new driver is divided into two files: ppp_generic.c and
+ppp_async.c.  The old ppp.c is still present in the kernel sources but
+is not used.  If you compile PPP as a module, you will get two
+separate modules, called ppp_generic and ppp_async.
 
+To talk to the new driver, pppd needs to be able to open /dev/ppp,
+character device (108,0).  If the special file node /dev/ppp is not
+present, pppd will create it.  However, if you are running with /dev
+on a read-only filesystem, pppd will not be able to create /dev/ppp.
+In that instance you should manually create /dev/ppp using the command
+`mknod /dev/ppp c 108 0'.
+
+If you use module autoloading and have PPP as a module, you will need
+to add the following to /etc/conf.modules:
+
+alias tty-ldisc-3    ppp_async
+alias char-major-108 ppp_generic
 
 
 INSTALLATION
 
 This version of PPP has been tested on various Linux kernel versions
-(most recently 2.0.30 and 2.1.24). It will probably not work on
-kernels before 2.0.0. If you have an earlier kernel, please upgrade to
-the latest 2.0 kernel.
+(most recently 2.2.10). It will not work on kernels before 2.0.0. If
+you have an earlier kernel, please upgrade to the latest 2.2-series
+kernel.
 
 joining the PPP channel of linux-activists:
 
@@ -156,9 +178,6 @@ The installation procedure has been totally revised for this
 version. Due to feedback from other users, it was felt that a more
 automated installation procedure be performed.
 
-Use the following procedure for all kernel versions. There are six steps
-numbered one through six. Please do them in order and not skip one.
-
 
 1. Issue the command:
 
@@ -170,16 +189,35 @@ set of symbolic links to the makefiles. They should link 'Makefile' to
 'Makefile.linux' in each of the directories.
 
 
-2. Issue the command:
+2. Update the kernel sources.
+
+The 2.2.8 and later kernels contains the same PPP kernel driver as is
+in this release.  In fact the driver in the kernel sources is slightly
+different from the one in this package as it doesn't include the stuff
+which enables the driver in this package to compile in either the 2.0
+or 2.2 kernel environment, but the two are functionally equivalent.
+If you are using a 2.2.8 or later kernel and your kernel is already
+configured for PPP, then you only need to do steps 5 and 6.
+Otherwise, continue at step 3.
+
+If you are using a 2.3 series kernel, use the kernel driver that is in
+the kernel sources.  For 2.3.13 and later, this is the new driver (see
+above).
+
+If you are using a kernel earlier than 2.2.8, you can either use the
+driver in this package or upgrade your kernel to the current 2.2.x
+series kernel (2.2.11, as of the release of ppp-2.3.9).  If you choose
+to use the driver in this package, you will need a copy of the kernel
+source tree to compile the driver.  Issue the command:
 
 make kernel
 
 from the top level directory. This will install the various include
-files and source files into the proper directory for the linux
-kernel. If you don't have the kernel installed in the /usr/src/kernel
-directory then it will not work. Instead it will print a message to
-the effect that you need to specify the kernel location on the
-kinstall command.
+files and source files into the proper directories in the linux kernel
+source tree. If you don't have the kernel installed in the default
+/usr/src/kernel directory then it will not work. Instead it will print
+a message to the effect that you need to specify the kernel location
+on the kinstall command.
 
 The actual message will say:
 
@@ -222,15 +260,17 @@ not been changed.
 
 3. Build the kernel.
 
-You must rebuild the kernel with this package. The driver is totally
-new and may not work with the older daemon and the newer daemon will
-not work with the older kernel driver. If you don't know how to build
-a kernel, then you should read the README file in the kernel source
-directory.
+You should rebuild the kernel with this package.  If you use the
+driver that comes with the current 2.0 kernels, it will not support
+Deflate compression or demand-dialling, but apart from that the pppd
+daemon should work.
+
+If you don't know how to build a kernel, then you should read the
+README file in the kernel source directory.
 
-If you wish module support then you need to have the 'modules-2.0.0'
-package installed as the minimum version. Earlier versions of the module
-support will not work properly. All of the later ones will.
+If you want module support then you need to have the 'modules-2.0.0'
+package installed as the minimum version. Earlier versions of the
+module support will not work properly. All of the later ones will.
 
 Instructions on building the kernel with modules are given in the
 README.modules in the kernel source directory.
@@ -262,10 +302,10 @@ You may use the command
 
 make install
 
-to install the various programs. They will be installed into the
-/usr/sbin directory. You may not like this directory for the
-executables. The directory name is called BINDIR and is set in the
-file 'linux/Makefile.linux'.
+(as root) to install the various programs.  They will be installed
+into the /usr/sbin directory.  If you prefer to install the programs
+elsewhere, you can change the definition of BINDIR in the file
+linux/Makefile.top.
 
 Earlier versions of the pppd package used /usr/lib/ppp as the
 directory. This has been changed. If you still have code in
@@ -319,7 +359,7 @@ be loaded. BOTH systems must support the same compression protocols.
 
 PROBLEMS WHICH MAY OCCUR WHILE BUILDING THE KERNEL
 
-At this time there should not be a problem with the complication of the
+At this time there should not be a problem with the compilation of the
 drivers.
 
 
@@ -384,6 +424,10 @@ the names 'hillarypc' and 'chelseapc'.  You can probably find out the
 right domain name to use and the IP numbers of nameservers from
 whoever's providing your PPP link.
 
+Alternatively you may wish to use the option `usepeerdns' and then
+modify your `ip-up' and `ip-down' scripts to automate the process. Or 
+check your messages file to see if pppd recorded the DNS addresses
+supplied by the peer ppp server.
 
 
 CONNECTING TO A PPP SERVER
@@ -798,10 +842,10 @@ the system via ftp. You would not want Joe Hacker using the ppp account
 via ftp.
 
 2. Ensure that the directory /etc/ppp is owned by 'root' and permits
-only write access to the root user.
+write access only to the root user.
 
-3. The files /etc/ppp/options must be owned by root and accessible only
-from that user. Never permit any other user access to this file.
+3. The files /etc/ppp/options must be owned by root and writable only
+by root.
 
 4. The files /etc/ppp/ip-up and /etc/ppp/ip-down will be executed by the
 pppd process while it is root. Ensure that these files are writable only