Raspberry Piの時間はどのように維持されますか?


17

最新のRaspbianリリースでRaspberry Piの時間はどのように維持されますか?NTPサーバーから内部クロックを設定するものは何ですか?NTPサーバーが利用できない場合はどうなりますか?

私のプログラムから、NTPから時間が設定されているかどうかを判断し、設定されていない場合は設定するようにユーザーに求めています。



4
time.now <2010年よりも小さい場合-時間は設定されません。他のことを知る必要はありません。時間はパワーダウン時に節約されず、UNIX / POSIX仕様に従って1970年になります。時間が不正確かどうかを調べるには、NTPを照会して現地時間を比較する必要があります。タイムサーバーに問い合わせることなく、時間が同期していないかどうかを判断することはできません。
ピョートルクラ

4
time.now <2010は、RPiが前回のシャットダウン時刻から現在時刻を設定するため、機能しません。これが、必要に応じてこの動作を無効にできるように、時間の設定方法を知りたい理由です。

かぼちゃ-この質問は、内部時計のドリフトにどのように関係していますか?

1
たぶん、これらの質問の重複を避けるために、この質問のタイトルはより具体的であるべきです。
XTL

回答:


22

Raspbianには、計時のための2つのソフトウェアソリューションがあります。以来NTPは、ネットワーク接続を必要とし、あなたのラズベリーパイがネットワークに接続されていない場合、それはかなり役に立たないですが、それはまた、使用して偽の-hwclockのを。現在のクロックを定期的に保存し、起動時にロードします。

pi@raspberrypi ~ $ cat /etc/fake-hwclock.data 
2012-08-15 03:17:01

これはあまり正確ではありませんが、リブートするたびに1970年に戻る時間の問題はなくなります。


Jivingsを推測してください!:-)
ピョートルクラ

@ asalamon74:fake-hwclockを無効にする方法を追加できますか、それをアンインストールする必要がありますか?

2

NTP統計を記録してから、プログラムのログを解析できます。

NTPデーモンの設定は、ファイルに保存されます/etc/ntp.confstatsdirNTP統計ログを有効にするディレクティブを含む行をコメント解除します。参照されたディレクトリが存在し、userに対して書き込み可能であることを確認してくださいntpd


1

NTPサーバーによって時間が設定されているかどうかを確認するには、ntpq -pを使用してみてください。次のようになります*。

$ ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*223.212.138.2    .MRS.           1 u  424  512  377    4.080   -4.551  21.857
+ts0.tttsc.nvm.e  .GPS.           1 u  387  512  363    1.304   -7.563  28.405
+218.89.10.3      217.13.17.82    2 u  334  512  377    1.853   -4.562  19.474

NTPサーバーに到達して時刻を設定した場合、ある行の「リーチ」は0を超えます。0、1、3、7、17、37、77、177、377に沿って8ビット8進数でスライドします。

またはこれ-grep 'stratum' <16またはsync_ntp(これは明らかにRPiではありません)

$ ntpq -c rl
associd=0 status=0615 leap_none, sync_ntp, 1 event, clock_sync,
version="ntpd 4.2.6p5@1.2349-o Mon Jul 18 09:22:49 UTC 2013 (1)",
processor="x86_64", system="Linux/2.6.32-431.29.2.el6.x86_64", leap=00,
stratum=4, precision=-21, rootdelay=40.242, rootdisp=315.102,
refid=192.168.1.123,
reftime=d82131cd.fbb96c5e  Thu, Nov 27 2014 13:14:53.983,
clock=d82138e6.fd03bdd1  Thu, Nov 27 2014 13:45:10.988, peer=61770, tc=9,
mintc=3, offset=5.214, frequency=52.475, sys_jitter=12.217,
clk_jitter=23.319, clk_wander=1.373
$

別の方法(RPIではntpstatはすぐには利用できないと思います)

$ ntpstat
synchronised to NTP server (192.168.1.123) at stratum 4
   time correct to within 310 ms
   polling server every 512 s

ここで説明されている終了コードも使用してくださいhttp://www.cyberciti.biz/faq/linux-unix-bsd-is-ntp-client-working/明らかにRPi固有ではありません...

*タイムサーバーのアドレスは本物ではありません


-1

計時はすべてソフトウェアで行われます。NTPを使用しないと、計時は行われません。

クロックが設定されているかどうかを確認する場合dateは、Unixエポックを表示するかどうかを確認するために使用します。これは、Piのデフォルト設定です。


2
間違っています。RPiは、ネットワーク接続がない場合の最後のシャットダウン時刻から現在時刻を設定します。そのため、時計は常に正しい時間よりもランダムな時間であり、必ずしもUnixエポックではありません。
ガイ

2
私のPiでは確かにそうではありません。ネットワークに接続せずに起動する場合は、エポックです。私は今これを見ることができます。
-Jivings

2
おそらくディストリビューションに依存します。
アレックスチェンバレン

1
@AlexChamberlain奇妙な矛盾があるようです。
Jivings

1
@Jivings RaspbianにあるというソフトウェアがRaspbian fake-hwclockにある場合、おそらくArchにはありません。Archが無視する綿毛のような音。
アレックスチェンバレン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.