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.