home *** CD-ROM | disk | FTP | other *** search
- Installation Notes for Amd.
-
- NOTE: Please read all of this before starting.
- It is not very long and may save you time in the long term.
-
- 1. ``Getting started...''
-
- If you don't know what an Automounter does for you then read the
- documentation in doc/amdref.texinfo. You can either use TeX to print
- it out or read it directly using the GNU info package.
-
- 2. ``Find out what version of UN*X you are running...''
-
- To install Amd you need a port for your version of UN*X. In the
- config/ directory are several files called os-*.h. One of these
- should correspond to your version of UN*X. Run the program
- "config/os-type" to find out what system Amd thinks you have. Check
- the correspondong config/os-??? file to make sure that you and Amd are
- in agreement. If os-type returns "unknown" then either no-one has yet
- done a port, or your version of UN*X is so braindead that a port is
- not possible (e.g. System V without reliable signals). The current
- known operating systems (grouped by architecture) are:
-
- acis43 (AOS) ACIS 4.3BSD on an IBM RT
- aix3 AIX 3.1
- aux Apple A/UX
- bsd44 4.4 BSD on whatever
- concentrix Concentrix on an Alliant
- dgux Data General AViiON
- fpx4 Celerity FPX 4.1/2
- hlh42 4.2 BSD on HLH Orion 1/05
- hpux HP-UX 6.* and 7.* on a HP9000/300
- irix SGI Iris
- next NeXT
- riscix 4.3 BSD on an Acorn Archimedes
- sos3, sos4 SunOS 3.* and 4.* on a Sun-3 and Sun-4
- u2_2 Ultrix 2.2 (or 2.*?) on a VAX (broken)
- u3_0 Ultrix 3.0/4.0 (or 3.*?) on a VAX (broken)
- umax43 4.3 BSD on an Encore Multimax
- xinu43 More/BSD (4.3 BSD) on a VAX or HP9000/300
-
- + some others...
-
- If you do define a new operating system type foo, you may need to create a
- file called Makefile.foo which defines the special Makefile parameters.
-
- 3. ``Hacking the Makefile...''
-
- Amd tries very hard to determine what type of machine you are using
- and how best to compile itself. If this does not work then you will
- have to find some heuristic which can differentiate your
- configuration. You may need to edit "config/arch" and
- "config/os-type". If you do make sure your changes can cope if
- /etc/motd is missing and please send it to the address below.
-
- To check whether things are working, run:
- sh config/arch
- sh config/os-type
-
- You may care to tailor some site specific preferences in "Makefile.com". The
- variables most likely to be changes are at the top. Any changes should be
- added to a file called config/Makefile.local (if they are applicable to all
- operating systems at your site) or Makefile.local.foo (where foo is the OS type
- as determined in part 2).
-
- Additionally, some configuration options may be altered in
- "config/Makefile.config". This means that you should not need to edit any
- distributed files apart from "config/Makefile.config". As a minimum, you
- should check:
-
- * You are using the correct C compiler. Amd, as shipped, does not use GCC.
- Note that using GCC version 1.34 or later (e.g. 1.36) gives structure
- passing problems with some parts of Sun's RPC library at least on Sun-4's.
- The current workaround is to use the system CC to compile the part of the
- automounter that gets hit by this problem. [[This is not the same problem
- that is fixed by -fpcc-struct-return.]] Amd contains no "register"
- declarations, so using old PCC based code generators is probably bad news.
-
- To use GNU CC, add the following to config/Makefile.local{.os-type}:
-
- CC = gcc ${GCCOPTS}
-
- * The installation directory (ETC) is set up correctly.
-
- * If you are running tests then it may be worth switching on the DEBUG flag
- which will cause a running commentary to be printed to the log file. To
- compile in the debug code, add the following to
- config/Makefile.local{.os-type}:
-
- DEBUG = -DDEBUG
- CCOPTS = -g
-
- The -g option will also allow you to use gdb. Using dbx is not advisable
- since it puts a breakpoint on exit() which causes all of Amd's child
- processes to dump core. gdb does not suffer from this problem.
-
- 4. ``Build the executable...''
-
- Now you need to compile the automounter. To do this you type:
-
- make
-
- in the top-level directory. You can also go into each of the program
- directories and just run make there.
-
- If you are porting to a new machine you may want to do:
-
- make OS=foo
-
- where foo is the name of your version of UN*X as determined in part 1, until
- you have made the changes to config/os-type and/or config/arch. When the
- compilation is complete you will end up with a program called "A.arch_foo/amd".
-
- Try running:
-
- A.arch_foo/amd -v
-
- and check the output. It should look something like:
-
- Copyright (c) 1990 Jan-Simon Pendry
- Copyright (c) 1990 Imperial College of Science, Technology & Medicine
- Copyright (c) 1990 The Regents of the University of California.
- amd 5.2.1.5 of 90/09/16 13:22:46 5.3Alpha5 #0: Sun Sep 16 13:23:28 BST 1990
- Built by pendry@okeeffe.Berkeley.EDU for a tahoe running bsd44 (big-endian)
- Map support for: root, passwd, nis, file, error.
- fstypes: ufs, nfs, nfsx, host, link, program, auto, direct, toplvl, error.
-
- Make sure the O/S and architecture types were correctly derived during the
- build.
-
- 5. ``Installation...''
-
- If you are not just testing Amd, then you can install it by typing:
-
- make install
-
- to install "A.arch_foo/amd" in "/usr/local/etc/amd" (or as otherwise
- modified in part 3).
-
- 6. ``Update /etc/rpc''
-
- Amq uses Sun RPC to talk to Amd using program number 300019 which has
- been registered with Sun. Add the following lines to /etc/rpc or your
- YP or Hesiod master:
-
- # Automount control protocol
- amd 300019 amq
-
- Amd does not require this addition - it just keeps rpcinfo happy.
-
- 7. ``Hanging your machine...''
-
- WARNING: THIS MAY HANG YOUR MACHINE IF YOU GET IT WRONG.
-
- Running Amd with a carelessly thought out mount map can cause your Amd to
- enter a deadlock inside the kernel. For example, attempting to automount a
- directory which is automounted. This will cause the automounter to issue a mount
- request causing the kernel to send an NFS request back to the same automounter,
- which is currently stuck in a system call and unable to respond - even
- kill -KILL won't get you out of this one.
-
- There is nothing you can do to fix it without rebooting your machine, so...
-
- Find a diskless workstation and play with that first before trying this on
- your main 200 user service machine (unless you hate your users). Something
- like a diskless Sun-4 is best for development testing - you can compile on a
- Sun-4 server and run the binary on the diskless node. They reboot very fast
- as well between tests.
-
- Now you can try running Amd. Please read the documentation in doc/Amd.tex
- for more details. The configuration file "maps/a_master" provides a sample for
- you to play with. Something like:
-
- ./amd -c 40 -D test,nodaemon /tmp/amnt ../maps/a_master &
-
- is good for testing. Note that Amd will clean up correctly if you send it a
- SIGINT or SIGTERM. Other signals are either ignored or will blow it away,
- leaving your machine in a potentially dangerous state.
-
- Remember that Amd needs to run as root in order to do mounts/unmounts
- though it does check this condition somewhere near line one of main().
- It will also need write permission in the working directory if you
- have built it with DEBUG defined and your system's mount table is
- reflected in a file. In this case watch out for NFS stepping in and
- mapping root to nobody.
-
- 8. ``Report what happened...''
-
- If anything interesting happened, eg it didn't work, please report it to me
- -- Jan-Simon Pendry <jsp@doc.ic.ac.uk> -- as detailed in the README file.
-
- KNOWN PROBLEMS - Contact me for more details
-
- * Amd does not work correctly on a DecStation 3100 system running
- Ultrix 3.1 or 4.0. This is a bug in Ultrix. This is caused by a data structure
- size problem in the Ultrix kernel. Last I heard, this was still not fixed in
- Ultrix 4.0. Patches are available for anonymous ftp from dip.cs.wisc.edu:
- pub/nfs_subr.o-3.1 (For Ultrix 3.1 -- probably breaks with 3.1C/D)
- pub/nfs_subr.o-4.0 (For Ultrix 4.0, rev 179)
- Thanks to Bruce Cole <cole@cs.wisc.edu> for making them available.
-
- $Id: INSTALL,v 5.2.1.3 91/03/03 21:25:18 jsp Alpha $
-