Annotation of 43BSDReno/usr.sbin/amd/text/INSTALL, revision 1.1.1.1

1.1       root        1: Installation Notes for Amd.
                      2: 
                      3: NOTE: Please read all of this before starting.
                      4:       It is not very long and may save you time in the long term.
                      5: 
                      6: 1.  ``Getting started...''
                      7: 
                      8: If you got this release in a shar file then run the shell script Configure in
                      9: the top directory.  If you got this release in a tar file then you are all
                     10: set (though if you feel left out you can run Configure anyway).
                     11: 
                     12: 2.  ``Find out what version of UN*X you are running...''
                     13: 
                     14: To install Amd you need a port for your version of UN*X.  In this directory
                     15: are several files called os-*.h.  One of these should correspond to your
                     16: version of UN*X.  Look at the comments at the top of each file to determine
                     17: which one applies to you.  If none of them do, then either no-one has yet
                     18: done a port, or your version of UN*X is so braindead that a port is not
                     19: possible (e.g. System V without reliable signals).  Run the program
                     20: "config/os-type" in the current directory to see whether you and Amd are in
                     21: agreement about your operating system type.  The current known operating
                     22: systems (grouped by architecture) are:
                     23: 
                     24:        acis43                  (AOS) ACIS 4.3BSD on an IBM RT
                     25:        aix3                    AIX 3.1
                     26:        aux                     Apple A/UX
                     27:        bsd44                   4.4 BSD on whatever
                     28:        concentrix              Concentrix on an Alliant
                     29:        fpx4                    Celerity FPX 4.1/2
                     30:        hlh42                   4.2 BSD on HLH Orion 1/05
                     31:        hpux                    HP-UX 6.* and 7.* on a HP9000/300
                     32:        riscix                  4.3 BSD on an Acorn Archimedes
                     33:        sos3, sos4              SunOS 3.* and 4.* on a Sun-3 and Sun-4
                     34:        u2_2                    Ultrix 2.2 (or 2.*?) on a VAX (broken)
                     35:        u3_0                    Ultrix 3.0/4.0 (or 3.*?) on a VAX
                     36:        umax43                  4.3 BSD on an Encore Multimax
                     37:        utx32                   UTX/32 Rel2.1a on a Gould (not yet complete)
                     38:        xinu43                  More/BSD (4.3 BSD) on a VAX or HP9000/300
                     39: 
                     40:        + some others...
                     41: 
                     42: If you do define a new operating system type foo, you may care to create a
                     43: file called Makefile.foo which defines the special Makefile parameters.
                     44: 
                     45: 3.  ``Hacking the Makefile...''
                     46: 
                     47: Some UN*X programs come with a Makefile which has to be manually configured
                     48: for your particular operating system and hardware.  However, Amd tries very
                     49: hard to determine what type of machine you are using and how best to compile
                     50: itself.  If this does not work then you will have to find some heuristic
                     51: which can differentiate your configuration.  You may need to edit
                     52: "config/arch" and "config/os-type".  If you do make sure your changes can
                     53: cope if /etc/motd is missing and please send it to the address below.
                     54: 
                     55: You may care to tailor some site specific preferences in "Makefile.com".  The
                     56: variables most likely to be changes are at the top.  Any changes are best put
                     57: in the file Makefile.local (if they are applicable to all operating systems
                     58: at your site) or Makefile.local.foo (where foo is the OS type as determined
                     59: in part 1).
                     60: 
                     61: Additionally, some configuration options may be altered in
                     62: "config/Makefile.config".  This means that you should not need to edit any
                     63: distributed files apart from "config/Makefile.config".  As a minimum, you
                     64: should check:
                     65: 
                     66: * You are using the correct C compiler.  Amd, as shipped, does not use GCC.
                     67:   Note that using GCC version 1.34 or later (e.g. 1.36) gives structure
                     68:   passing problems with some parts of Sun's RPC library at least on Sun-4's.
                     69:   The current workaround is to use the system CC to compile the part of the
                     70:   automounter that gets hit by this problem.  [[This is not the same problem
                     71:   that is fixed by -fpcc-struct-return.]]  Amd contains no "register"
                     72:   declarations, so using old PCC based code generators is probably bad news.
                     73: 
                     74: * The installation directory (ETC) is set up correctly.
                     75: 
                     76: * If you are running tests then it may be worth switching on the DEBUG flag
                     77:   which will cause a running commentary to be printed to the log file.
                     78: 
                     79: 4.  ``Build the executable...''
                     80: 
                     81: Now you need to compile the automounter.  To do this you type:
                     82: 
                     83:        make
                     84: 
                     85: If you are porting to a new machine you may want to do:
                     86: 
                     87:        make OS=foo
                     88: 
                     89: where foo is the name of your version of UN*X as determined in part 1, until
                     90: you have made the changes to config/os-type and/or config/arch.  When the
                     91: compilation is complete you will end up with a program called "A.arch_foo/Amd".
                     92: 
                     93: Try running:
                     94: 
                     95:        A.arch_foo/amd -v
                     96: 
                     97: and check the output.  It should look something like:
                     98: 
                     99:   amd 5.2 of 90/06/23 23:55:04 Rel5.2 #0: Sat Jun 23 16:24:42 PDT 1990
                    100:   Built by [email protected] for a tahoe running bsd44 (big-endian)
                    101:   Map support for: root, passwd, nis, file, error.
                    102: 
                    103: Make sure the O/S and architecture types were correctly derived during the
                    104: build.
                    105: 
                    106: 5.  ``Installation...''
                    107: 
                    108: If you are not just testing Amd, then you can install it by typing:
                    109: 
                    110:        make install
                    111: 
                    112: to install "A.arch_foo/Amd" in "/usr/local/etc/amd" (or as otherwise
                    113: modified in part 2).
                    114: 
                    115: 6.  ``Update /etc/rpc''
                    116: 
                    117: Amq uses Sun RPC to talk to Amd using program number 300019 which has
                    118: been registered with Sun.  Add the following lines to /etc/rpc or your
                    119: YP or Hesiod master:
                    120: 
                    121: # Automount control protocol
                    122: amd    300019  amq
                    123: 
                    124: 7.  ``Hanging your machine...''
                    125: 
                    126: WARNING:  THIS MAY HANG YOUR MACHINE IF YOU GET IT WRONG.
                    127: 
                    128: Running Amd with a carelessly thought out mount map can cause your Amd to
                    129: enter a deadlock inside the kernel.  For example, attempting to automount a
                    130: directory which is automounted can cause the automounter to issue a mount
                    131: request causing the kernel to send an NFS request back to the same automounter,
                    132: which is currently stuck in a system call and unable to respond - even
                    133: kill -KILL won't get you out of this one.
                    134: 
                    135: There is nothing you can do to fix it without rebooting your machine, so...
                    136: 
                    137: Find a diskless workstation and play with that first before trying this on
                    138: your main 200 user service machine (unless you hate your users).  Something
                    139: like a diskless Sun-4 is best for development testing - you can compile on a
                    140: Sun-4 server and run the binary on the diskless node.  They reboot very fast
                    141: as well between tests.
                    142: 
                    143: Now you can try running Amd.  Please read the documentation in doc/Amd.tex
                    144: for more details.  The configuration file "a_master" provides a sample for
                    145: you to play with.  Something like:
                    146: 
                    147:        ./amd -c 40 -D test,nodaemon /tmp/amnt a_master &
                    148: 
                    149: is good for testing.  Note that Amd will clean up correctly if you send it a
                    150: SIGINT or SIGTERM.  Other signals are either ignored or will blow it away,
                    151: leaving your machine in a potentially dangerous state - usually a reboot is
                    152: all that is required to fix it though ;-)
                    153: 
                    154: Remember that Amd needs to run as root in order to do mounts/unmounts though
                    155: it does check this condition somewhere near line one of main().  It will also
                    156: need write permission in the working directory if you have built it with
                    157: DEBUG defined.  Watch out for NFS stepping in and mapping root to nobody.
                    158: 
                    159: 8.  ``Report what happened...''
                    160: 
                    161: If anything interesting happened, eg it didn't work, please report it to me
                    162: -- Jan-Simon Pendry <[email protected]> -- as detailed in the README file.
                    163: 
                    164: KNOWN PROBLEMS - Contact me for more details
                    165: 
                    166: * Amd does not work correctly on a DecStation 3100 system running Ultrix 3.1.
                    167:   This is a bug in Ultrix.  Quite how the Ultrix mount command works is a
                    168:   total mystery, but in any case the mount system call does not behave as
                    169:   documented.  Possibly fixed in Ultrix 4.0?
                    170: 
                    171: * It is reported that amd deadlocks the kernel on a Sequent Symmetry.
                    172:   Obviously this is a kernel bug.
                    173: 
                    174: $Id: INSTALL,v 5.2 90/06/23 22:21:31 jsp Rel $

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.