Before you can configure the networking software you must obtain all of the bits and pieces that make it up. These include the current version of the kernel code (version 1.0 or later), the correct system libraries, the tcp/ip configuration programs and files (e.g. /sbin/ifconfig, /etc/hosts etc.) and finally a set of network application programs (such as telnet, ftp, rlogin etc.).
If you obtained Linux from a distribution you may already have all that you need. Check and make sure that you do. For example, some Linux distributions come with all of the network configuration files, binaries, libraries and kernel installed, so there's no reason to get the following files.
NOTE: they may be in directories and files different to those specified in this HOWTO document
If you DO have the network software, skip to the `Configuring the kernel' section. If you DO NOT have the network software follow the following directions.
Version 1.2.* of the Linux kernel is the production version. Any of the Linux kernels 1.3.* are development kernels. If you feel at all concerned about the possibility of having to patch and modify the kernel source, then you should stick to this release, as it will do most of what you want it to. In the case of the networking code though, I strongly suggest you just take a deep breath and follow the newer releases of code, as there have been many changes in the newer version kernels that affect networking. I know you hear it from everyone and everywhere, but when trying out any new version of kernel software you should always ensure that you have sufficient backups of your system just in case something goes seriously wrong while you are testing.
The current kernel version is found in:
ftp.funet.fi
/pub/OS/Linux/PEOPLE/Linus/v1.2/linux-1.2.13.tar.gz
This is a gzipped file, so you will need gzip to uncompress it.
To install it, try:
# cd /usr/src
# mv linux linux.old
# gzip -dc linux-1.2.13.tar.gz | tar xvf -
You may also find some files called patch-1.2.1.gz ...
in the same
directory. These are patch files. If you have a linux kernel that is
version 1.2.1 then what this means is that you have linux kernel version
1.2.0 with patch 1 applied. So you don't need to patch 1. If there are any
patch files that are greater than the version of kernel you have, you should
obtain all of those above and apply them in sequence
with something like the following commands:
# cd /usr/src
# for patchfile in .../patch*
> do
> gzip -dc $patchfile | patch -p0 2>>patch.errs
> done
...
Check the output file (patch.errs) and search for the string fail
.
If you can't find it then all of the patch files were applied ok. If it is
there, then at least one of the patch files didn't apply correctly. If this
happens what you should do is start again from a clean kernel archive and
apply the patches one by one until you find the patch file that failed. If you
can't work out why it didn't work then report it as a problem.
You'll want at least version 4.4.2 of libc, as there were problems with earlier version that affected subnet masks.
The current a.out libraries (libc-4.6.27) can be found in:
sunsite.unc.edu
/pub/Linux/GCC/
You will need at least the following files:
When installing libc.4.6.27 you MUST read release.libc-4.6.27 before you install the libraries. Please note that to use release 4.5.26 or later you will also need at least GCC version 2.6.2 and Linux kernel 1.1.52 or later.
You will need the utility suite that provides tools to configure your network support.
The current NET-2 utility suite is available from:
ftp.linux.org.uk
/pub/linux/Networking/PROGRAMS/NetTools/net-tools-1.2.0.tar.gz
Because the kernel networking code is still changing some changes to the network tools have been necessary as new kernels are released, so you will need to choose the version that is appropriate for the kernel version you intend to use.
The filenames reflect the earliest version of kernel that the tools will work with. Please choose the filename whose version equals, or is less than the version of kernel source you intend to use.
To build and install the tools, you should try:
# cd /usr/src
# mkdir net-tools
# cd net-tools
# gzip -dc net-tools-1.2.0.tar.gz | tar xvf -
# make
This will automatically run the Configure.sh
script. If everything
makes ok, then:
# make install
If you use a kernel version 1.1.26 or earlier you should look in:
ftp.linux.org.uk
/pub/linux/Networking/PROGRAMS/Other/net032
In this directory you will find three versions of the network tools. The following table lists net-032 package name with the relevant kernel versions:
net-0.32d-net3.tar.gz 1.1.12+
net-0.32b.tar.gz 1.1.4+
net-0.32.old.tar.gz pre 1.1.4 kernels
These packages include the essential network configuration programs such as ifconfig, route, netstat etc. These will be discussed later.
You will want a number of network application programs. These are programs
like telnet, ftp, finger and their daemons at
least. Florian La Roche, <[email protected]>
has put together
a fairly complete distribution of network applications in both binary and
source form. The tcp/ip application binaries and some sample config files
are found in:
ftp.funet.fi
/pub/OS/Linux/PEOPLE/Linus/net-source/base/NetKit-A-0.08.bin.tar.gz
/pub/OS/Linux/PEOPLE/Linus/net-source/base/NetKit-B-0.06.tar.gz
If there are newer versions then use the newer versions. Please read the
README
file first just to make sure that you have the
necessary prerequisites.
Florian used to have a binary distribution of the networking applications (the B file) available but it is no longer there, so you will have to build the files yourself. You can use the following procedure:
# cd /usr/src
# gzip -dc NetKit-B-0.06.tar.gz | tar xpvlf -
# cd NetKit-B-0.06
Then, read the README
file. You will need to edit the Makefile
and set the HAVE_SHADOW_PASSWORDS
define appropriately. I don't use
shadow passwords, so I commented it out by placing a #
at the
start of the line. The rest should not need modifying, so then all you should
have to do is:
# make
# make install
IMPORTANT NOTE: Florian has built and prepackaged these tar
files for your convenience. Florian has attempted to make them as
complete as possible and has included a distribution of the binaries
found in the net-tools-n.n.nn
releases. Unfortunately Florian
has chosen not to use the same directory structure as Alan did when he
prepared the installation script for the net-tools. This will mean that
you should be very careful when installing them. Florian will change this
later so that this difference is not a problem, but until then, I suggest
you do the following instead of the above:
- Unpack the binaries somewhere safe:
# cd /usr/src
# mkdir NetKit
# cd NetKit
# gzip -dc NetKit-A-0.07.bin.tar.gz | tar xpvlf -
# gzip -dc NetKit-B-0.06.bin.tar.gz | tar xpvlf -
- Remove Florians copies of the network tools previously described:
# rm ./bin/hostname ./sbin/route ./sbin/ifconfig ./sbin/netstat
# rm ./usr/sbin/arp ./usr/sbin/rarp ./usr/sbin/slattach
- Copy Florian's files into their new home:
# cp -vrpd . /
If you want to add some developmental, or Alpha/Beta test code, such as AX.25 support, you will need to obtain the appropriate support software for those packages. Please check the relevant sections for those packages in this document for more detail.