rewrite the pid file when using updetach
[ppp.git] / README.linux
index 94d165aa0444fef2e8cfe3d3b124faaf74bac528..32d22fc40e300a3aa50897968e29e2e8052e6e10 100644 (file)
@@ -1,16 +1,15 @@
-PPP for Linux                                             Version 2.2.0
+PPP for Linux                                             Version 2.3.3
 =============                                                  based on
-                                                              ppp-2.2.0
-                                                               Mar 1995
+                                                              ppp-2.3.3
+                                                               Dec 1997
 
 Michael Callahan    callahan@maths.ox.ac.uk
 Al Longyear         longyear@netcom.com
+Paul Mackerras      Paul.Mackerras@cs.anu.edu.au
 
   Contents:
     INTRODUCTION
     CREDITS
-    CHANGES FROM THE PREVIOUS VERSION
-    FUTURE PLANS
     INSTALLATION
     PROBLEMS WHICH MAY OCCUR WHILE BUILDING THE KERNEL
        A REFERENCE TO UNDEFINED _mod_use_count_
@@ -30,11 +29,12 @@ Al Longyear         longyear@netcom.com
 
 INTRODUCTION
 
-This file is substantially derived from the previous version for
-the pppd process 2.2.0. Michael Callahan wrote that version. This
-particular version was written, modified, hacked, changed, whatever,
-by Al Longyear. If you find errors in this document, they are probably
-mine and not Michael's.
+This file is substantially derived from the previous version for the
+pppd process 2.2.0, which itself was derived from earlier works by
+Michael Callahan. This particular version was written, modified,
+hacked, changed, whatever, by Al Longyear and Paul Mackerras. If you
+find errors in this document, they are probably ours and not
+Michael's.
 
 This is a PPP driver for Linux.  It has been used by many people and
 seems to be quite stable.  It is capable of being used either as a
@@ -73,8 +73,8 @@ Linux has no support for asynchronous I/O, so I hacked an ioctl into
 the PPP kernel module that provides a signal when packets appear and
 made pppd use this instead.
 
-Al Longyear ported version 2.2 of pppd (from the free package
-ppp-2.2.0) to Linux.  He also provided several enhancements to both
+Al Longyear ported version 2.0 of pppd (from the free package
+ppp-2.0.0) to Linux.  He also provided several enhancements to both
 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.
@@ -91,80 +91,12 @@ of '16 channel' support obsolete.
 
 
 
-CHANGES FROM THE PREVIOUS VERSION
-
-- The number of devices for the PPP device has been made dynamic. It was
-  previously configured with the default value of four devices.
-
-- The problems dealing with other systems such as Windows NT and their
-  authenticiation has been corrected. It will now generate the proper
-  responses to allow the system to choose a valid authentication protocol.
-
-- The kernel debug value has changed. Previously it was a level. It is now
-  a bit map with various bits meaning certain types of debug information.
-
-     0 - No debug information is generated
-     1 - Debug messages
-     2 - Log incoming packets
-     4 - Log outgoing packets
-     8 - Log tty output buffers
-    16 - Log tty input buffers
-
-  If you wish to use any combination, add the values together. For example,
-  '7' will log debug messages and incoming packages and outgoing packets.
-
-  The default setting is 0.
-
-  The simple IP trace which ppp.c performed when 'kdebug' was greater than
-  127 has been removed. You should use tcpdump for this type of trace
-  actions.
-
-- Support is added for compression control protocol. At the present time
-  only the BSD-Compress compression protocol is supported.
-
-- There are two queues for output frames. This avoids some problems which
-  occured with the previous version and some PPP packages which exchanged
-  echo frames with Linux.
-
-- The echo frames are now proper. Previously, it would generate extra
-  characters and this caused some providers to not respond to the 'junk'.
-
-- The max-echo-failure option will now properly disconnect the line.
-
-- There are other changes which are listed in the general README file. Please
-  read that file as well for changes.
-
-- There is no limit to the number of ppp devices which you may use. Jim Freeman
-  has added code to create them upon demand and to re-use the ones which have
-  been closed. There is no code, nor plans to write code, to remove (delete)
-  the un-used devices. So, if your system goes to a spurt and uses 256 ppp
-  devices, it will remain at that level until you next reload the kernel.
-
-  If you are using modules then you may use the additional setting of
-  max_dev=#
-
-  where # is the maximum number. The default is set by the define PPP_MAX_DEV
-  and this define may be altered if you are not using modules.
-
-  The BSD compressor may only be loaded as a module. Previous beta versions
-  permitted the compressor to be included into the kernel. This was removed
-  for several reasons, some technical, some less technical and more
-  political (legal).
-
-
-FUTURE PLANS
-
-The next version of pppd, 2.3, is designed to contain a demand dial
-function directly.
-
-
-
 INSTALLATION
 
