Like any other piece of software (and information generally), clockspeed comes with NO WARRANTY. Things you have to decide before starting: * Where the clockspeed package will be installed, normally /usr/local. To change this directory, edit conf-home now. How to install: 1. Compile the programs and create the formatted man pages: % make The system must support unadjusted hardware ticks, either with RDTSC or with gethrtime(). The compiler must support a 64-bit type, either long or long long. 2. Install the programs, the man pages, and /usr/local/etc/clockspeed/leapsecs.dat: # make setup check Put /usr/local/bin into $PATH. How to test: 3. Find an NTP server that you trust. Some public NTP servers are listed in http://www.eecis.udel.edu/~mills/ntp/clock2.html, but you will probably obtain more accurate results from a local server. Compute the difference between the remote clock and your clock: % sntpclock 1.2.3.4 | clockview Here 1.2.3.4 is the IP address of the NTP server. 4. As root, set your clock: # sntpclock 1.2.3.4 | clockadd Compute a new adjustment: % sntpclock 1.2.3.4 | clockview The new clock difference will typically be a few milliseconds. 5. Start clockspeed: # clockspeed & Give clockspeed a time measurement: # sntpclock 1.2.3.4 > /usr/local/etc/clockspeed/adjust & 6. After a few hours, give clockspeed a second time measurement: # sntpclock 1.2.3.4 > /usr/local/etc/clockspeed/adjust & You can run sntpclock as a non-root user, if you change /usr/local/etc/clockspeed/adjust to be owned by that user. I recommend this for security. 7. After a few days, check how well clockspeed has adjusted your clock: % sntpclock 1.2.3.4 | clockview Check how many attoseconds clockspeed thinks are in one tick: % clockview < /usr/local/etc/clockspeed/atto Give it another time measurement: # sntpclock 1.2.3.4 > /usr/local/etc/clockspeed/adjust & 8. Repeat step 7 after a few weeks, then after a few months. Your clock should now be synchronized to the remote clock to within a few seconds per century, as long as neither clock drifts from its original frequency. 9. To synchronize times on your local network, select a local machine as a master. Announce the master's clock through the TAICLOCK protocol: % taiclockd & taiclockd does not need to run as root. On a client machine, check the time difference: % taiclock 5.6.7.8 > adjustment % clockview < adjustment Here 5.6.7.8 is the master's IP address. Set the client's clock: # clockadd < adjustment Finally, run clockspeed as in step 5, and do % taiclock 5.6.7.8 > /usr/local/etc/clockspeed/adjust & after a few days. That's it! To report success: % ( echo 'First M. Last'; cat `cat SYSDEPS` ) \ | mail djb-qst@cr.yp.to Replace First M. Last with your name.