Raspberry Piはどこから時間を取得しますか?


44

Raspberry Piで(タイムゾーン以外に)クロックを設定する必要はありません。どこから時間を取得していますか?どれくらい正確ですか?


新規インストールでは、さまざまなソースから時間が選択されます。詳細、およびtime.nist.govに変更する理由については、このQ&Aを参照してください: raspberrypi.stackexchange.com/questions/68811/…–
SDsolar

回答:


45

RaspbianはNTPサーバー(「タイムサーバー」)から時刻を取得します。

Raspberry Piを完全に取り外し、ネットワークケーブルを引き抜いて、Raspberry Piを再び起動します。日付と時刻が正しくないことがわかります。

例えば、のようなもの-あなたがしたい場合は/あなたはリアルタイムクロック(RTC)が必要です、インターネットに差し込まれることなくリセットされないように日付と時間を必要とする、このバッテリーを使用して、時間を最新の状態に保つでしょう、 -クロックを実行します。これは、コンピューターに電源が供給されていないときに時間を保持する方法でもあります。

更新 念のため、上記のRTCクロックは、電力損失間の時間を正確に保つ唯一の方法ではないことに注意してください。GPSモジュールを使用して、GPIOピンに接続することもできます。

精度 時計の時間がかなりずれている場合でも、かなり正確です。サーバーからの変更がローカルクロックに徐々に適用されるため、自身を修正するには最大3時間かかる場合があります。ネットワークの安定性は精度に最大の影響を及ぼします。予測不可能なネットワーク(3Gのようなよりワイヤレスなネットワーク)により正確性が非常に難しくなるためです。簡単に言うと、精度はかなり良く、コンピューターと(NTPサーバーからの)実際の時間との時間差は通常100ms未満です


1
素敵な答え。ハードウェアクロックに関するリンクをお寄せいただきありがとう
Scoop

1
素敵な答え; NTPプロトコルの精度に言及することで改善できます。
アレックスチェンバレン

@AlexChamberlain頭を上げてくれてありがとう、私はそれを追加しようとしていましたが、それは完全に私の心を滑らせました。今追加しました。
ビンセントP

私のPiはネットワークに接続されていますが、時間が30分遅れていることに気付きました。ntpdはデフォルトで有効になっていますか、これを手動で行う必要がありますか?
andig

Raspberry Pi 3まではそうかもしれません。私は2か月前に1つ購入しましたが、少なくとも公式のRaspbian JessieではNTPの時間の更新が行われています。私はその問題で3つのスレッドを開きましたが、誰もが無知です。問題を解決するために時間管理のためにハードウェアモジュールを購入する必要がありました。
ピグマリオン

21

モーガンの答えは、私が問題を解決するために必要なヒントを与えてくれました。

  1. 行くhttp://support.ntp.org/bin/view/Servers/NTPPoolServers
    その後、あなたの国やサーバのリストが表示されます、お住まいの地域を選択します。

  2. /etc/ntp.confファイルを編集します。例

    sudo vim /etc/ntp.conf

    サーバーのリストを、Webページで見つけたものに置き換えます。例えば

    サーバー0.dk.pool.ntp.org iburst
    サーバー1.dk.pool.ntp.org iburst
    サーバー2.dk.pool.ntp.org iburst
    サーバー3.dk.pool.ntp.org iburst

    保存して終了。

  3. ntpデーモンを再起動します。

    sudo /etc/init.d/ntp restart

  4. 日付が正しいことを確認してください。

    日付
    木6月20 13:39:20 CEST 2013

私のサーバーの1つで、日付がすぐに変更されました。もう1つは、数分待ちました。


2
あなたが英国(または別の国)にいるなら、あなただけのスーツ.egに2文字の国コードを変更することができます server 0.uk.pool.ntp.org iburst
Pierz

ステップ4は、約15分後まで機能しませんでした。または、おそらく私が走ったからntpq -pです。私が使用しています: "LinuxはGNU / Linuxのarmv6l 9月19日午後03時25分36秒BST 2015 4.1.7+#817 PREEMPT土をraspberrypi"と"(喘鳴)Raspbian GNU / Linuxの7"
ピーター・モーテンセン

