【RotorHazard】RotorHazardインストール後の調整作業 (NTP関連)

# 31. なんか、色々とやることありましたぁー

### 31-1. NTPクライアント関連の再調整

いただきましたRotorHazard BOXを使って、ラズパイ3Bの設置、ダクトファン、Shutdownスイッチ、デジタル電圧計、RTCモジュール **DS3231** を組み込みました。ですが、その後 RotorHazard Install-Manager のインストールログを見ていて **？？** と気になったところがありました。

以前、下記のようにRTCモジュールである DS3231 を非充電改造して利用をする際のTipsを記事にしましたが、今回本命となるRotorHazardをインストールした段階で正しく動かなくなることがわかったのです。

https://qiita.com/tmac116/items/8d68c4c58092ebd2ace2?1

https://github.com/RotorHazard/RotorHazard/blob/main/doc/Real%20Time%20Clock.md

```
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サーバにして他のセカンダリ機と時間を合わせる仕込みをしたかったものと考えます。ですが、そういったところは何も記載がないのですぅ。ちゃんと書いてくれないとわからないよーｗｗｗ
今回、その部分が垣間見える記載はこちら。(NTPクライアントとして競合してしまうが故の差し替えと思われます。)

https://github.com/RotorHazard/RotorHazard/blob/main/doc/Cluster.md#clock-synchronization

昔々の ntp.conf は少し触っていましたが、利用可能なよう調整していきます。
```
sudo vi /etc/ntpsec/ntp.conf
```
```/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に関する起動時のサービスもなくなっちゃったため、オリジナルのスタートアップ設定を行います。

下記の記事が非常に参考となり、同一作業を行いました。

https://www.snowinnovember.info/archives/20210620-raspberry-pi-rtc2.html

```
sudo vi /etc/systemd/system/hwclock-start.service
```
```/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
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/500291/4c70abbd-e814-ee51-723e-e957cb0dc423.png)





ラズパイ構築編のつづきはこちら

https://qiita.com/tmac116/items/8a810aa32d17c3edbd2d