web-dev-qa-db-ja.com

NTP時間同期に時間がかかる

Raspberry Pi 3を使用していて、システムを再起動した後、ntpを介して時刻を更新する必要があります。

Dhcpを使用してwifi経由で更新する必要があります。通常は機能しますが、同期には約半時間だし、なぜか分からない。

Ntpサービスを手動で開始したい場合

>>Sudo /etc/init.d/ntp restart

それは「大丈夫」と言いますが、システムは何もしません-間違った時間がまだRTCに残っています。

あなたはアイデアを持っていますか、何が問題になる可能性がありますか?

もう1つの情報は、Piは読み取り専用モードで実行されるということです...しかし、書き込みアクセスなしで動作しない場合、30分後に更新されませんか?

詳細:

ここで私の問題を完了するには、ntp.confです。

# /etc/ntp.conf, configuration for ntpd; see ntp.conf(5) for help

Driftfile /var/lib/ntp/ntp.drift

Statistics loopstats peerstats clockstats
Filegen loopstats file loopstats type day enable
Filegen peerstats file peerstats type day enable
Filegen clockstats file clockstats type day enable

...

Server 0.de.pool.ntp.org iburst
Server 1.de.pool.ntp.org iburst
Server 2.de.pool.ntp.org iburst
Server 3.de.pool.ntp.org iburst

Server 127.127.1.0 #local clock
Fudge 127.127.1.0 stratum 10

...

私のプロジェクトについての私の説明を拡大するため。 PiをNTPサーバーとして使用します。最初の問題は、再起動後またはPiがオフのときにRTC「runsaway」 -特により長い時間のためです。私が考えたのは、PiがNTPクライアントであり、RTC以降Piは、NTPデバイスのサーバーである必要があります。これは、Ethernertを介してPiに接続されています。そのため、現在の時刻を取得するためにWifiを介してPiに接続しました。動作しますが、時間がかかりすぎます。

次に、以前に投稿したこのコマンドを使用して手動で同期を作成したいと思いました。私の考えはこれをcronjobとして行うことでしたが、次の問題があります:1. Piはコマンドを無視しました。 2. cronjobも無視されるか、再起動後に削除されます。

しかし、私は一歩一歩進んでいきたいと思っています。解決したい最初の問題は、同期時間を減らすことです。

私の状況について、今よりよく理解していただければ幸いです。

詳細が必要ですか?

新しい情報:01.02.2018

さて、私は今私が望む解決策を持っています、しかし私には理解できない振る舞いがあります。構成は正しかった。ただし、オンボードWiFiを使用してNTPサーバー、ntp.confで構成した)を介してシステム時刻を同期しています。イーサネット(有線LAN)を使用してNTP RPiへの有線デバイス用サーバー。ここではIP設定:

WLAN (DHCP): 192.168.1.x
Ethernet (static): 192.168.10.10

両方のインターフェースを異なるネットワークに配置しました。そうしないと、1つの接続だけが機能するためです-しかし、なぜ実際に?そしてこれが主な問題であり、同期に非常に長い時間がかかった理由です。ローカルクロックで行をコメントアウトすると

Server 127.127.1.0

その後、ネットワークを介した同期はすぐに機能します...なぜそれが起こるのですか?

4
Susanne

RpiにはRTCがないため、1970年1月1日に常に起動します。サーバーとNTPがゆっくりと徐々に同期する時間は長いため、デフォルトではNTPは、NTPとシステムの違いが修正されるまで、正常に動作しません。

最初の行としてntp.confファイルに追加します(最初の行である必要があります):

tinker panic 0

このセットアップは、VMおよびiOTデバイスに推奨されます。

tinker panic-パニックしきい値を秒単位で指定します。デフォルトは1000秒です。ゼロに設定すると、パニック健全性チェックが無効になり、任意の値のクロックオフセットが受け入れられます。

RTCは安価なので、特にインターネット接続のないプロジェクトを計画している場合は、RTCの購入も検討します。参照 hwclock can not open rtc file

4
Rui F Ribeiro

この問題は、/ etc/ntp.confのファッジ行に「flag1 1」を追加することで解決されました。 GPSを使用して時刻を設定しています。システムクロックバッテリーが消耗すると、システムは適切なタイミングで起動しません。 NTPですばやく修正する必要があります。/etc/ntp.confファイルは次のとおりです。

# "flag1 1" means skip the difference limit check and fix the time even if it is far off.
# If the battery for the system clock fails the system clock will start with a default time.
# The date will be years off, more than the sanity check limit, we need for ntp to correct the time anyway.
#
# GPS Serial data reference
server 127.127.28.0 minpoll 4 maxpoll 4 true
fudge 127.127.28.0 time1 0.0 refid GPS flag1 1

# GPS PPS reference 
server 127.127.28.1 minpoll 4 maxpoll 4 prefer true
fudge 127.127.28.1 refid PPS flag1 1

driftfile /var/lib/ntp/drift

# By default, exchange time with everybody, but don't allow configuration.
restrict -4 default kod notrap nomodify nopeer noquery limited
restrict -6 default kod notrap nomodify nopeer noquery limited

# Allow unrestricted acces from the localhost
restrict 127.0.0.1 mask 255.255.255.0
restrict -6 ::1

# Enable this if you want statistics to be logged.
statsdir /var/log/ntpstats/

statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day disable
filegen clockstats file clockstats type day enable

私はこの解決策をここに見つけました: NTP Documentation

1
Bob

Ntpdateユーティリティを1回の起動ユーティリティとして使用して、ntpdが管理するのに十分近いクロックを取得します。

ディストリビューションにある場合は、chrony RPMパッケージを確認してください。従来のNTPよりも管理が簡単です。

0