<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html> <head> <meta name="generator" content="HTML Tidy, see www.w3.org"> <title>tickadj - set time-related kernel variables</title> </head> <body> <h3><tt>tickadj</tt> - set time-related kernel variables</h3> <hr> <h4>Synopsis</h4> <tt>tickadj [ -Aqs ] [ -a <i>tickadj</i> ] [ -t <i>tick</i> ]</tt> <h4>Description</h4> The <tt>tickadj</tt> program reads, and optionally modifies, several timekeeping-related variables in the running kernel in some machines, via <tt>/dev/kmem</tt>. The particular variables it is concerned with are <tt>tick</tt>, which is the number of microseconds added to the system time during a clock interrupt, <tt>tickadj</tt>, which sets the slew rate and resolution used by the <tt>adjtime</tt> system call, and <tt>dosynctodr</tt>, which indicates to the kernels on some machines whether they should internally adjust the system clock to keep it in line with time-of-day clock or not. <p>Note that this program does NOT work in some kernels, in particular Solaris 2.6 or later. See the <a href= "solaris-dosynctodr.html">report</a>.</p> <p>By default, with no arguments, <tt>tickadj</tt> reads the variables of interest in the kernel and displays them. At the same time, it determines an "optimal" value for the value of the <tt> tickadj</tt> variable if the intent is to run the <tt>ntpd</tt> Network Time Protocol (NTP) daemon, and prints this as well. Since the operation of <tt>tickadj</tt> when reading the kernel mimics the operation of similar parts of the <tt>ntpd</tt> program fairly closely, this can be useful when debugging problems with <tt> ntpd</tt>.</p> <p>Note that <tt>tickadj</tt> should be run with some caution when being used for the first time on different types of machines. The operations which <tt>tickadj</tt> tries to perform are not guaranteed to work on all Unix machines and may in rare cases cause the kernel to crash.</p> <h4>Command Line Options</h4> <dl> <dt><tt>-a <i>tickadj</i></tt></dt> <dd>Set the kernel variable <tt>tickadj</tt> to the value <i><tt> tickadj</tt></i>specified.</dd> <dt><tt>-A</tt></dt> <dd>Set the kernel variable <tt>tickadj</tt> to an internally computed "optimal" value.</dd> <dt><tt>-t <i>tick</i></tt></dt> <dd>Set the kernel variable <tt>tick</tt> to the value <i><tt> tick</tt></i> specified.</dd> <dt><tt>-s</tt></dt> <dd>Set the kernel variable <tt>dosynctodr</tt> to zero, which disables the hardware time-of-year clock, a prerequisite for running the <tt>ntpd</tt> daemon under SunOS4.</dd> <dt><tt>-q</tt></dt> <dd>Normally, <tt>tickadj</tt> is quite verbose about what it is doing. The <tt>-q</tt> flag tells it to shut up about everything except errors.</dd> </dl> <h4>Files</h4> <pre> /vmunix /unix /dev/kmem </pre> <h4>Bugs</h4> Fiddling with kernel variables at run time as a part of ordinary operations is a hideous practice which is only necessary to make up for deficiencies in the implementation of <tt>adjtime</tt> in many kernels and/or brokenness of the system clock in some vendors' kernels. It would be much better if the kernels were fixed and the <tt>tickadj</tt> program went away. <hr> <a href="index.htm"><img align="left" src="pic/home.gif" alt= "gif"></a> <address><a href="mailto:mills@udel.edu">David L. Mills <mills@udel.edu></a></address> </body> </html>