31. なんか、色々とやることありましたぁー
31-1. NTPクライアント関連の再調整
いただきましたRotorHazard BOXを使って、ラズパイ3Bの設置、ダクトファン、Shutdownスイッチ、デジタル電圧計、RTCモジュール DS3231 を組み込みました。ですが、その後 RotorHazard Install-Manager のインストールログを見ていて ?? と気になったところがありました。
以前、下記のようにRTCモジュールである DS3231 を非充電改造して利用をする際のTipsを記事にしましたが、今回本命となるRotorHazardをインストールした段階で正しく動かなくなることがわかったのです。
timedatectl
Local time: 火 2024-04-30 16:53:51 JST
Universal time: 火 2024-04-30 07:53:51 UTC
RTC time: 火 2024-04-30 07:53:51
Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
NTP service: n/a
RTC in local TZ: no
あれれ?そういうことかー!NTP service: n/a となっていますが、RotorHazard Install-Managerでインストールしていた際に、NTPクライアントである systemd-timesyncd がアンインストールされていたのに気が付きました。だから n/a という表示なんすね。(上記がインストールされていないと n/a らしい)
どうしてRaspberry Pi OS (Debian)の標準が削除されたのかを確認をしたところ、RotorHazard Install- Managerを使うと、NTPSec にNTP周りが置き換わるとのことです。これはRotorHazardそのものを複数機を使って構成したとき、プライマリ機をNTPサーバにして他のセカンダリ機と時間を合わせる仕込みをしたかったものと考えます。ですが、そういったところは何も記載がないのですぅ。ちゃんと書いてくれないとわからないよーwww
今回、その部分が垣間見える記載はこちら。(NTPクライアントとして競合してしまうが故の差し替えと思われます。)
昔々の ntp.conf は少し触っていましたが、利用可能なよう調整していきます。
sudo vi /etc/ntpsec/ntp.conf
#pool 0.debian.pool.ntp.org iburst ※先頭に#を付けてコメント化
#pool 1.debian.pool.ntp.org iburst ※先頭に#を付けてコメント化
#pool 2.debian.pool.ntp.org iburst ※先頭に#を付けてコメント化
#pool 3.debian.pool.ntp.org iburst ※先頭に#を付けてコメント化
pool ntp.nict.jp iburst ※新しい行の追加
pool ntp.jst.mfeed.ad.jp iburst ※新しい行の追加
/etc/systemd/timesyncd.conf で編集した2つのサーバをここで書きます。また、サービスとして登録をしてあるかどうかを確認してみましょう。
systemctl | grep ntp
ntpsec.service loaded active running Network Time Service
ntpsec-rotate-stats.timer loaded active waiting Rotate ntpd stats daily
おぉぉ。ちゃんとサービスとして ntpsec.service という名称で既に登録されているようです。他の挙動も確認できればと思いますので service restart せずに sudo reboot で再起動をしちゃってください。その後、接続できたら改めて下記のように入力して動作確認します。
sudo systemctl status ntpsec.service
● ntpsec.service - Network Time Service
Loaded: loaded (/lib/systemd/system/ntpsec.service; enabled; preset: enabled)
Active: active (running) since Tue 2024-04-30 16:31:54 JST; 1h 0min ago
Docs: man:ntpd(8)
Process: 678 ExecStart=/usr/libexec/ntpsec/ntp-systemd-wrapper (code=exited, status=0/SUCCESS)
Main PID: 721 (ntpd)
Tasks: 1 (limit: 755)
CPU: 1.116s
CGroup: /system.slice/ntpsec.service
mq721 /usr/sbin/ntpd -p /run/ntpd.pid -c /etc/ntpsec/ntp.conf -g -N -u ntpsec:ntpsec
4月 30 16:32:19 rotorhazard ntpd[721]: DNS: dns_check: processing ntp.nict.jp, 8, 101
4月 30 16:32:19 rotorhazard ntpd[721]: DNS: Pool taking: 2001:df0:232:eea0::fff4
4月 30 16:32:19 rotorhazard ntpd[721]: DNS: Pool taking: 2001:ce8:78::2
4月 30 16:32:19 rotorhazard ntpd[721]: DNS: Pool taking: 2001:df0:232:eea0::fff3
4月 30 16:32:19 rotorhazard ntpd[721]: DNS: Pool taking: 133.243.238.164
4月 30 16:32:19 rotorhazard ntpd[721]: DNS: Pool taking: 133.243.238.163
4月 30 16:32:19 rotorhazard ntpd[721]: DNS: Pool taking: 133.243.238.244
4月 30 16:32:19 rotorhazard ntpd[721]: DNS: Pool taking: 61.205.120.130
4月 30 16:32:19 rotorhazard ntpd[721]: DNS: Pool taking: 133.243.238.243
4月 30 16:32:19 rotorhazard ntpd[721]: DNS: dns_take_status: ntp.nict.jp=>good, 8
うん、状態も active ですし問題なさそうです。下記コマンドでもちゃんとレスポンスが返ってきました。これで時計関係は問題ないものと考えます。
sudo ntpq -p
remote refid st t when poll reach delay offset jitter
=======================================================================================================
ntp.nict.jp .POOL. 16 p - 256 0 0.0000 0.0000 0.0005
ntp.jst.mfeed.ad.jp .POOL. 16 p - 256 0 0.0000 0.0000 0.0005
+ntp3.jst.mfeed.ad.jp 133.243.236.19 2 u 107 256 377 8.8953 -0.1800 0.9327
+ntp2.jst.mfeed.ad.jp 133.243.236.18 2 u 126 256 377 8.2843 0.0101 1.7766
+ntp1.jst.mfeed.ad.jp 133.243.236.17 2 u 125 256 377 8.5047 0.2462 1.9980
+ntp-a3.nict.go.jp .NICT. 1 u 117 256 377 7.6390 -0.8020 0.8620
+2001:ce8:78::2 .NICT. 1 u 148 256 377 20.6028 -2.2080 1.1631
+ntp-a2.nict.go.jp .NICT. 1 u 64 256 377 10.5135 -0.8622 3.0906
+ntp-b3.nict.go.jp .NICT. 1 u 113 256 377 6.7067 -0.2551 1.9484
+ntp-b2.nict.go.jp .NICT. 1 u 61 256 377 9.3519 0.8338 1.3990
+ntp-a3.nict.go.jp .NICT. 1 u 54 256 377 7.5439 0.1309 2.4854
+ntp-k1.nict.jp .NICT. 1 u 38 256 377 16.4346 0.0002 2.5135
*ntp-a2.nict.go.jp .NICT. 1 u 189 256 377 7.0354 -0.3564 1.9597
#【 * 】は、参照&同期中のNTPサーバ
#【 + 】は、クロック不整合検査に合格したNTPサーバ
#【 】は、サーバ参照していないこと示す
31-2. RTCモジュールの再確認と、起動時のオリジナルサービス登録
前回のRTCモジュールでの記事では標準であった systemd-timesyncd を使った動作確認をしていますが、RotrorHazard Install-Managerを使ったことでアンインストールされてしまいました。そのため、RTCに関する起動時のサービスもなくなっちゃったため、オリジナルのスタートアップ設定を行います。
下記の記事が非常に参考となり、同一作業を行いました。
sudo vi /etc/systemd/system/hwclock-start.service
[Unit]
Description=hwclock-start to read rtc and write to system clock
After=sysinit.target
[Service]
Type=oneshot
ExecStart=/sbin/hwclock –hctosys –utc
[Install]
WantedBy=basic.target
そして、下記のようにsystemctlサービスのリロード、サービス登録、サービス起動を実施します。
$sudo systemctl daemon-reload
$sudo systemctl enable hwclock-start.service
$sudo systemctl start hwclock-start.service
最後に正常に登録されているか?を下記コマンドで、何かおかしなメッセージ等が出ていないかを確認してください。また意図的に再起動をして、/var/log/boot.log を確認して、このサービスが正常に起動できているかも確認ください。(FAILDになっていないか)
systemctl status hwclock-start.service
ラズパイ構築編のつづきはこちら