Annotation of 43BSDReno/usr.sbin/amd/text/INSTALL, revision 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.