RaspberryPiにはハードウェアクロックがありません。起動するたびにNTPDに日付/時刻を更新させるにはどうすればよいですか?
Raspbian を実行していて、RaspberryPiはイーサネットケーブル。
コメント
- 私はすでにそれを行っています。ボックス。どのディストを使用していますか?
- Raspbian Wheezy
- @ThorbPiはイーサネットケーブル/ dhcpで接続されています。起動後に有効な日付が取得されないため、しばらく時間がかかります。 (10〜45分)
- 数分後に自動的に実行されます。説明されているように、国立標準局time.nist.govのマスタークロックを使用するように設定されていることを確認してください。ここ: raspberrypi.stackexchange.com/questions/68811/ …
- まだこの質問に十分に答えています。つまり、起動後にNTPを介して(つまり、再起動せずに)時刻を同期する方法です。
回答
後周りを検索して、この方法は私のために働いた。ご存知のように、Raspberry Pi3ではデフォルトでNTPが無効になっています。したがって、これを入力するだけで、NTPサポートが有効になります。
sudo timedatectl set-ntp True
timedatectl status
pで結果を確認します>
警告の場合は、sudo timedatectl set-local-rtc true
も実行する必要がある場合があります。
コメント
- ありがとう、これはついに私を助けてくれました、そして以前の答えにもかかわらず、適切な方法のようです。
- それが最良の答えであり、私を大いに助けました。 ‘ sudo ‘を使用すると、パスワードの入力を回避できます(パスワードを実行するスクリプトに役立ちます)。 secondsコマンドの目的は何ですか? set-local-rtc
回答
apt-get install ntpdate
を実行します。
ntpdate
は、イーサネットインターフェイスが起動したときに実行され、ntpサーバーから時刻を設定します(/etc/default/ntpdate
)。
ntpd
が実行されている場合、ntpdateは何も実行しませんが、ntpdate
は起動時-イーサネット接続がある限り、起動時の時間を設定するためにこれがうまくいくはずです。
コメント
- ストックラズビアンにはこれがすべて含まれています。
- @scrussmine did ‘ t。(2013-02-09 wheezy rasbian)
- 私の場合もそうではなく、手動で行う必要がありました。
- 正しく設定されていれば、自動的に行われます。数分かかる場合があります。
-
Linux raspberrypi 4.14.30-v7+ #1102 SMP Mon Mar 26 16:45:49 BST 2018 armv7l GNU/Linux
は’もありませんでした。
回答
時計がかなりずれている場合は、次の手順でntpを強制的に同期する必要があります。
sudo /etc/init.d/ntp stop sudo ntpd -q -g sudo /etc/init.d/ntp start
コメント
- エラーを返します” sudo:ntpd:command not found ”
- ntpdはコマンドを使用するためにインストールされています
- インストールされています。私はそれほど無知ではありません:)
- raspberrypi.stackexchange.com/questions/47542/ … ?そこに詳細を投稿しました。
- これは私の問題の完全な解決策でしたが、再起動するまで一時的なものであることがわかりました。最終的に、シャットダウン時に、ハードウェアクロックに将来の日付があったため、’ hwクロックを更新できないというエラーが発生しました(どのように発生したかはわかりません)。しかし、解決策はhwclockの更新機能でした。これにより、偽のハードウェアクロックが強制的に更新され、起動時に少なくとも現在の時刻に近づいたため、ntpは通常どおり’ジョブを実行できました。
回答
raspi-config
でタイムゾーンを設定すると、RaspberryPiは自動的に更新しますインターネットに接続している場合は、起動時の時間。
-
sudo raspi-config
-
Internationalisation Options
-
I2 Change Timezone
- 地理的領域を選択
- 最寄りの都市を選択
-
Finish
- 今すぐ再起動するには
Yes
を選択します
コメント
- これは私にとってはうまくいきました
-
I2 Change Timezone
オプションは’もう存在しません - 少なくともRaspbianBusterには存在します。
- “国際化オプション”は現在は”ローカリゼーションオプション”
- “最寄りの都市”は適切な方法ではありません。タイムゾーンが属する都市を選択する必要があります。これは最も近いかどうかはわかりません…
回答
フォーラムの投稿を参照 時間Pi3および公式ドングルと同期しません 。
ntpd は、IP / UDPパケットを発行します。 ToSフィールドが0xc0に設定されています。したがって、これは、Wi-Fi内部インターフェースを介して操作したときに私(および他の多くの人)がRaspberryPi3で抱える他の問題と非常に似ています。
回避策として、コマンドを追加します
/sbin/iptables -t mangle -I POSTROUTING 1 -o wlan0 -p udp --dport 123 -j TOS --set-tos 0x00
ファイルへ
/etc/rc.local
出口0行の前。次に、再起動して確認します。
コメント
- XMas用に入手したRPi3をインストールしたときと同じ問題が発生し、問題は解決しました。すばらしい!!!
回答
この質問は明らかに” recycled “何らかの理由で、古い回答もリサイクルするのが適切だと思われます:)
今年は2021年になりました…
この質問は2013年に行われました。ntpd
は、当時のラズビアディストリビューションに含まれていた計時ソフトウェアでした(wheezy
)。ただし、2017年にsystemd-timesyncd
がntpd
に置き換わったときに、stretch
ディストリビューションで変更されました。この変更の理由といくつかの技術的なトレードオフについては、このようなことに興味がある人のためのこの古い回答で説明されています。
ここでの質問に関しては、おそらく 現在の環境 で最も重要なポイントです(post- systemd
)は次のとおりです。現在のRaspbianディストリビューションにntpd
をインストールする場合は、systemd-timesyncd
は”正しいことを行います”!他のNTPデーモンの存在を確認し、それに応じて動作を調整します。 正常に機能します 。コマンドラインで次のように入力すると、すべてを読むことができます:
$ systemctl cat systemd-timesyncd
最後の数行に注意してください:
#別のNTPデーモンがインストールされている場合はtimesyncdを実行しない
ConditionFileIsExecutable =!/ usr / sbin / ntpd
ConditionFileIsExecutable =!/ usr / sbin / openntpd
ConditionFileIsExecutable =!/ usr / sbin / chronyd
ConditionFileIsExecutable =!/ usr / sbin / VBoxService
言い換えると、systemd-timesyncd
は、これらの代替タイムサービスのいずれかがシステムで実行されているかどうかを確認し、実行されている場合は、タイムキーピングサービスの提供を丁寧に延期します。
” force ” ntpd
起動後に更新しますか?!
これはOPでした「質問。答え(2021年)は変更されていません:どのRPiシステムでもこれを行う必要はありません-誰かがデフォルト構成を変更していない限り!これは次のように確認できます。
$ timedatectl Local time: Wed 2021-01-13 00:25:33 GMT Universal time: Wed 2021-01-13 00:25:33 UTC RTC time: n/a Time zone: Europe/London (GMT, +0000) System clock synchronized: yes NTP service: active RTC in local TZ: no
2つの項目に注意してください:
-
System clock synchronized: yes
-
NTP service: active
項目1は、システムクロックがデフォルトのタイムソースと同期していることを示し、項目2はほぼ RPiがデフォルトでNTP
(iv id)の代わりにSNTP
プロトコルを使用するという点でtrue = “a1641f1cd5”>
REF );つまり、これはRPiにタイムソースがあり、それを使用していることを意味します。
までに必要なのはこれだけだと思います。 2021 の日付回答。ただし、これを除く:man timedatectl
を読んでその機能の詳細を確認するか、 TLDRの場合このページには適切な要約があります。
コメント
- システムクロックの同期:いいえ
- @Arrow_Raider:Yer ‘ポイントは???
回答
すでに時刻を更新しているはずです。 NTPDサーバーは、スワップファイルの直後でSSHDの前に起動する必要があります。
/etc/ntp.confファイルをチェックして構成されていることを確認します。
少なくとも1つのサーバーがリストされている必要があります。サーバーにtime.nrc.caを使用しています。
ntp.confのマニュアルページは次のとおりです: http://linux.die.net/man/5/ntp.conf
回答
息子のRasberryPiは、箱から出して試した後、時間を更新しませんでした上記のすべての提案は、手動で更新することはできましたが、自動では更新できませんでした。最後に、他の場所も調べても成功しなかったので、ntpが見つかりました。Rasberry Piに付属のconfファイルには、次の行がコメントアウトされていました:
#restrict 127.0.0.1 #restrict ::1
使用しました
sudo nano /etc/ntp.conf
ターミナルで、ntpconfファイルを次のように編集します。
# Local users may interrogate the ntp server more closely. restrict 127.0.0.1 restrict ::1
これで問題は解決しました。 WiFiとイーサネットケーブルの両方で更新されます。上記のrc.localを変更せずに、WiFiで更新されるかどうかはわかりません。上記の解決策を見つけたときには、すでに変更を加えており、元に戻していないためです。
回答
同様の問題が発生したときに役立つtimedatectl
アプリケーションを見つけました。デフォルトでインストールされ、「-help」を使用すると、ツールの使用方法の概要がわかりやすく簡単に表示されます。
注:タイムゾーンが適切に設定されていることを確認してください。このツールでも同様です。
回答
問題を解決するためにntpを使用する必要はありません。サーバーから日付を読み取るスクリプトがあります。そのスクリプトの結果となるように日付を設定するだけで済みます(Raspberry Piはインターネットに接続されている必要があります)。次に、起動時にそのコマンドを実行する必要があります。
ステップ1:サーバーから日付を取得します。
sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d" " -f5-8)Z"
ステップ2:コマンドをファイル/etc/rc.local
に追加して、起動時に実行します(Ubuntu 16.04で動作)。
sudo gedit /etc/rc.local
クレジット:
1- https://askubuntu.com/a/655528/572294
2- https://askubuntu.com/a/1199/572294
コメント
-
ですが、そうする必要があります。 ‘は、より良く、より速く、より正確で、業界標準です。 ‘適切な基準が存在する場合は、独自の奇妙なものを作成しないでください。
- あまり役に立ちません’ RasPiが24時間年中無休で実行されている場合。
回答
Piが同期しないという同様の問題が発生しました。これらのソリューションはどれも機能しませんでした。ネットワーク環境がNTPポート(123)をブロックしていたことが判明しました。私にとっての解決策は
sudo apt install htpdate
取得元: https://www.raspberrypi.org/forums/viewtopic.php?t=222236
代わりにHTTP呼び出しを介してシステムクロックを更新します。
回答
これ私がとったアプローチです。これらの回答の多くは、ラスピアンシステムを見たときにチェックアウトしなかったことを示しているようでした。
$ cat /etc/os-release PRETTY_NAME="Raspbian GNU/Linux 9 (stretch)" NAME="Raspbian GNU/Linux" VERSION_ID="9" VERSION="9 (stretch)" ID=raspbian ID_LIKE=debian HOME_URL="http://www.raspbian.org/" SUPPORT_URL="http://www.raspbian.org/RaspbianForums" BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
ログに何も表示されなかったことを示していますtimedatectl
が何かを実行していたこと、ntp
がNICのアップ状態で同期していたこと、またはNTPDがインストール/構成されていたこと。
結局、これを/etc/rc.local
に追加しただけです:
$ cat /etc/rc.local logger "Beginning force syncing NTP..." service ntp stop ntpd -gq service ntp start logger "Finished force syncing NTP..."
インストールしましたntp
:
$ sudo apt-get install ntp
これにより/var/log/syslog
になります:
Aug 5 09:10:20 pi-hole ntp[526]: Starting NTP server: ntpd. Aug 5 09:10:20 pi-hole ntpd[555]: proto: precision = 1.458 usec (-19) Aug 5 09:10:20 pi-hole ntpd[555]: Listen and drop on 0 v6wildcard [::]:123 Aug 5 09:10:20 pi-hole ntpd[555]: Listen and drop on 1 v4wildcard 0.0.0.0:123 Aug 5 09:10:20 pi-hole ntpd[555]: Listen normally on 2 lo 127.0.0.1:123 Aug 5 09:10:20 pi-hole ntpd[555]: Listen normally on 3 eth0 192.168.1.85:123 Aug 5 09:10:20 pi-hole ntpd[555]: Listen normally on 4 lo [::1]:123 Aug 5 09:10:20 pi-hole ntpd[555]: Listen normally on 5 eth0 [fe80::f5ea:7663:4ec:784d%2]:123 Aug 5 09:10:20 pi-hole ntpd[555]: Listening on routing socket on fd #22 for interface updates Aug 5 09:10:21 pi-hole ntpd[555]: ntpd exiting on signal 15 (Terminated) Aug 5 09:10:21 pi-hole ntp[661]: Stopping NTP server: ntpd. Aug 5 09:10:21 pi-hole ntpd[674]: ntpd [email protected] Sat Mar 10 18:03:33 UTC 2018 (1): Starting Aug 5 09:10:21 pi-hole ntpd[674]: Command line: ntpd -gq Aug 5 09:10:21 pi-hole ntpd[674]: proto: precision = 0.625 usec (-21) Aug 5 09:10:21 pi-hole ntpd[674]: Listen and drop on 0 v6wildcard [::]:123 Aug 5 09:10:21 pi-hole ntpd[674]: Listen and drop on 1 v4wildcard 0.0.0.0:123 Aug 5 09:10:21 pi-hole ntpd[674]: Listen normally on 2 lo 127.0.0.1:123 Aug 5 09:10:21 pi-hole ntpd[674]: Listen normally on 3 eth0 192.168.1.85:123 Aug 5 09:10:21 pi-hole ntpd[674]: Listen normally on 4 lo [::1]:123 Aug 5 09:10:21 pi-hole ntpd[674]: Listen normally on 5 eth0 [fe80::f5ea:7663:4ec:784d%2]:123 Aug 5 09:10:21 pi-hole ntpd[674]: Listening on routing socket on fd #22 for interface updates Aug 5 09:10:34 pi-hole ntpd[674]: Soliciting pool server 198.98.57.16 Aug 5 09:10:35 pi-hole ntpd[674]: Soliciting pool server 74.82.59.149 Aug 5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 23.131.160.7 Aug 5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 52.37.26.163 Aug 5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 204.2.134.163 Aug 5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 96.126.100.203 Aug 5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 199.223.248.101 Aug 5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 66.228.42.59 Aug 5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 208.75.89.4 Aug 5 09:10:37 pi-hole ntpd[674]: Soliciting pool server 204.2.134.164 Aug 5 09:10:37 pi-hole ntpd[674]: Soliciting pool server 104.236.116.147 Aug 5 09:10:38 pi-hole ntpd[674]: Soliciting pool server 204.9.54.119 Aug 5 09:10:48 pi-hole ntpd[674]: ntpd: time set +6.769186 s Aug 5 09:10:49 pi-hole ntpd[853]: ntpd [email protected] Sat Mar 10 18:03:33 UTC 2018 (1): Starting Aug 5 09:10:49 pi-hole ntpd[853]: Command line: /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 111:114 Aug 5 09:10:49 pi-hole ntp[844]: Starting NTP server: ntpd. Aug 5 09:10:49 pi-hole ntpd[856]: proto: precision = 0.625 usec (-21) Aug 5 09:10:49 pi-hole ntpd[856]: Listen and drop on 0 v6wildcard [::]:123 Aug 5 09:10:49 pi-hole ntpd[856]: Listen and drop on 1 v4wildcard 0.0.0.0:123 Aug 5 09:10:49 pi-hole ntpd[856]: Listen normally on 2 lo 127.0.0.1:123 Aug 5 09:10:49 pi-hole ntpd[856]: Listen normally on 3 eth0 192.168.1.85:123 Aug 5 09:10:49 pi-hole ntpd[856]: Listen normally on 4 lo [::1]:123 Aug 5 09:10:49 pi-hole ntpd[856]: Listen normally on 5 eth0 [fe80::f5ea:7663:4ec:784d%2]:123 Aug 5 09:10:49 pi-hole ntpd[856]: Listening on routing socket on fd #22 for interface updates Aug 5 09:10:49 pi-hole root: Finished force syncing NTP...
コメント
- 機能しない’最小限のラズビアンの場合:
Failed to start ntp.service: Unit ntp.service not found.
そしてntpdは’も存在しません。 Piは間違いなく最終的に時間を稼ぎます。 (’これより前に実行するとHTTPSカールが-kなしで失敗するため、これを調べています) - @ StevenLu-I ‘ A ‘ erを更新してntpのインストールも含めます。
- @ StevenLu-
apt-get install ntp
回答
デフォルトのイメージで以下を使用して、追加のパッケージをインストールせずに時刻を同期します。
timedatectl set-local-rtc 0 timedatectl set-ntp 1 timedatectl status
回答
これはインターウェブのどこかで見つかりました。バスターで動作するようです:
sudo timedatectl set-ntp false && sudo timedatectl set-time "$(date --iso-8601=seconds | cut -d "+" -f1 | tr T " ")" && sudo timedatectl set-ntp true
中間コマンド(set-time
)が本当に正しいかどうかわかりません必要です。