From 766ad7d0b8abfcccfde8001e0c6c45e8e61e7ed1 Mon Sep 17 00:00:00 2001 From: Paul Mackerras Date: Sun, 26 May 1996 23:56:40 +0000 Subject: [PATCH] mods from Al --- README.linux | 155 +++++++++++++--------------------------- chat/Makefile.linux | 15 ++-- pppstats/Makefile.linux | 4 +- 3 files changed, 59 insertions(+), 115 deletions(-) diff --git a/README.linux b/README.linux index 4b5a05a..94d165a 100644 --- a/README.linux +++ b/README.linux @@ -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 diff --git a/chat/Makefile.linux b/chat/Makefile.linux index 7f9cbb3..f46f884 100644 --- a/chat/Makefile.linux +++ b/chat/Makefile.linux @@ -1,25 +1,24 @@ -# $Id: Makefile.linux,v 1.5 1995/12/18 03:32:43 paulus Exp $ +# $Id: Makefile.linux,v 1.6 1996/05/26 23:56:36 paulus Exp $ CDEF1= -DTERMIOS # Use the termios structure -CDEF2= -DPIDSTRING # I like ascii pid values -CDEF3= -DSIGTYPE=void # Standard definition -CDEF4= -UNO_SLEEP # Use the usleep function -CDEF5= -DFNDELAY=O_NDELAY # Old name value -CDEFS= $(CDEF1) $(CDEF2) $(CDEF3) $(CDEF4) $(CDEF5) +CDEF2= -DSIGTYPE=void # Standard definition +CDEF3= -UNO_SLEEP # Use the usleep function +CDEF4= -DFNDELAY=O_NDELAY # Old name value +CDEFS= $(CDEF1) $(CDEF2) $(CDEF3) $(CDEF4) CFLAGS= -O2 $(CDEFS) all: chat chat: chat.o - $(CC) -O2 -o chat chat.o + $(CC) -s -O2 -o chat chat.o chat.o: chat.c $(CC) -c $(CFLAGS) -o chat.o chat.c install: chat mkdir -p $(BINDIR) - install -c chat $(BINDIR) + install -s -c chat $(BINDIR) install -c chat.8 $(MANDIR)/man8 clean: diff --git a/pppstats/Makefile.linux b/pppstats/Makefile.linux index 37add73..36af5f8 100644 --- a/pppstats/Makefile.linux +++ b/pppstats/Makefile.linux @@ -1,6 +1,6 @@ # # pppstats makefile -# $Id: Makefile.linux,v 1.1 1995/06/30 01:58:28 paulus Exp $ +# $Id: Makefile.linux,v 1.2 1996/05/26 23:56:40 paulus Exp $ # PPPSTATSRCS = pppstats.c @@ -18,7 +18,7 @@ CFLAGS = $(COPTS) $(COMPILE_FLAGS) all: pppstats install: pppstats - $(INSTALL) -c pppstats $(BINDIR)/pppstats + $(INSTALL) -s -c pppstats $(BINDIR)/pppstats $(INSTALL) -c -m 444 pppstats.8 $(MANDIR)/man8/pppstats.8 pppstats: $(PPPSTATSRCS) -- 2.39.2