-This version of PPP has been tested on 1.1.x (x>=14) It will probably
-not work on kernels much earlier than this due to a change in the
-routing code.  If you have an earlier kernel, please upgrade.
+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.
 
 joining the PPP channel of linux-activists:
 
@@ -291,19 +223,14 @@ not been changed.
 3. Build the kernel.
 
 You must rebuild the kernel with this package. The driver is totally
-new and will not work with the older daemon and the newer daemon will
+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.
 
-If you wish module support then you need to have the 'modules-1.1.87'
+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.
-
-As of this time, the current version for the modules package is
-1.2.0. Even 1.1.87 is old. However, if you only have 1.1.87 then it
-will do as it permits the symbol table references. Please consider
-upgrading the module package however.
+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.
@@ -336,10 +263,16 @@ You may use the command
 make install
 
 to install the various programs. They will be installed into the
-/usr/lib/ppp directory. You may not like this directory for 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'.
 
+Earlier versions of the pppd package used /usr/lib/ppp as the
+directory. This has been changed. If you still have code in
+/usr/lib/ppp then you should remove it as it is probably the 2.1
+version of the code. That version will not work with the current ppp.c
+drivers in the kernel.
+
 
 7. Reboot to the new kernel.
 
@@ -359,47 +292,35 @@ Sequence    Module      Description
    3        bsd_comp.o  BSD compression for PPP's compression protocol.
 
 If you only have the bsd comprssor as a module then you may load it without
-regard to any order.
+regard to any order. Likewise you may load the deflate compressor without
+regard to any order with the BSD one. The idea is that the ppp.o code must
+be loaded to use the compressor and the VJ header compression code must be
+loaded to use ppp.o.
 
