【注意】この記事には、ラズパイやラズパイで動くC言語で書かれたソフトの内容を含みます。しかし、私はこれらの専門家では無く素人です。記事内容に誤りがあるかも知れません。
以前、ラズパイ5にGNSSモジュールを繋げて、Straturm 1相当のNTPサーバーを作りました。RPi5とGNSS(GY-NEO-6MV2)
あの時の環境で使用したラズパイ5を、ラズパイ2に変更して Straturm 1相当のNTPサーバーにしようとしたら、相当苦労しました。
この記事は、その苦労話です。
↓ この画像は、相当な苦労と時間を費やした成果で得た、思い通りに動く様になった時のものです。
何に苦労と時間を費やしたかと言うと、上記の画像にある緑、黄、赤のLEDが点灯しないのです。思い通りに点灯するまでに相当な苦労をしました。
↓ 自作ソフトAとBの関係を示すフローチャート。自作ソフトAは同期先判定を担当、自作ソフトBはLED点灯を担当。
↑ フローチャートで分かる通り、自作ソフトBは、自作ソフトAに依存してします。それは、自作ソフトAの判定結果で変化する共有メモリ内の情報を自作ソフトBで読み取り、LEDを点灯させているからです。
LEDが点灯しなかった原因は?
誤り → After = chrony.service
正解 → After = chronyd.service
↑ 私、ドヤ顔で書いていません。恥ずかしいし、「こんなんで記事書くな」と思った。けど、この記事は残します。
気を取り直して、上手くLEDを点灯させる為の自作ソフトAとB、それぞれのユニットファイルを見てみます。
先に起動させたい自作ソフトAのユニットファイルは
After = chronyd.service
自作ソフトAの次に起動させたい、自作ソフトBのユニットファイルは
After = 自作ソフトA.service

