summaryrefslogtreecommitdiffstats
path: root/usr.sbin/xntpd/hints/solaris
diff options
context:
space:
mode:
Diffstat (limited to 'usr.sbin/xntpd/hints/solaris')
-rw-r--r--usr.sbin/xntpd/hints/solaris88
1 files changed, 88 insertions, 0 deletions
diff --git a/usr.sbin/xntpd/hints/solaris b/usr.sbin/xntpd/hints/solaris
new file mode 100644
index 0000000..038d65f
--- /dev/null
+++ b/usr.sbin/xntpd/hints/solaris
@@ -0,0 +1,88 @@
+ A quick summary of how to compile under Solaris:
+
+ If you are running Solaris 2.0, you should upgrade to a later version of
+Solaris immediately.
+ If you are running Solaris 2.1, you should use Config.solaris2.1
+ If you are running Solaris 2.2 or later, you should use Config.solaris2.2
+
+ Solaris 2.1 contains fairly traditional clock code, with tick and tickadj.
+Solaris 2.2 and later contains completely re-written clock code to provide
+high resolution microsecond timers. A benefit of the re-written clock code
+is that adjtime does not round off its adjustments, so xntp does not have to
+compensate for this rounding. On Solaris 2.2 and later we #define
+ADJTIME_IS_ACCURATE, and do not look for the tickadj kernel variable.
+
+ If you are running both Solaris 2.1 and 2.2 on your net, you will need to
+maintain two sets of xntp binaries. The Config.solaris2.2 file will compile
+on Solaris 2.1, but the resulting binaries will not work correctly.
+
+ADDITIONAL NOTES FOR SOLARIS 2.1
+(by William L. Jones jones@chpc.utexas.edu)
+
+Since settimeofday under Solaris 2.1 only sets the seconds part of timeval
+care must be used in starting xntpd. I suggest the following start
+up script:
+
+ tickadj -s -a 1000
+ ntpdate -v server1 server2
+ sleep 20
+ ntpdate -v server1 server2
+ sleep 20
+ tickadj -a 200
+ xntpd
+
+The first tickadj turns of the time of day clock and sets the tick adjust
+value to 1 ms. This will insure that an adjtime value of at most 2
+seconds will complete in 20 seconds.
+
+The first ntpdate will set the time to within two seconds
+using settimeofday or it will adjust time using adjtime.
+
+The first sleep insures the adjtime has completed for the first ntpdate.
+
+The second ntpdate will use adjtime to set the time of day since the
+clock should be within 2 seconds of the correct time.
+
+The second tickadj set the tick adjust system value to 5 us.
+
+The second sleeps insure that adjtime will complete before starting
+the next xntpd.
+
+I tried running with a tickadj of 5 us with out much success.
+200 us seems to work well.
+
+
+ADDITIONAL NOTES FOR SOLARIS 2.2 AND LATER:
+ You still need to turn off dosynctodr for XNTP to be able to keep accurate
+time. You can either do this in the /etc/system file (consulted at boot to set
+various kernel variables) by putting in the following line:
+set dosynctodr=0
+or you can use the tickadj program to force the variable to 0 in the running
+kernel. Fiddling with a running kernel is almost never a good idea, I'd
+recommend using /etc/system.
+ I would recommend starting xntp from the following script, placed in
+/etc/rc2.d and named S99xntpd
+
+#!/bin/sh
+
+if [ $1 = "start" ]; then
+ if [ -x /usr/local/bin/xntpd ]; then
+ echo "Starting NTP daemon, takes about 1 minute... "
+ # The following line is unnecessary if you turn off
+ # dosynctodr in /etc/system.
+ /usr/local/bin/tickadj -s
+ /usr/local/bin/ntpdate -v server1 server2
+ sleep 5
+ /usr/local/bin/xntpd
+ fi
+else
+ if [ $1 = "stop" ]; then
+ pid=`/usr/bin/ps -e | /usr/bin/grep xntpd | /usr/bin/sed -e 's/^ *//' -e 's/ .*//'`
+ if [ "${pid}" != "" ]; then
+ echo "Stopping Network Time Protocol daemon "
+ /usr/bin/kill ${pid}
+ fi
+ fi
+fi
+
+Denny Gentry denny@eng.sun.com
OpenPOWER on IntegriCloud