-You may elect not to load the BSD compression module if you desire. There
-is a controversy regarding a Motorola software patent and while it is
-believed that this code does not infringe upon the patent, it is however
-an optional component.
+You may elect not to load the BSD compression module if you desire.
+The LZW compression algorithm (as used by BSD-Compress and the
+`compress' command) is claimed to be covered by a patent held by
+Unisys in the USA and other countries.
 
-In addition, if memory is a premium, do not run the BSD compression. It
+In addition, if memory is a premium, do not run the compressors. It
 may take large amounts of memory (up to 2.6 meg) for high compression
 lengths to hold the compression dictionaries.
 
-Without the BSD compression module, the PPP driver will not accept PPP's
-compression control protocol for BSD compression.
+Without the compression modules, the PPP driver will not accept PPP's
+compression control protocol for that type. If you have no compressors
+loaded then no compression will be performed. If you don't have the BSD
+compressor loaded then the BSD compression will not be performed, even
+if the peer system supports it. Likewise with the deflate compressor.
 
+Compressors are unique to their type. If you have the deflate compressor
+loaded and the peer system has the BSD version, still no compression must
+be loaded. BOTH systems must support the same compression protocols.
 
-PROBLEMS WHICH MAY OCCUR WHILE BUILDING THE KERNEL
-
-A REFERENCE TO UNDEFINED _mod_use_count_
 
-If you experience an error message that the variable "mod_use_count_" is
-undefined then apply the patches in the linux/Other.Patches directory. There
-is a version for the 1.2.13 kernel and a differnt one for the early 1.3
-kernels.
-
-The current 1.3 series kernels should not experience this problem as the
-patch has already been incorporated.
-
-
-BLOCK ON FREELIST AT nnnnnn ISN'T FREE
-(where nnnnnn are a sequence of hexadecimal digits.)
-
-While this is not really an error when the kernel is built, it is an error
-which may occur when you actually run the system. The solution is a patch
-in the linux/Other.Patches directory. (That is why I mention it here.)
-
-The problem is in the VJ header compression module. It allocated a block
-of memory and then used the wrong variable to determine the amount of memory
-which should be reset. The patch is present in the 1.3.46 kernel and later
-ones. However, versions prior to that may POSSIBLY have the problem depending
-upon the number of slots which are allocated for the header compression logic.
+PROBLEMS WHICH MAY OCCUR WHILE BUILDING THE KERNEL
 
+At this time there should not be a problem with the complication of the
+drivers.
 
 
 GENERAL NETWORK CONFIGURATION
@@ -442,10 +363,10 @@ will use.  For example:
      192.1.1.23  chelseapc.president.whitehouse.gov chelseapc
 
 where my IP address is 192.1.1.17 and my hostname is
-billpc.president.whitehouse.gov.  (Not really, you understand.)  If
-your PPP server does dynamic IP address assignment, give a guess as to
-an address you might get (see also "Dynamic Address Assignment"
-below).
+billpc.president.whitehouse.gov.  (Not really, but you should
+understand my meaning.)  If your PPP server does dynamic IP address
+assignment, give a guess as to an address you might get (see also
+"Dynamic Address Assignment" below).
 
 Finally, you need to configure the domain name system by putting
 appropriate lines in /etc/resolv.conf .  It should look something like
@@ -492,6 +413,9 @@ Going through pppd's options in order:
          ""            send a return (null text followed by usual return)
          ogin: ppp word: whitewater    log in.
 
+         Please refer to the chat man page, chat.8, for more information
+         on the chat utility.
+
    /dev/cua1     specify the callout serial port cua1
    38400         specify baud rate
    debug         log status in syslog
@@ -547,6 +471,8 @@ want the service "blackice".  It logs in, waits for a shell prompt
 ("black%"), then starts PPP.  The -t60 argument sets the timeout to a
 minute, since things here are sometimes very slow.
 
+(The sendbreak program is not included in this package.)
+
 The "&& sleep 5" causes the script to pause for 5 seconds, unless chat
 fails in which case it exits immediately.  This is just to give the
 PPP server time to start (it's very slow).  Also, the "stty -echo"
@@ -605,7 +531,7 @@ lo        Link encap Local Loopback
           TX packets 0 errors 0 dropped 0 overrun 0
 
 ppp0      Link encap Point-to-Point Protocol
-          inet addr 192.76.32.2  P-t-P 129.67.1.165  Mask 255.255.255.0
+          inet addr 192.76.32.3  P-t-P 129.67.1.165  Mask 255.255.255.0
           UP POINTOPOINT RUNNING  MTU 1500  Metric 1
           RX packets 33 errors 0 dropped 0 overrun 0
           TX packets 42 errors 0 dropped 0 overrun 0
@@ -769,9 +695,9 @@ pieces of information:
 modem
 crtscts
 lock
-:192.1.2.23
+:192.1.2.33
 
-Here we will insist that the remote machine use IP address 192.1.2.23,
+Here we will insist that the remote machine use IP address 192.1.2.33,
 while the local PPP interface will use the IP address associated with
 this machine's hostname in /etc/hosts.  The '-detach' option is required
 for a server. It tells the pppd process not to terminate until the modem
@@ -805,7 +731,7 @@ to be on the local Ethernet segment and you should give the 'proxyarp'
 option to pppd on the server.  Suppose, for example, we have this
 setup:
 
- 192.1.2.23                        192.1.2.17
+ 192.1.2.33                        192.1.2.17
 +-----------+      PPP link       +----------+
 | chelseapc | ------------------- |  billpc  |
 +-----------+                    +----------+
@@ -826,14 +752,14 @@ piece of information:
 modem
 crtscts
 lock
-192.1.2.17:192.1.2.23
+192.1.2.17:192.1.2.33
 proxyarp
 
 When the link comes up, pppd will enter a "proxy arp" entry for
 chelseapc into the arp table on billpc.  What this means effectively
 is that billpc will pretend to the other machines on the 192.1.2.x
 Ethernet that its Ethernet interface is ALSO the interface for
-chelseapc (192.1.2.23) as well as billpc (192.1.2.17).  In practice
+chelseapc (192.1.2.33) as well as billpc (192.1.2.17).  In practice
 this means that chelseapc can communicate just as if it was directly
 connected to the Ethernet.