おそらくhwclockまたはfake-hwclock干渉しています(ただし、「/ etc / rc.conf」の部分は古くなっています)
ピーターモーテンセン


そして、5分間のシャットダウン後、5分遅れました(ntpq -p違いはありませんでした)。
ピーターモーテンセン

14

fake-hwclockパッケージをお持ちの場合は、タイムスタンプを保存するトリックも実行して、クロックがリセットされないようにします。デバイスの電源が切れている間は時間が進みませんので、遅れが生じます。また、内部クロックはオンの間にわずかにドリフトします。

インターネット接続(またはサーバーとのLAN)があり、ntp(ntpd / ntpdate)を実行している場合、他の回答が指摘しているように、ネットワーク経由で時間を取得できます。同期すると、非常に正確になります。オンラインサーバーは、コンセンサス「ワールドタイム」も提供します。


興味深いfake-hwclock。マシンがオフのときに誰かがクロックをフリーズしたいのはなぜですか?そのためのユースケースは考えられません。ある?
スクープ

2
@Scoop代替手段は時間を忘れているため、リセットされます。これにより、記録されたタイムスタンプは将来のものなどのようになります。クロックが「フリーズ」すると、カウントがオフの場合でも時間は
進み

1
もちろん、ntpまたは他の方法でクロックを設定しても機能し、fake-hwclockはブート時とシャットダウン時にのみ実行されます。
XTL

1
以下のためのfake-hwclockアーチLinux上で、使用archplusplus.co.uk/post/40202081414/...
levinalex

2
このパッケージは現在、Raspbianにデフォルトとしてインストールされているようです。
ピエルツ

11

Raspberry Piには、費用対効果の高い統合リアルタイムクロック(RTC)がありません。「リアルタイムクロック(RTC)がないのはなぜですか」という質問を参照してください。で公式のよくある質問。これは、Raspberry Piのプラグを抜くと、その時間が失われることを意味します。電源を入れると、時刻は1970年1月1日(別名Unixエポック)に初期化されます。

Raspberry Piは、コンピューター間のクロック同期のためのプロトコルであるNTPを使用して、ネットワーク上で時間を設定します。このプロトコルはインターネットの上で広く使用されていて、コンピュータが同じ時間を持っているのを確実にして、いくつかのマシンが原子時計で時間計算に捧げられるので非常に信頼できます

ntpdは、ブート時間を起動するデーモン(バックグラウンドのソフトウェア)であり、NTPプロトコルを使用して時間を同期します。ntpdファイルで設定できます/etc/ntp.conf。たとえば、これは時間を要求するようにサーバーを設定できる場所です。


前回覚えていませんか?私は1週間前にRaspberry Piをシャットダウンし、その1週間前のdate日付に加えて、昨日と今日(いくつかの昨日と今日の再起動後)の稼働時間からの余分な時間を示しています。(Raspbian、2015年半ばに対応)。
ピーターモーテンセン

実行するcat /etc/fake-hwclock.dataと、最後に時間がfake-hwclock保存された時間が表示されます(明らかに、シャットダウン時に)。fake-hwclockRPiで実際のクロックを模倣するために使用されます。インターネットにアクセスせずに、またはntpd時刻の更新を開始せずに、RPiを起動したと思います。確認できますか?
モーガンクールベ

5

Raspbian Stretch:NTPはデフォルトではインストールされません

Raspbian Stretchには少し変更があったようです。つまり、ntpはインストールされなくなりました。実行しdpkg -l | grep ntpても何も返されません。

どうやら、Stretch ntpはsystemdを優先してアプリケーションを放棄しました。man timesyncd構成設定の詳細については、エントリを確認してください。timesyncd引き続きntpサーバーを使用して時刻を更新します。これらのサーバーを手動で構成する場合は、/etc/systemd/timesyncd.confファイルで構成できます。


1
編集を行った後、サービスを再起動し、その後企業のファイアウォールがポートをブロックsudo systemctl restart timesyncdするjournalctl -u timesyncd -fことでログを確認します。そのような場合は、提供された企業のNTPサーバーURLを使用してください。
typelogic

デーモンの正しい名前はであると考えているsystemd-timesyncdため、再起動するコマンドはsystemctl restart systemd-timesyncd
chb

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.