CHANGES FROM THE PREVIOUS VERSION
FUTURE PLANS
INSTALLATION
+ PROBLEMS WHICH MAY OCCUR WHILE BUILDING THE KERNEL
+ A REFERENCE TO UNDEFINED _mod_use_count_
+ BLOCK ON FREELIST AT nnnnnn ISN'T FREE
GENERAL NETWORK CONFIGURATION
CONNECTING TO A PPP SERVER
IF IT WORKS
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. If you find errors in this
+document, they are probably mine 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
The PPP protocol consists of two parts. One is a scheme for framing
and encoding packets, the other is a series of protocols called LCP,
-IPCP, UPAP and CHAP, for negotiating link options and for
+IPCP, PAP and CHAP, for negotiating link options and for
authentication. This package similarly consists of two parts: a
kernel module which handles PPP's low-level framing protocol, and a
user-level program called pppd which implements PPP's negotiation
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.
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.
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 3000 ppp
- devices, it will remain at that level until you next reload the kernel.
-
+ the BSD-Compress and 'deflate' compression protocols are supported. A
+ testing version of the predictor-1 compression protocol was developed but
+ it is not included in this package due to unfortunate Motorola patent
+ considerations.
FUTURE PLANS
-The IPX support is still minimal. There is code which will only work with
-the 1.3 version of the networking software. The pppd process will still
-require changes to support the IPXCP and a change to the driver to properly
-enable/disable the IPX frames. Jim Freeman is reportily working on the IPX
-support.
+These are to be determined.
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 kernel version 1.3.100. It will
+probably not work on kernels much earlier than this due to earlier problems
+with the kernels. If you have an earlier kernel, please upgrade to the 2.0
+kernel (when it is available).
joining the PPP channel of linux-activists:
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:
./configure
set of symbolic links to the makefiles. They should link 'Makefile' to
'Makefile.linux' in each of the directories.
+
2. Issue the command:
make kernel
wish. The additional executions will only change the files which have
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'
package installed as the minimum version. Earlier versions of the module
-support will not work properly.
+support will not work properly. All of the later ones will.
+
+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.
Instructions on building the kernel with modules are given in the
README.modules in the kernel source directory.
-4. Build the programs.
+
+4. Install the kernel
+
+If you are using the Yggdrasil distribution then you need to 'install'
+the kernel at this point. Refer to their documentation on the procedures
+to install the kernel.
+
+Distributions other than the Yggdrasil will normally install the
+kernel when you build it.
+
+
+5. Build the programs.
The programs are built next. The command to build the programs is fairly
simple. Just issue the command:
from the top level directory where this README.linux file is located.
-5. Install the programs.
+
+6. Install the programs.
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'.
-6. Reboot to the new kernel.
+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.
After building the new kernel, you will need to actually use it. Reboot
the Linux system and you may then use the new pppd program.
-7. Load optional modules.
-If you are using loadable modules for the ppp or bsd compression then
-you must load them after the kernel has been started. The following
-relative order must be maintained.
+8. Load optional modules.
+
+If you are using loadable modules for the ppp then you must load them
+after the kernel has been started. The following relative order must
+be maintained.
Sequence Module Description
1 slhc.o VJ header compression
2 ppp.o PPP driver
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. 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.
-In addition, if memory is a premium, do not run the BSD compression. It
+The deflate compressor has been stated by Morotola to not infringe upon
+their patent. However, it is also new. You may not find many systems which
+use this compressor.
+
+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
+
+At this time with the 1.3.100 and pre-2.0 series kernels, soon to have the
+2.0 series kernel, there should not be a problem with the compilation of the
+drivers.
GENERAL NETWORK CONFIGURATION
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
"" 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
("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"