Annotation of embedaddon/ntp/html/hints/a-ux, revision 1.1

1.1     ! misho       1: -------------
        !             2: INTRODUCTION:
        !             3: -------------
        !             4: Last revision:  06-Jul-1994
        !             5: 
        !             6: Included in this distribution of XNTP V3 is a configuration file suitable
        !             7: for use under Apple's A/UX Version 3.x.x  There is also one for A/UX 2.0.1
        !             8: but it has not been fully tested. To make the executables follow the steps
        !             9: outlined below.
        !            10: 
        !            11: *** NOTE:  You must have gcc installed to successfully compile the current
        !            12: distribution; the native cc supplied with A/UX will NOT correctly compile
        !            13: this source.  See the FAQ in comp.unix.aux for places to obtain gcc from
        !            14: and how to install it.
        !            15: 
        !            16: ----------------------
        !            17: MAKING XNTPD FOR A/UX:
        !            18: ----------------------
        !            19: 
        !            20: First, you need to create the makefiles (after you've downloaded the
        !            21: source, of course):
        !            22: 
        !            23:     % make clean
        !            24:     % make refconf
        !            25: 
        !            26: After that, you should edit Config.local to make sure that BINDIR is
        !            27: correct for where you wish the programs to be "installed". The default
        !            28: (and what I use) is /usr/local/etc. Make sure that DEFS_LOCAL and
        !            29: CLOCKDEFS are commented out! Presently, only the LOCAL_CLOCK/REFCLOCK
        !            30: clock is used and supported.
        !            31: 
        !            32: 
        !            33: After this is done (you should be told that your system is A/UX 3), make
        !            34: 'xntpd' (the options to 'gcc' are held in compilers/aux3.gcc):
        !            35: 
        !            36:     % make
        !            37: 
        !            38: I do not normally use the `make install' option and so have not verified its
        !            39: compatibility with A/UX.  Rather, I pull out each of the executables and
        !            40: place them in the locally appropriate locations.
        !            41: 
        !            42: ---------------
        !            43: STARTING XNTPD:
        !            44: ---------------
        !            45: 
        !            46: At this point you need to set things up so that 'xntpd' is started upon
        !            47: boot-up. You can do this in 1 of 2 ways: either add entries in /etc/inittab
        !            48: or, more ideally, create and use an /etc/rc.local file. Since rc.local is
        !            49: what I recommend, here's how you do it:
        !            50: 
        !            51: By default, A/UX doesn't have rc.local, so you'll need to add the following to
        !            52: /etc/inittab:
        !            53: 
        !            54:     net6:2:wait:/etc/syslogd           # set to "wait" to run a syslog daemon
        !            55: +   jmj0:2:wait:/etc/rc.local 1>/dev/syscon 2>&1       # Local stuff
        !            56:     dbg2::wait:/etc/telinit v  # turn off init's verbose mode
        !            57: 
        !            58: Now, the look of a sample /etc/rc.local is as follows:
        !            59: 
        !            60:     #!/bin/sh
        !            61:     :
        !            62:     : rc.local
        !            63:     :
        !            64:     #  @(#)Copyright Apple Computer 1987       Version 1.17 of rc.sh on 91/11/08 15:56:21 (ATT 1.12)
        !            65:     
        !            66:     
        !            67:     #  Push line discipline/set the device so it will print
        !            68:     /etc/line_sane 1
        !            69:     echo " "
        !            70:     echo "Entering rc.local..."
        !            71:     
        !            72:     set `/bin/who -r`
        !            73:     if [ "$7" = 2 ]
        !            74:     then
        !            75:         /bin/echo " now setting the time..."
        !            76:         /usr/local/etc/ntpdate -s -b <host.domain>
        !            77:         sleep 5
        !            78:     #
        !            79:     # start up 'xntpd' if we want
        !            80:     #
        !            81:         if [ -f /etc/ntp.conf ]
        !            82:         then
        !            83:        /bin/echo " setting tick and tickadj..."
        !            84:        /usr/local/etc/tickadj -t 16672 -a 54
        !            85:        sleep 5
        !            86:        /bin/echo " starting xntpd..."
        !            87:        /usr/local/etc/xntpd <&- > /dev/null 2>&1
        !            88:        sleep 5
        !            89:         fi
        !            90:     #
        !            91:     fi
        !            92:     
        !            93:     echo "Leaving rc.local..."
        !            94: 
        !            95: There are a few things to notice about the above:
        !            96: 
        !            97:     o When run, 'ntpdate' forces your clock to the time returned by the
        !            98:       host(s) specified by <host.domain> (you'll need to replace this
        !            99:       be the IP address(es) of your timehosts. This is good since it gets
        !           100:       things close to start off with. You can use more than one time
        !           101:       server.
        !           102: 
        !           103:     o 'tickadj' is also called. This does two things: changes the
        !           104:       default value of 'tick' (which the the amount of time, in ms, that
        !           105:       is added to the clock every 1/60 seconds) and changes the value
        !           106:       of 'tickadj' which the the amount that is added or subtracted
        !           107:       from 'tickadj' when adjtime() is called.
        !           108: 
        !           109:       Now Mac clocks are pretty bad and tend to be slow. Sooo, instead of
        !           110:       having A/UX add the default of 16666ms every 1/60th of a second, you
        !           111:       may want it to add more (or less) so that it keeps better time. The
        !           112:       above value works for me but your "best" value may be different and
        !           113:       will likely require some fooling around to find the best value. As a
        !           114:       general rule of thumb, if you see 'xntpd' make a lot of negative clock
        !           115:       adjustments, then your clock is fast and you'll need to _decrease_
        !           116:       the value of 'tick'. If your adjustments are positive, then you need
        !           117:       to increase 'tick'. To make a guess on how fast/slow your clock is,
        !           118:       use 'ntpdate' to sync your clock. Now watch 'xntpd' and see how it
        !           119:       operates. If, for example, it resets your clock by 1 second every 30
        !           120:       minutes, then your clock is (1/(30*60)) is about 0.056% off and you'll
        !           121:       need to adjust 'tick' by 16666*0.00056 or about 9 (i.e. 'tick' should
        !           122:       be ~16675 if slow or ~16657 if fast)
        !           123: 
        !           124:       A/UX's default value of 'tickadj' is 1666 which is too big for
        !           125:       'xntpd'... so it also needs to be adjusted. I like using larger
        !           126:       values then the recommended value of 9 for 'tickadj' (although not
        !           127:       anything near as big as 1666) since this allows for quick slews
        !           128:       when adjusting the clock. Even with semi-large values of 'tickadj'
        !           129:       (~200), getting 5ms (1/200 s) accuracy is easy.
        !           130: 
        !           131: 
        !           132: Finally, before A/UX and 'xntpd' will work happily together, you need to
        !           133: patch the kernel. This is due to the fact that A/UX attempts to keep the
        !           134: UNIX-software clock and the Mac-hardware clock in sync. Neither the h/w or
        !           135: the s/w clock are too accurate. Also, 'xntpd' will be attempting to adjust
        !           136: the software clock as well, so having A/UX muck around with it is asking
        !           137: for headaches. What you therefore need to do is tell the kernel _not_ to
        !           138: sync the s/w clock with the h/w one. This is done using 'adb'. The
        !           139: following is a shell script that will do the patch for you:
        !           140: 
        !           141:     #! /bin/sh
        !           142:     adb -w /unix <<!
        !           143:     init_time_fix_timeout?4i
        !           144:     init_time_fix_timeout?w 0x4e75
        !           145:     init_time_fix_timeout?4i
        !           146:     $q
        !           147:     !
        !           148: 
        !           149: This must be done _every_ time you create a new kernel (via newconfig or
        !           150: newunix) or else 'xntpd' will go crazy.
        !           151: 
        !           152: --------
        !           153: HISTORY:
        !           154: --------
        !           155: 
        !           156: John Dundas was the original porter of 'xntpd' and a lot of the additions
        !           157: and A/UX-ports are from him. I got involved when I wanted to run 'xntpd'
        !           158: on jagubox. It was also around this time that the base-patchlevel of
        !           159: 'xntpd' changed relatively (the so-called "jones" version). Since then,
        !           160: I've been maintaining 'xntpd' for A/UX for the xntp development team
        !           161: 
        !           162: The original kernel patch (which patched 'time_fix_timeout') was from
        !           163: Richard Todd. I suggest patching 'init_time_fix_timeout' which prevents
        !           164: 'time_fix_timeout' from even being called.
        !           165: 
        !           166: ----------------
        !           167: TECHNICAL NOTES:
        !           168: ----------------
        !           169: 
        !           170:     o As configured (see machines/aux3), 'xntpd' will log messages via syslogd
        !           171:       using the LOC_LOCAL1 facility. I would suggest the following in
        !           172:       /etc/syslog.conf:
        !           173: 
        !           174:        local1.notice           /usr/adm/ntpd-syslog
        !           175: 
        !           176:     o As mentioned above, the clocks on A/UX and Macs are kinda bad. Not
        !           177:       only that, but logging in and out of the MacOS mode as well as
        !           178:       extensive floppy use causes A/UX to drop and lose clock interupts
        !           179:       (these are sent every 1/60th of a second). So, if you do these
        !           180:       activities a lot, you find out that you lose about 300ms of time
        !           181:       (i.e., you become 300ms slow). 'xntpd' default way of handling this
        !           182:       is to called 'settimeofday()' and step the clock to the correct
        !           183:       time. I prefer having 'xntpd' slew the clock back into line by
        !           184:       making gradual adjustments to the clock over a coupla minutes
        !           185:       or so. It's for this reason that SLEWALWAYS is defined in
        !           186:       include/ntp_machine.h for SYS_AUX3. It's also for this reason than
        !           187:       I like larger values of 'tickadj'.
        !           188: 
        !           189: Good luck!  If you have problems under A/UX feel free to contact me (e-mail
        !           190: is preferred).
        !           191: --
        !           192:     Jim Jagielski               |  "That is no ordinary rabbit... 'tis the
        !           193:     jim@jagubox.gsfc.nasa.gov   |   most foul, cruel and bad-tempered
        !           194:     NASA/GSFC, Code 734.4       |   rodent you ever set eyes on"
        !           195:     Greenbelt, MD 20771         |                   Tim the Enchanter

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>