ADJTIMEX ñ ÂÕÄÕ ÓÞÉÔÁÔØ, ÞÔÏ ×Ù ÕÖÅ ÐÒÏÞÉÔÁÌÉ ÓÔÒÁÎÉÞËÕ man ÐÏ adjtimex :-) ÷÷åäåîéå ÷ÏÚÍÏÖÎÏ, ×Ù ÕÖÅ ÚÎÁÅÔÅ, ÞÔÏ × ×ÁÛÅÍ ËÏÍÐØÀÔÅÒÅ ÉÍÅÀÔÓÑ Ä×ÏÅ ÞÁÓÏ× - "ÞÁÓÙ ÒÅÁÌØÎÏÇÏ ×ÒÅÍÅÎÉ" (RTC - Real Time Clock), ËÏÔÏÒÙÅ ÉÄÕÔ ×ÓÅ ×ÒÅÍÑ, É ÓÉÓÔÅÍÎÙÅ ÞÁÓÙ, ËÏÔÏÒÙÅ ÉÄÕÔ ÔÏÌØËÏ ÐÒÉ ×ËÌÀÞÅÎÎÏÍ ËÏÍÐØÀÔÅÒÅ. ôÏÞÎÏÓÔØ ×ÙÛÅ Õ ÓÉÓÔÅÍÎÙÈ ÞÁÓÏ× (ÐÒÉÍÅÒÎÏ 1 uÓÅË), ÎÏ Õ RTC, ×ÏÚÍÏÖÎÏ, ÌÕÞÛÅ ÓÔÁÂÉÌØÎÏÓÔØ ÎÁ ÄÌÉÔÅÌØÎÏÍ ÐÒÏÍÅÖÕÔËÅ (long-term stability). adjtimex ÐÒÅÄÎÁÚÎÁÞÅÎ ÄÌÑ ÐÒÉÂÌÉÚÉÔÅÌØÎÏÊ ËÏÒÒÅËÃÉÉ ÕÈÏÄÁ ÓÉÓÔÅÍÎÙÈ ÞÁÓÏ×. RTC Ñ×ÌÑÀÔÓÑ ÕÄÏÂÎÙÍÉ ÏÐÏÒÎÙÍÉ ÞÁÓÁÍÉ adjtimex --compare ÐÏËÁÚÙ×ÁÅÔ ×ÒÅÍÑ, ÒÁÚÎÉÃÕ ÍÅÖÄÕ Ä×ÕÍÑ ÞÁÓÁÍÉ, ÐÅÒ×ÏÅ ÒÁÚÌÉÞÉÅ (ËÁË ÓÉÌØÎÏ ÓÐÅÛÁÔ ÉÌÉ ÏÔÓÔÁÀÔ ÓÉÓÔÅÍÎÙÅ ÞÁÓÙ ÐÏ ÓÒÁ×ÎÅÎÉÀ Ó ÐÏÓÌÅÄÎÅÊ Ó×ÅÒËÏÊ Ó RTC), É Ä×Á ×ÒÅÍÅÎÎÙÈ ÐÁÒÁÍÅÔÒÁ ÑÄÒÁ: tick É ÓÄ×ÉÇ ÞÁÓÔÏÔÙ. ðÏÓÌÅ ÐÅÒ×ÙÈ Ä×ÕÈ ÓÒÁ×ÎÅÎÉÊ ÏÎ ÔÁËÖÅ ×Ù×ÏÄÉÔ ÒÅËÏÍÅÎÄÕÅÍÙÅ ÚÎÁÞÅÎÉÑ ÔÉËÏ× É ÓÄ×ÉÇÁ ÞÁÓÔÏÔÙ, ËÏÔÏÒÙÅ ÐÏÄÒÅÇÕÌÉÒÕÀÔ ÓÉÓÔÅÍÎÙÅ ÞÁÓÙ Ó ÐÒÉÂÌÉÚÉÔÅÌØÎÙÍ ÚÎÁÞÅÎÉÅÍ RTC. ëÏÎÅÞÎÏ, RTC ÍÏÇÕÔ ÉÍÅÀÔ ÓÏÂÓÔ×ÅÎÎÕÀ ÓÉÓÔÅÍÁÔÉÞÅÓËÕÀ ÏÛÉÂËÕ. clock(8) ÉÌÉ hwclock(8) ÉÓÐÏÌØÚÕÀÔ ÆÁÊÌ /etc/adjtime ÄÌÑ ÚÁÐÉÓÉ ËÏÜÆÆÉÃÉÅÎÔÁ ÕÈÏÄÁ (drift rate) É ×ÒÅÍÅÎÉ ÐÏÓÌÅ ÐÏÓÌÅÄÎÅÊ ÕÓÔÁÎÏ×ËÉ RTC. adjtimex ÔÁËÖÅ Ó×ÅÒÑÅÔÓÑ Ó ÜÔÉÍ ÆÁÊÌÏÍ É ÉÓÐÏÌØÚÕÅÔ ËÏÒÒÅËÃÉÀ ËÏ ×ÒÅÍÅÎÉ RTC. ëÒÏÍÅ ÔÏÇÏ, adjtimex ÍÏÖÅÔ ÚÁÐÉÓÙ×ÁÔØ ×ÒÅÍÑ ÏÂÏÉÈ ÞÁÓÏ× É ÄÏÐÏÌÎÉÔÅÌØÎÏÅ ÏÐÏÒÎÏÅ (reference) ×ÒÅÍÑ, × ÌÏÇ. úÁÔÅÍ ÜÔÏ ÓÒÁ×ÎÉ×ÁÅÔÓÑ Ó ÚÁÐÉÓÁÎÎÙÍ ×ÒÅÍÅÎÅÍ É ÒÁÓÓÞÉÔÙ×ÁÀÔÓÑ ×ÅÌÉÞÉÎÙ ÕÈÏÄÁ (drift rates). õóôáîï÷ëá äÌÑ ËÏÎÆÉÇÕÒÉÒÏ×ÁÎÉÑ ÎÁÂÅÒÉÔÅ "./configure", ÄÌÑ ËÏÍÐÉÌÑÃÉÉ - "make", ÚÁÔÅÍ "make install" ÄÌÑ ËÏÐÉÒÏ×ÁÎÉÑ ÂÉÎÁÒÎÉËÁ × /usr/local/bin, Á ÓÔÒÁÎÉÃÙ man × /usr/local/man/man8. åÓÌÉ ×Ù ÈÏÔÉÔÅ ÕÓÔÁÎÏ×ÉÔØ ÐÒÏÇÒÁÍÍÕ × /usr ×ÍÅÓÔÏ /usr/local, ÎÁÞÎÉÔÅ Ó "./configure --prefix=/usr". ëòïíå ôïçï äÌÑ ×ÙÐÏÌÎÅÎÉÑ ÂÏÌØÛÉÎÓÔ×Á ÎÉÖÅÓÌÅÄÕÀÝÉÈ ÄÅÊÓÔ×ÉÊ ×Ù ÄÏÌÖÎÙ ×ÏÊÔÉ ËÁË root. óÔÁÎÄÁÒÔÎÏÅ ÑÄÒÏ ÎÅ ÂÕÄÅÔ ÔÒÏÇÁÔØ RTC, ÐÏËÁ ÎÅ ÂÕÄÅÔ ÕÓÔÁÎÁ×ÌÉ×ÁÔØÓÑ ÏÄÉÎ ÉÚ ×ÒÅÍÅÎÎÙÈ ÐÁÒÁÍÅÔÒÏ× (ÎÁÐÒÉÍÅÒ, Ó ÐÏÍÏÝØÀ adjtimex). úÁÔÅÍ, ÐÒÅÄÐÏÌÁÇÁÑ, ÞÔÏ ntpd ÒÅÇÕÌÉÒÕÅÔ ÓÉÓÔÅÍÎÏÅ ×ÒÅÍÑ, ÚÁÐÕÓËÁÅÔ "ËÏÒÒÅËÃÉÀ" RTC ÐÒÉÍÅÒÎÏ ËÁÖÄÙÅ ÏÄÉÎÎÁÄÃÁÔØ ÍÉÎÕÔ. adjtimex ÐÒÅÄÏÔ×ÒÁÝÁÅÔ ÜÔÏ ÕÓÔÁÎÏ×ËÏÊ ×ÒÅÍÅÎÉ ÐÏÓÌÅ ÉÚÍÅÎÅÎÉÑ ÌÀÂÏÇÏ ÐÁÒÁÍÅÔÒÁ. ÷ ÄÅÊÓÔ×ÉÔÅÌØÎÏÓÔÉ ×ÒÅÍÑ ÎÅ ÉÚÍÅÎÉÔÓÑ. éóðïìøúï÷áîéå óÏÚÄÁÊÔÅ /etc/adjtime, ËÏÔÏÒÙÊ ÉÓÐÏÌØÚÕÅÔÓÑ clock(8) É hwclock(8) ÄÌÑ ËÏÒÒÅËÃÉÉ ÓÉÓÔÅÍÁÔÉÞÅÓËÏÊ ÏÛÉÂËÉ × RTC. õÓÔÁÎÏ×ÉÔÅ ÅÇÏ, ËÁË ÏÐÉÓÁÎÏ × ÓÔÒÁÎÉÃÅ man, ÄÌÑ ËÁÖÄÏÊ ÐÒÏÇÒÁÍÍÙ. clock ×ËÌÀÞÁÅÔÓÑ (×ÍÅÓÔÅ Ó ÍÎÏÖÅÓÔ×ÏÍ ÄÒÕÇÉÈ ÐÏÌÅÚÎÙÈ ÕÔÉÌÉÔ) × ËÏÌÌÅËÃÉÀ òÉËÁ æÜÊÔÁ (Rik Faith): sunsite.unc.edu:pub/Linux/system/Misc/util-linux-1.10.tar.gz åÓÌÉ ×ÁÛ RTC ÕÖÅ ÄÏÓÔÁÔÏÞÎÏ ÔÏÞÅÎ ÄÌÑ ×ÁÓ, ÐÒÏÓÔÏ ÓÏÚÄÁÊÔÅ ÆÁÊÌ /etc/adjtime, ÓÏÄÅÒÖÁÝÉÊ ÔÏÌØËÏ ÏÄÎÕ ÐÅÒ×ÕÀ ÓÔÒÏÞËÕ: '0.0 0 0.0'. óÎÁÞÁÌÁ Ñ ÏÂßÑÓÎÀ ÒÕÞÎÕÀ ÐÒÏÃÅÄÕÒÕ. óËÏÍÐÉÌÉÒÕÊÔÅ É ÚÁÐÕÓÔÉÔÅ adjtimex Ó ËÌÀÞÏÍ --compare. ïÖÉÄÁÅÍÙÅ ÒÅÚÕÌØÔÁÔÙ ÐÒÉÍÅÒÎÏ ÔÁËÉÅ: # adjtimex --compare 794625929 -0.597638 -0.597638 ... 794625939 -0.602050 -0.004412 ... ^^^^^^^^^ üÔÏ ÞÉÓÌÏ ÓÏÏÂÝÁÅÔ, ÞÔÏ ÓÉÓÔÅÍÎÙÅ ÞÁÓÙ ÏÔÓÔÁÀÔ ÂÏÌÅÅ ÞÅÍ ÎÁ 4 ÍÉÌÌÉÓÅËÕÎÄÙ ÚÁ 10 ÓÅËÕÎÄ ÐÏ ÓÒÁ×ÎÅÎÉÀ Ó RTC, ÉÌÉ 4 ÞÁÓÔÉ ÎÁ 10000. óÌÅÄÏ×ÁÔÅÌØÎÏ, ÍÙ Õ×ÅÌÉÞÉ×ÁÅÍ ÐÁÒÁÍÅÔÒ tick ÄÏ 10004 É ÐÏ×ÔÏÒÑÅÍ ÓÒÁ×ÎÅÎÉÅ: # adjtimex --tick 10004 # adjtimex --compare 794626037 -0.644860 -0.644860 ... 794626047 -0.645259 -0.000399 ... ôÅÐÅÒØ ÓÉÓÔÅÍÎÙÅ ÞÁÓÙ ÏÔÓÔÁÀÔ ÐÒÉÍÅÒÎÏ ÎÁ 39.9 ÞÁÓÔÅÊ ÎÁ ÍÉÌÌÉÏÎ. äÌÑ ËÏÒÒÅËÃÉÉ ÜÔÏÇÏ ÍÙ ÍÏÖÅÍ ÉÚÍÅÎÉÔØ ÓÄ×ÉÇ ÞÁÓÔÏÔÙ (frequency offset). ÷ÓÐÏÍÎÉÔÅ, ÞÔÏ ÓÄ×ÉÇ ÞÁÓÔÏÔÙ - ÜÔÏ × ÞÁÓÔÑÈ ÎÁ ÍÉÌÌÉÏÎ, Ó ÔÏÞËÏÊ ÄÅÌÅÎÉÑ × ÃÅÎÔÒÅ (ÐÏ 16 ÂÉÔ Ó ËÁÖÄÏÊ ÓÔÏÒÏÎÙ). óÌÅÄÏ×ÁÔÅÌØÎÏ, ÍÙ ÕÓÔÁÎÁ×ÌÉ×ÁÅÍ ÓÄ×ÉÇ × 39.9*65536 = 2614886: # adjtimex --frequency 2614886 # adjtimex --compare 794626313 -0.652147 -0.652147 ... 794626323 -0.652247 -0.000100 ... ÷ÉÄÎÏ, ÞÔÏ ÅÓÔØ ÅÝÅ ÒÁÚÎÉÃÁ ÏËÏÌÏ 10 ppm, ÐÏÜÔÏÍÕ ÍÙ Õ×ÅÌÉÞÉÍ ÓÄ×ÉÇ ÎÁ 10*65536, ÄÏ 3270246: # adjtimex --frequency 3270246 # adjtimex --compare 794627233 -0.795221 -0.795221 ... 794627243 -0.795231 -0.000009 ... ôÁËÉÍ ÖÅ ÏÂÒÁÚÏÍ ×ÙÓÞÉÔÙ×ÁÀÔÓÑ ÚÎÁÞÅÎÉÑ × ËÏÌÏÎËÅ "suggested" ("òÅËÏÍÅÄÎÏ×ÁÎÏ"). ðÒÉÍÅÎÅÎÉÅ ËÌÀÞÁ --adjust Á×ÔÏÍÁÔÉÚÉÒÕÅÔ ÐÒÏÃÅÓÓ - ÐÅÒÉÏÄÉÞÅÓËÉ ÕÓÔÁÎÁ×ÌÉ×ÁÑ "ÒÅËÏÍÅÎÄÕÅÍÙÅ" ÚÎÁÞÅÎÉÑ. ëÓÔÁÔÉ, ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÏÐÃÉÊ --offset ÉÌÉ --singleshot ËÁÖÅÔÓÑ ÉÍÅÀÔ ÄÌÉÔÅÌØÎÏÅ ÄÅÊÓÔ×ÉÅ ÎÁ ÞÁÓÙ. ñ ÒÅËÏÍÅÎÄÕÀ ×ÁÍ ÏÐÒÅÄÅÌÉÔØ ÚÎÁÞÅÎÉÑ tick É ÞÁÓÔÏÔÙ ÄÏ ÐÒÉÍÅÎÅÎÉÑ ÄÒÕÇÉÈ ÏÐÃÉÊ. õ ×ÁÓ ÕÖÅ ÍÏÖÅÔ ÂÙÔØ ÚÁÐÉÓØ, ÐÏÄÏÂÎÁÑ ÜÔÏÊ, × /etc/rc.d/rc.S, /etc/init.d/boot ÉÌÉ ÏÄÎÏÍ ÉÚ ÄÒÕÇÉÈ ÓÔÁÒÔÏ×ÙÈ ÆÁÊÌÏ×: # Adjust CMOS clock based on /etc/adjtime, then set system clock. # Add -u switch if your system keeps GMT. if [ -x /sbin/clock ]; then /sbin/clock -a fi ðÒÏÓÔÏ ÄÏÂÁ×ØÔÅ ÚÁÐÉÓØ ÔÉÐÁ ÜÔÏÊ: # Regulate the sytem clock if [ -x /sbin/adjtimex ]; then /sbin/adjtimex --tick 10004 --frequency 3270246 fi ðòïäïìöéôåìøîùå óòá÷îåîéñ adjtimex ÍÏÖÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÄÌÑ ÚÁÐÉÓÉ ÚÎÁÞÅÎÉÊ ×ÒÅÍÅÎÉ CMOS É ÓÉÓÔÅÍÙ, É ÄÏÐÏÌÎÉÔÅÌØÎÏÇÏ ÏÐÏÒÎÏÇÏ (reference) ×ÒÅÍÅÎÉ, ÞÔÏÂÙ ÍÏÖÎÏ ÂÙÌÏ ÏÐÒÅÄÅÌÉÔØ ËÏÜÆÆÉÃÉÅÎÔ ÕÈÏÄÁ ÚÁ ÄÌÉÔÅÌØÎÙÅ ÐÅÒÉÏÄÙ. äÌÑ ÒÕÞÎÏÇÏ ××ÏÄÁ ÏÐÏÒÎÏÇÏ ×ÒÅÍÅÎÉ ÉÓÐÏÌØÚÕÊÔÅ # adjtimex --log --watch adjtimex ÐÏÐÒÏÓÉÔ ×ÁÓ ÎÁÖÁÔØ ËÌÁ×ÉÛÕ, ËÏÇÄÁ ×Ù ÚÎÁÅÔÅ ×ÒÅÍÑ, ÚÁÔÅÍ ÓÐÒÏÓÉÔ ×ÒÅÍÑ É ÐÒÉÂÌÉÚÉÔÅÌØÎÕÀ ÔÏÞÎÏÓÔØ. úÁÔÅÍ ÓÐÒÏÓÉÔ ÂÙÌ ÌÉ ÓÂÏÊ ËÁËÉÈ ÌÉÂÏ ÞÁÓÏ× Ó ÍÏÍÅÎÔÁ ÐÏÓÌÅÄÎÅÊ ÚÁÐÉÓÉ × ÌÏÇÅ. ÷ÒÅÍÑ ×Ù ÍÏÖÅÔÅ ×ÚÑÔØ Ó ÔÏÞÎÙÈ ÞÁÓÏ×, ÒÁÄÉÏÍÁÑËÁ ×ÒÅÍÅÎÉ ÔÉÐÁ WWV ÉÌÉ CHU É Ô.Ä. åÓÌÉ Õ ×ÁÓ ÕÓÔÁÎÏ×ÌÅÎ ntpdate (ÞÁÓÔØ ÐÁËÅÔÁ xntp) É ËÏÍÐØÀÔÅÒ ÐÏÄËÌÀÞÅÎ Ë ÓÅÔÉ, ÉÓÐÏÌØÚÕÊÔÅ # adjtimex --log --host www.xxx.yyy.zzz É adjtimex ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÔØ ntpdate ÄÌÑ ÚÁÐÒÏÓÁ ×ÒÅÍÅÎÉ Ó ÕËÁÚÁÎÎÏÇÏ ÈÏÓÔÁ. (õÔÏÞÎÉÔÅ Õ Ó×ÏÅÇÏ ÐÒÏ×ÁÊÄÅÒÁ, ÉÍÅÅÔ ÌÉ ÏÎ ÓÅÒ×ÅÒ ×ÒÅÍÅÎÉ NTP, ÉÌÉ ËÁËÏÊ ÏÎ ÍÏÖÅÔ ÐÒÅÄÌÏÖÉÔØ.) ðÏÓÌÅ ÔÏÇÏ, ËÁË ×Ù ÓÄÅÌÁÅÔÅ ÎÅÓËÏÌØËÏ ÚÁÐÉÓÅÊ × log, ×Ù ÍÏÖÅÔÅ ÚÁÓÔÁ×ÉÔØ adjtimex ÐÒÏÓÍÏÔÒÅÔØ ÌÏÇ Ó ÐÏÍÏÝØÀ # adjtimex --review ïÎ ×ÏÚØÍÅÔ ËÁÖÄÕÀ ÐÁÒÕ ÚÁÐÉÓÅÊ ÌÏÇÁ × ÃÉËÌÅ É ×ÙÞÉÓÌÉÔ ÄÌÑ ÎÉÈ ËÏÜÆÆÉÃÉÅÎÔ ÏÛÉÂËÉ × ÞÁÓÔÑÈ ÎÁ ÍÉÌÌÉÏÎ (ppm) Ó ÚÁÄÁÎÎÏÊ ÔÏÞÎÏÓÔØÀ. ôÁËÖÅ ÂÕÄÕÔ ÎÁÊÄÅÎÙ ÕÓÒÅÄÎÅÎÎÙÅ ÏÛÉÂËÉ É ÐÒÅÄÌÏÖÅÎÙ ÚÎÁÞÅÎÉÑ ÐÁÒÁÍÅÔÒÏ× ÄÌÑ ËÏÒÒÅËÔÉÒÏ×ËÉ ÕÈÏÄÁ. ðÒÏ×ÅÒØÔÅ ÓÏÇÌÁÓÏ×ÁÎÎÏÓÔØ ÒÅÚÕÌØÔÁÔÁ. ïÄÎÁ ÎÅÐÒÁ×ÉÌØÎÁÑ ÚÁÐÉÓØ ÏÐÏÒÎÏÇÏ ×ÒÅÍÅÎÉ ÍÏÖÅÔ ÐÏÇÕÂÉÔØ ×ÓÅ ×ÙÞÉÓÌÅÎÉÑ. äáìøîåêûáñ éîæïòíáãéñ á×ÔÏÒÉÔÅÔÎÕÀ ÄÏËÕÍÅÎÔÁÃÉÀ ÐÏ ÐÒÏÇÒÁÍÍÅ ×ÒÅÍÅÎÉ ÑÄÒÁ ÓÍÏÔÒÉÔÅ ÓÄÅÓØ, ×ÓÅ ÎÁÐÉÓÁÎÏ David L. Mills <mills@udel.edu>: [MIL92a] Mills, D.L. Network Time Protocol (Version 3) specification, implementation and analysis, RFC 1305, University of Delaware, March 1992, 113 pp. [MIL92c] Mills, D.L. Simple Network Time Protocol (SNTP), RFC 1361, University of Delaware, August 1992, 10 pp. [MIL94a] Mills, D.L. A kernel model for precision timekeeping. ARPA Network Working Group Report RFC-1589, University of Delaware, March 1994. 31 pp. README.kern, ËÏÔÏÒÙÊ ÍÏÖÎÏ ÎÁÊÔÉ ÎÁ louie.udel.edu:/pub/ntp/kernel.tar.Z. âìáçïäáòîïóôé äÜ×ÉÄÕ íÉÌÌÓÕ (David Mills) ÚÁ ËÏÄ ÓÏÈÒÁÎÅÎÉÑ ×ÒÅÍÅÎÉ ÑÄÒÁ, É óÔÉ×ÅÎÕ äÉËÕ (Steven Dick) <ssd@nevets.oau.org> ÚÁ ÐÅÒ×ÏÎÁÞÁÌØÎÏÅ ÎÁÐÉÓÁÎÉÅ adjtimex. (ñ ÓÉÌØÎÏ ÉÚÍÅÎÉÌ ËÏÄ. ìÀÂÙÅ ÐÒÏÂÌÅÍÙ - ÍÏÑ ÏÔ×ÅÔÓÔ×ÅÎÎÏÓÔØ.) âÌÁÇÏÄÁÒÎÏÓÔØ ÔÁËÖÅ íÉËÁÜÌÀ íÅÓËÅÓÕ (Michael Meskes) <meskes@debian.org>, ÞÅÊ ÉÎÓÔÁÌÌÑÃÉÏÎÎÙÊ ÓËÒÉÐÔ × Debian ×ÄÏÈÎÏ×ÉÌ ÎÁ ÏÐÃÉÉ "--compare" É "--adjust". îÁÓÌÁÖÄÁÊÔÅÓØ! - Jim Van Zandt <jrv at comcast.net>