HOME → 1 Raspberry Pi → 02 運用・管理 → 

Raspberry Pi 4 デジタル時計の時刻を合わせる

Raspberry Pi 運用・管理
NTPでの時刻合わせ
 
この所、「SD Card Copier」を使う機会が増え「X Window」で作業するようになってから、Raspberry Pi 4 の「デジタル時計」が合っていないことに、今更ながら気付く。
 
Raspberry Pi 4 の「デジタル時計」
 
以下、Raspberry Pi の時刻を合わせを行った記録。
 
 

 

スポンサー リンク

 

 
 
 
 
 
1. Raspberry Pi の時計
 
【timedatectl】コマンド:時刻やタイムゾーンを表示/設定。
【timedatectl】コマンド
 
【timedatectl】コマンドで確認してみると、日時がずれており、「RTC time」が【 n/a 】になっている。
 
 
Raspberry Pi は、RTCを持っていない。
 
 

 リアルタイムクロック(real-time clock、RTCと略記)は、
コンピュータなどが内蔵する時計や、その機能が実装されている集積回路(IC)のことを指す。リアルタイムクロックはシステムの電源が切られていてもバッテリバックアップなどにより「時刻」を刻み続けることが特徴である。
これに対し、オペレーティングシステムが持つ時刻機能(以下システム時刻)はタイマーにより「時間」を測定しそれを積算するもので、分解能はリアルタイムクロックに勝るが、シャットダウンすると時刻情報が失われ、次にシステムを起動したときにRTCを参照して設定する必要がある。

 
時計回路がないRaspberry Piは、電源をOFFにすると時計が止まり、次にONにしたときには、前回OFFにした時刻から時計が再開する。
 
Raspberry Pi には、RTCが無い代わりに擬似的なハードウェアクロックを実現する「fake-hwclock」が存在する。
 
この「fake-hwclock」パッケージが、シャットダウン時に現在の時刻を記録し、起動時(直後)にその時刻から始めるという処理を行う。
 
 
★『Raspberry Piは、標準でインターネットに接続されていると、自動で時刻合わせが行われる』・・・は、ホントか?
★『初期設定では、ネットワーク的に遠いDebian標準のNTPサーバーを参照している』・・・は、ホントか?
 
 
 
2. 手動による時刻合わせ
 
【date】コマンド:現在の日時を表示/変更。
【date】コマンド:現在の日時を表示/変更
 
上記の例は、現在の日時を表示した後、変更を行った結果。
 
時刻をセットする記述。
sudo date --set='yyyy/mm/dd hh:mm:ss'
 
 
 
3. NTPによる時刻合わせ
 
NTP(Network Time Protocol)とは
ネットワークを介して時刻同期を行うプロトコル。
 

 Raspberry Piの時間を合わせるには
NTP(Network Time Protocol)のデーモンを活用する必要があります。RaspbianにはNTPデーモンが最初からインストールされているので、設定ファイル /etc/systemd/timesyncd.conf を編集することによって、RTCを持たない Raspberry Pi の時間を正確にすることができます。

 
 
「 /etc/systemd/timesyncd.conf 」の、バックアップ。
cd /etc/systemd
ls -l timesyncd.conf*
sudo cp -p timesyncd.conf timesyncd.conf.org
 
「 /etc/systemd/timesyncd.conf 」の、バックアップ
 
「 /etc/systemd/timesyncd.conf 」を編集。
sudo nano /etc/systemd/timesyncd.conf
 
「 /etc/systemd/timesyncd.conf 」の初期状態。
「 /etc/systemd/timesyncd.conf 」の初期状態
 
『Debian標準のNTPサーバーを参照』は、コメントアウトされている。
 
追記内容。
NTP=ntp.jst.mfeed.ad.jp ntp.nict.jp
FallbackNTP=time.google.com

NTP=ntp.jst.mfeed.ad.jp ntp.nict.jp FallbackNTP=time.google.com

 
参照するNTPサーバ
ntp.nict.jpjpnict公開の日本のNTPの元締め。
・ntp.jst.mfeed.ad.jp:インターネットマルチフィード(MFEED) 時刻情報提供サービス for Public で、2ndNTPプロバイダとして有名。
・time.google.comGoogleさん。
 
NTPの有効化。
sudo timedatectl set-ntp true
 
デーモンを再ロードして、サービスの再起動を行う。
sudo systemctl daemon-reload
sudo systemctl restart systemd-timesyncd.service
 
"time"に関するプロセスの確認。
ps -ax | grep "time"
 
プロセスの確認
 
サービスの確認。
sudo systemctl status systemd-timesyncd
 
サービスの確認
「q」を入力すると終了。
 
 
以上。
(2020.08.24)
 

 

スポンサー リンク

 

             

 

 

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください