updated cpp defines
[ppp.git] / README.linux
index 4b5a05aeaa9ce9ca2659a9445e516e62ed676178..94d165aa0444fef2e8cfe3d3b124faaf74bac528 100644 (file)
@@ -12,6 +12,9 @@ Al Longyear         longyear@netcom.com
     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
@@ -44,7 +47,7 @@ about it.)
 
 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
@@ -152,10 +155,8 @@ CHANGES FROM THE PREVIOUS VERSION
 
 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.
+The next version of pppd, 2.3, is designed to contain a demand dial
+function directly.
 
 
 
@@ -226,33 +227,6 @@ 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.
 
-An important note about the use of modules for PPP:
-
-The module support for the Linux system supports a concept of configuring
-the external names so that they pertain to only a specific version of the
-kernel. This is enabled by answering "y)es" to the configuration question
-of "Set version information on all symbols for modules?".
-
-There is a problem with enabling this and the PPP code under some
-circumstances. It will not work if BOTH of the following is true:
-
-a) You elect to load the PPP driver into the kernel; and
-b) You want version information for all other modules.
-
-The problem is one of the module code itself. It is not able to recognize
-that the symbols loaded into the kernel symbol table may not have been
-defined with the new names for the symbols. The symbols defined by the
-PPP code will not have version information attached to them.
-
-The solution to the problem is simple. Don't do both things at the same
-time. The means that it is valid if you either (a) don't use version
-information; or (b) don't put the PPP code into the kernel (use it as a
-module instead) if you want to use version information.
-
-I will see what I can do to get around this limitation. However, for the
-time being, this is a limitation.
-
-
 
 1. Issue the command:
 
@@ -263,6 +237,7 @@ contains this README.linux file. The result of this will be to build a
 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
@@ -312,79 +287,8 @@ You are free to run the installation script as many times as you
 wish. The additional executions will only change the files which have
 not been changed.
 
-3. Verify the Makefile in the kernel.
-
-The drivers/net/Makefile in the kernel must have the proper definition
-for the BSD compression module. As of 2.2.0a, the code will only build
-as a module. This means that if you have had an earlier version of the
-PPP logic and this is an update to the kernel then it is possible that
-the patch to the Makefile did not work and you will be left with a
-kernel which will not build correctly.
-
-Please, read carefully the following.
-
-Look that the kernel version which you are building. If the version is
-1.2.x (1.2.0 though 1.2.99999, whatever) then use the set of entries
-for the 1.2 kernel. If the kernel is for 1.3.x and resembles the lines
-in the 1.3 kernel entry then use those. There is a point in the early
-1.3 kernels where the Makefile actually was that of the 1.2 series.
-Please don't just use the 1.3 kernel change unless your makefile
-RESEMBLES the patch indicated.
-
-I don't know how to stress this enough. If you choose the wrong one
-then the makefile will not work. Your kernel build will fail. In that
-case, use the other one. There are only two variations. Please choose
-the proper one. Only one will work.
-
-Check the makefile. If your kernel is 1.2 then it should be similar to
-the following:
-
-ifdef CONFIG_PPP
-NETDRV_OBJS := $(NETDRV_OBJS) ppp.o
-CONFIG_SLHC = CONFIG_SLHC
-else
-MODULES := $(MODULES) ppp.o
-endif
-MODULES := $(MODULES) bsd_comp.o
-
-ifdef CONFIG_SLIP
-NETDRV_OBJS := $(NETDRV_OBJS) slip.o
-CONFIG_SLHC = CONFIG_SLHC
-else
-MODULES := $(MODULES) slip.o
-endif
-
-The critical entry is the line which says "MODULES := $(MODULES) bsd_comp.o"
-and that you don't have "NETDRV_OBJS := $(NETDRV_OBJS) ppp.o bsd_comp.o".
-
-IF YOU HAVE THE 1.3 KERNEL, the following is the expected pattern in the
-Makefile.
-
-ifeq ($(CONFIG_PPP),y)
-L_OBJS += ppp.o
-CONFIG_SLHC_BUILTIN = y
-else
-  CONFIG_SLHC_MODULE = y
-  M_OBJS += ppp.o
-  endif
-endif
-ifneq ($(CONFIG_PPP),n)
-  M_OBJS += bsd_comp.o
-endif
-
-ifeq ($(CONFIG_SLIP),y)
-L_OBJS += slip.o
-CONFIG_SLHC_BUILTIN = y
-else
-  ifeq ($(CONFIG_SLIP),m)
 
-Again, ensure that the statement reads "L_OBJS += ppp.o" and not
-"L_OBJS += ppp.o bsd_comp.o".
-
-
-4. Build the kernel.
+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
@@ -404,6 +308,17 @@ upgrading the module package however.
 Instructions on building the kernel with modules are given in the
 README.modules in the kernel source directory.
 
+
+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
@@ -413,6 +328,7 @@ make
 
 from the top level directory where this README.linux file is located.
 
+
 6. Install the programs.
 
 You may use the command
@@ -424,12 +340,14 @@ to install the various programs. They will be installed into the
 executables. The directory name is called BINDIR and is set in the
 file 'linux/Makefile.linux'.
 
+
 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.
+
+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
@@ -456,6 +374,33 @@ Without the BSD compression module, the PPP driver will not accept PPP's
 compression control protocol for BSD compression.
 
 
+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.
+
+
 
 GENERAL NETWORK CONFIGURATION