X-Git-Url: http://git.ozlabs.org/?p=ppp.git;a=blobdiff_plain;f=README.linux;h=5f2fc7c965a9924cc4da58e6ca0167f86f259167;hp=2a6321a39009ee859f67569a563c2aa637441a31;hb=dd98145afae71e5b436fdf8a989651d727d8cf31;hpb=192a503e77660bc6788544a402f2c4048a97ccab diff --git a/README.linux b/README.linux index 2a6321a..5f2fc7c 100644 --- a/README.linux +++ b/README.linux @@ -1,11 +1,11 @@ -PPP for Linux Version 2.3.2 +PPP for Linux Version 2.3.11 ============= 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 +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,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. -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 -(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 +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. -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 +192,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.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 -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 +263,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 +305,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 +362,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 +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. +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 +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 -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