ntpd_enable="YES" ntpd_config="/usr/local/etc/ntp.conf"と書きます。 ntpd は内蔵クロックの面倒は見てくれません。 (正確には、起動後しばら経って、 他のサーバに同期した時に一度だけ内蔵クロックを合わせてくれる。) したがって長期間 PC を連続稼働すると、 どんどん内蔵クロックがずれてしまいます。 この状態で再起動すると、しばらくの間時計が狂ったままになるので、
ntpdate_enable="YES" ntpdate_flags="-sbv どこかのNTPサーバ"も書いて、起動時に即座に内蔵クロックも合わせるようにしています。
参考: ntpd(8)
# driftfile /usr/local/etc/ntp.drift server server1.example.com prefer server server2.example.com peer client1.example.com peer client2.example.com peer client3.example.com peer client4.example.comと書きます。 高い stratum のサーバは server に、 同じ stratum 同士は peer に設定します。 至近の server には prefer を付けましょう。
参考: ntpd.conf(5)
$ ntpdc -p remote refid st t when poll reach delay offset jitter ============================================================================== *server1.example .GPS. 1 u 256 512 377 0.490 0.941 0.008 +server2.example .GPS. 1 u 282 512 377 0.764 0.685 0.604 -client1.example server1.example 2 u 328 512 375 0.001 5.324 0.222 -client2.example server1.example 2 u 330 512 376 0.431 -3.973 0.283 -client3.example client2.example 3 u 29 64 373 0.673 -1.848 0.200 +client4.example server1.example 2 u 278 512 377 0.322 -0.699 0.176
FreeBSD 4.X の場合 ln -s cuaa0 /dev/gps0 ln -s cuaa1 /dev/gps1 FreeBSD 5.X の場合 /etc/devfs.conf に --------------------- link cuaa0 gps0 link cuaa1 gps1 --------------------- と追加し、 /etc/rc.d/devfs restart
server 127.127.20.X fudge 127.127.20.X time1 NX はジュピターをつないだポート(cuaa0 なら 0、cuaa1 なら 1)を指定します。 N は、試行錯誤で適当な値を見付けましょう。 どのみち 1 秒位ずれてしまうので、気安め程度です。
PPS を利用するには、PPS_SYNC を組み込む必要があります。 内蔵クロックの精度が悪い場合は、CALIBRATION も指定します。
options PPS_SYNC options CLK_USE_I8254_CALIBRATION options CLK_USE_TSC_CALIBRATION # FreeBSD 5.X では不要を指定すると良いようです。 参考: ntpd for Furuno GPS
FreeBSD 4.X の場合 ln -s cuaa0 /dev/gps0 ln -s cuaa1 /dev/gps1 FreeBSD 5.X の場合 /etc/devfs.conf に --------------------- link cuaa0 gps0 link cuaa1 gps1 --------------------- と追加し、 /etc/rc.d/devfs restart
server 127.127.51.X prefer fudge 127.127.51.X time1 -1 flag3 1X はジュピターをつないだポート(cuaa0 なら 0、cuaa1 なら 1)を指定します。
ntpq -p で確認すると、64 秒ごとに reach が 1 → 3 → 7 → 17 → 37 → 77 → 177 → 377 と増えていきます。
$ ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== *REFCLK(51,0) .GPS. 0 l 39 64 377 0.000 0.012 0.040ntpdc -c kern で status を見ると、reach が増えて行くにつれ、 下のような順で変化します。status: 2001 pll nano status: 2101 pll ppssignal nano status: 2141 pll unsync ppssignal nano status: 2107 pll ppsfreq ppstime ppssignal nano
options PPS_SYNC options CLK_USE_I8254_CALIBRATION options CLK_USE_TSC_CALIBRATION # FreeBSD 5.X では不要
FreeBSD 4.X の場合 ln -s cuaa0 /dev/gps0 ln -s cuaa1 /dev/gps1 FreeBSD 5.X の場合 /etc/devfs.conf に --------------------- link cuaa0 gps0 link cuaa1 gps1 --------------------- と追加し、 /etc/rc.d/devfs restart
server 127.127.20.X fudge 127.127.20.X time1 N flag3 1参考: Generic NMEA GPS Receiver
ln -s cuaa0 /dev/gps0 ln -s cuaa1 /dev/gps1
server 127.127.50.X fudge 127.127.50.X time1 N
SONY81YYmmddwHHMMSSN... 最初の 6 バイトはバージョン、その次から UTC 時刻です。 YY = 年 mm = 月(01-12) dd = 日(01-31) w = 曜日(0-7, 日=0) HH = 時(00-24) MM = 分(00-59) SS = 秒(00-60)