Tailoring MCC Interim Linux to Your Taste
*****************************************

There are several changes which you might make to your newly
installed Linux system, whether to make it run better on your machine,
or to adapt it to suit your personal taste.  Some of these changes are
discussed in the following sections of this document.


Recompiling the kernel
======================

There are many good reasons why you might wish, or even need, to
recompile the kernel.  You may wish to remove or include drivers or file
systems, to add some of the available patches, to support your own
national keyboard, to remove unnecessary features such as maths
coprocessor emulation, or to add support for more than 16 Mb of RAM.

To recompile the kernel, you should install the gcc and linux
packages from the MCC distribution.  Then `cd' to `/usr/src/linux-mcc'.
Edit the Makefile to choose your national keyboard, default SVGA mode,
etc, as described in the `README' file in that directory.  Then type

     make config
     make dep
     make
     ./install

The last command installs the newly compiled kernel in /etc and uses
LILO to prepare to boot from it.  Reboot, login as root, and type the
command `psupdate' immediately.  This changes the file `/etc/psdatabase'
so that the `ps' commands work with the new kernel.  The `install'
script also saves the old `/etc/Image' as `/etc/Image.old'.  This should
allow you to boot using LILO with the option `linux.old' if you have
any difficulty booting with the new kernel.

*Note*: Several people have commented on the fact that this release
puts the include files in `/usr/include/asm' and `/usr/include/linux'
in the directory `/usr/include' rather than in `/usr/src/linux(-mcc)'.
This is actually more convenient if you are not recompiling the kernel
repeatedly.  It means that (1) the C compiler works without installing
the kernel sources, and (2) it continues to work after you delete the
kernel sources.  Nevertheless, if you are doing a lot of work with
different kernels, you may find it more convenient to move these two
directories and their contents to `/usr/src/linux/include', and put
symbolic links to them in the `/usr/include' directory:

     mkdir -p -m 755 /usr/src/linux /usr/src/linux/include
     (cd /usr/include;tar cf - asm include)|(cd /usr/src/linux/include; \
      tar xvfp -)
     rm -rf /usr/include/asm /usr/include/linux
     ln -s /usr/src/linux/include/* /usr/include


Setting up Western Digital Ethernet cards
=========================================

The `standard' kernel as distributed by Linus Torvalds currently
contains support only for Western Digital Ethernet cards.  These should
be installed with the two jumpers set to `soft'.  It is a good idea to
have the DOS program `EZSETUP' to hand, so that you can configure the
card that way in case `wdsetup' doesn't work.  The file
`/etc/inet/README.wdsetup' is installed as part of the tcpip package,
and contains more information about this program.

Login as root, then `cd /etc/inet'.  You should configure the card
before starting the networking software; otherwise you must (after
issuing `shutdown -h', of course) press the `RESET' button or switch
the power off and on before the changes take effect.  Give the command

     ./wdsetup -a 280

to set the card's address to an appropriate value.  If this doesn't
work, you need to read the file `README.wdsetup' for more information.


Configuring the tcpip package
=============================

The TCP/IP programs included in this release of MCC interim Linux
will not work unless you use a version of the kernel which includes
TCP/IP and, if you wish, NFS.  The default kernel on the boot disk does
include both TCP/IP and NFS.  This software should work even if you
have no Ethernet card, though you will need to comment out the last line
beginning with `$CONFIG' in `/etc/rc.net'.  In that case, of course,
you cannot contact other machines.

The kernel source supplied, like the compiled kernels, contains only
the Ethernet drivers contained in Linus Torvald's official release of
the kernel.  If you want support for one of the other Ethernet cards,
you must get patches from somewhere else and install them before
recompiling the kernel.  A recent version of these patches is available
by anonymous ftp from `ftp.mcc.ac.uk' in the directory
`/pub/linux/newether'.

After installing the tcpip package, give the command
`/etc/install.net'.  The following dialogue ensues:

     # /etc/install.net
     Enter IP Address for avl0 (aaa.bbb.ccc.ddd):130.88.201.62
     Enter Net Address for avl0 (aaa.bbb.ccc.0):130.88.201.0
     Enter Router Address for avl0 (aaa.bbb.ccc.ddd):130.88.200.251
     Enter Domain Name for avl0:mcc.ac.uk
     130.88.201.62	avl0.mcc.ac.uk avl0
     Name Server for Domain mcc.ac.uk (aaa.bbb.ccc.ddd):130.88.200.6
     You may add more nameservers by editing /etc/resolv.conf

Here instead of `avl0' your hostname should appear, and you must
give your own addresses instead of `130.88.x.x', and your own domain
instead of `mcc.ac.uk'.  Before you try to run any TCP/IP software, you
might need to run `wdsetup'.  See README.adapt.

After installing tcpip, you should edit the file `/etc/inetd.conf' to
uncomment any services you wish to allow.  To enable a service, remove
the initial `#'.  If `inetd' is already running, you must send it
SIGHUP or reboot after changing this file; otherwise the changes have
no effect.  Some of these services, particularly `tftp', may expose
your machine to crackers if you have a network connection.  Read the
man pages and be cautious!

If you have no local domain name server, you may wish to delete the
file `/etc/resolv.conf' and to remove `bind' from the file
`/etc/host.conf'.

I have supplied the `named' daemon, but I make no attempt to teach
beginners how to set it up!  There is some information in the man page
for `named', but it is very sparse and needs to be filled out with more
comprehensive examples.  In any case, it should not be necessary to run
`named' in most installations.

*Note*: These programs are compiled from the most recent source I
could find.  I have fixed several bugs, but they are still *buggy*.  I
have included them in the release partially because so many people ask
for them, and partially because I use them myself.


Editing the system configuration files
======================================

After installing this version of MCC interim Linux, you may wish to
customise it.  The following files should probably be edited:

`/etc/rc.local'
     This contains the command which sets your host name.  Change
     `linux' to the actual hostname of your machine.  This is important
     if you intend to use TCP/IP.

`/etc/mtools'
     See README.linux.

`/etc/passwd'
     If you wish to add a new user, edit this file.  The format is
          pw_name:pw_passwd:pw_uid:pw_gid:pw_gecos:pw_dir:pw_shell
     where the fields have the meanings defined in the file
     `/usr/include/pwd.h': user name, encrypted password, user ID
     number, group ID number, real name, login directory, login shell.

`/etc/lilo/config'
     This contains the command which controls what happens whenever
     LILO is reinstalled.  You must give the command `/etc/lilo/install'
     whenever the system file (`/etc/Image' by default) is modified
     (for example, by the `rdev' command) or moved: LILO does not use
     the directory structure to find the file.

`/etc/lilo/disktab'
     If you have one of the SCSI disks for which Linux cannot get the
     geometry, you must edit this file before installing LILO;
     otherwise the installation will fail.

`/etc/inetd.conf'
     All services for inetd are commented out.  See README.adapt.

No other files should *need* to be changed.
