回答:
システム時間を維持する最も一般的な方法は、Network Time Protocolデーモン(NTPd)を使用することです。
NTPdは、ネットワークタイムプロトコルを使用して、GNU / Linuxシステムのソフトウェアクロックをインターネットタイムサーバーと同期させるための最も一般的な方法です。
NTPdは、デフォルトのオペレーティングシステムであるDebian Squeezeにすでにインストールおよび設定されている必要があります。Arch Linuxの場合は手動でインストールして設定する必要があります。
まず、NTPをインストールする必要があります。
$ sudo pacman -S ntp
これで、コマンドラインから手動で更新できます。
$ sudo ntpd -qg
または、/etc/rc.conf
ファイルに追加することにより、起動時にデーモンのリストに追加できます。そのようです。
# /etc/rc.conf
DAEMONS=(!hwclock ntpd)
デーモンリストでhwclock
感嘆符(!
)を前に付けて無効にする必要があることに注意してください。
mlpのProtip:ntpdate
デーモンのリストに追加すると、起動後の時間がより速く修正されます。したがって、デーモンのリストは次のようになります。
# /etc/rc.conf
DAEMONS=(!hwclock ntpd ntpdate)
systemctl enable ntpd.service
はに追加するのと似てい/etc/rc.conf
ます。
RPiの時刻が常に正しいことを保証したい場合、またはネットワークに接続せずに時刻を維持したい場合は、リアルタイムクロック(RTC)を搭載した拡張ボードを購入する必要があります。少なくとも1つは開発中です。
ネットワーク化されていないアプリケーションの場合(またはネットワーク時間が十分でない場合)、RTCクロック(@Alex Chamberlainの回答)をGPSレシーバーまたはVLFレシーバー(NWヨーロッパではRugby MSFになります)から派生した時間で設定できます。両方とも、フィールド展開デバイス(ロボット、フィールドモニタリングなど)の優れたソリューションになる可能性があります。
両方のソリューションは、良い趣味のプロジェクトにもなります。1980年代にRugby MSFレシーバーを構築したことを覚えています。市販のGPS受信機(「パック」)は、NMEA 0183文で時刻と日付を提供します。この情報を抽出するための簡単なコーディングプロジェクトになります。
システムでNTPを常時実行したくない場合は、いくつかの異なるオプションのいずれかを使用して時間を設定できます。
すべてのクロックはドリフトするため、クロックはNTPを使用するほど正確ではないことは明らかです。また、これらのアプリは単一のタイムソースのみを使用するため、選択したソースに問題がある場合、誤った時間を設定する可能性があります。