]> git.ozlabs.org Git - ppp.git/blobdiff - README.linux
Fixed compilation problems on SunOS 4.x
[ppp.git] / README.linux
index 2a6321a39009ee859f67569a563c2aa637441a31..5f2fc7c965a9924cc4da58e6ca0167f86f259167 100644 (file)
@@ -1,11 +1,11 @@
-PPP for Linux                                             Version 2.3.2
+PPP for Linux                                            Version 2.3.11
 =============                                                  based on
 =============                                                  based on
-                                                              ppp-2.3.2
-                                                               Oct 1997
+                                                             ppp-2.3.11
+                                                          December 1999
 
 
-Michael Callahan    callahan@maths.ox.ac.uk
-Al Longyear         longyear@netcom.com
 Paul Mackerras      Paul.Mackerras@cs.anu.edu.au
 Paul Mackerras      Paul.Mackerras@cs.anu.edu.au
+Al Longyear         longyear@netcom.com
+Michael Callahan    callahan@maths.ox.ac.uk
 
   Contents:
     INTRODUCTION
 
   Contents:
     INTRODUCTION
@@ -63,13 +63,13 @@ the link down, when it negotiates a graceful disconnect.
 
 CREDITS
 
 
 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
 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.
 
 the PPP kernel module that provides a signal when packets appear and
 made pppd use this instead.
 
@@ -79,24 +79,49 @@ 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.
 
 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.
+Another module ppp_synctty is used for synchronous tty devices
+such as high-speed WAN adapters for leased T1/E1 lines.
 
 
+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 your /etc/modules.conf or /etc/conf.modules:
+
+alias tty-ldisc-3    ppp_async
+alias tty-ldisc-14   ppp_synctty
+alias char-major-108 ppp_generic
 
 
 INSTALLATION
 
 This version of PPP has been tested on various Linux kernel versions
 
 
 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:
 
 
 joining the PPP channel of linux-activists:
 
@@ -156,9 +181,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.
 
 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:
 
 
 1. Issue the command:
 
@@ -170,16 +192,35 @@ set of symbolic links to the makefiles. They should link 'Makefile' to
 'Makefile.linux' in each of the directories.
 
 
 '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.13, as of the release of ppp-2.3.11).  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
 
 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:
 
 
 The actual message will say:
 
@@ -222,15 +263,17 @@ not been changed.
 
 3. Build the kernel.
 
 
 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.
 
 Instructions on building the kernel with modules are given in the
 README.modules in the kernel source directory.
@@ -262,10 +305,10 @@ You may use the command
 
 make install
 
 
 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
 
 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 +362,7 @@ be loaded. BOTH systems must support the same compression protocols.
 
 PROBLEMS WHICH MAY OCCUR WHILE BUILDING THE KERNEL
 
 
 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.
 
 
 drivers.
 
 
@@ -384,6 +427,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.
 
 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
 
 
 CONNECTING TO A PPP SERVER
@@ -798,10 +845,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
 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
 
 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