PiZero2W+GPS/PPSでMacOSを高精度に時刻合わせする その5
その4の記事までで基本的な設定は完了しています。このまま運用しても問題ありませんが、無理なく楽して実運用するためにもう一工夫しましょう。
実際の運用を想定する
日常ユースではGPSでの時刻合わせが必要になるケースはほとんどないと思いますので、普段はPiZero2Wを外し、FT8運用時のみPiZero2Wを接続することになると思います。
chronyを再起動する
この抜き差しでchronydが自動的に時刻ソースを再選択してくれればいいのですが、動作を眺めている限りではあまりスムーズに切り替わらないようです。PiZero2Wを接続して測位が完了し、信頼できる時刻ソースとして動作し始めたであろうタイミングで
% sudo chronyc shutdown
% sudo chronyd
という感じでchronydを再起動するのが確実です。
Automatorを使う
このchrony再起動ですが、毎回ターミナルを開いてコマンドを実行するのは正直手間です。これをAutomatorで自動化して楽しましょう。
まず、Automatorを起動してファイル→新規と選択します。
ダイアログからアプリケーションを選択すると、編集画面が表示されます。左から二番目のペインから、「シェルスクリプトを実行」を選択します。
追加された「シェルスクリプトを実行」モーダルの編集枠に、以下のコードを実装します。
osascript -e 'do shell script "/opt/homebrew/bin/chronyc shutdown; /opt/homebrew/sbin/chronyd" with prompt "chronyを(再)起動します。" with administrator privileges'
単純にsudoを呼ぶと、パスワードを入力させるダイアログが表示されません。上記のようにosascriptと組み合わせることで、実行時にパスワードを入力させて管理者権限を取得することができます。
編集できたら、ファイル→保存で名前を付けて保存します。保存先は任意の場所で構いません。
デスクトップに保存した場合、以下のようなアイコンが追加されます。これをダブルクリックしてみましょう。
問題なくスクリプトが実行されれば、パスワードを求めるダイアログが表示されます。
パスワードを入力してOKを押せば、chronyが再起動します。
RUMlogNGから自動起動する
さらにもう一歩押し進めて、WSJT-X同様にRUMlogNGの起動時に自動的に実行されるようにしてみましょう。
RUMlogNGを起動し、設定画面を開きます。
左下のAuto startのApplications一覧の右側にある「+」ボタンをクリックしてファイル選択ダイアログを開き、先ほど保存したAutomatorスクリプト (ここではデスクトップのrestartChrony) を選択します。
Applicatioins一覧にAutomatorスクリプトが追加されていればOKです。次回から、RUMlogNGの起動時に自動的にchronyが再起動されるようになります。
もちろん、手動でrestartChronyを実行することも可能ですし、ターミナルからコマンドを実行しても問題ありません。
Touch IDへの変更
今回の対応では管理者権限を取得するのにパスワードを入力させていますが、これをTouch IDに変更することも可能です。ただし、sudo実行時のプロンプトがすべてパスワードからTouch IDに変更されてしまうため、今回は対応していません。
もしTouch ID対応に興味があれば、/etc/pam.d/sudo, pam_tid.so あたりをキーワードに検索してみて下さい。
同期してないっぽい時
RUMlogNGを起動したままPiZero2Wを抜き差ししたり、ノートPCの蓋を閉じてサスペンド→レジュームしたりした後、時刻同期がなされなくなる可能性があります。そのような時はここで作成したAutomatorファイル (restartChrony) を手動で実行してchronyを再起動して下さい。
その他
ケーシング
当面は公式ケースに入れて運用する予定です。ショート等のリスクがあるので、裸で運用するのはお奨めできません。PiZero2Wは必ず何らかのケースに納めて動作させましょう。
なお、GPIOピンのコネクタに力が掛かって抜けたりしないよう、GPS側のケーブルは輪ゴムか何かでケースに括り付けてもよいかも知れません。
排熱
その4の表題の写真のPiZero2Wには、余っていたRasPi5用のヒートシンクを気休め程度に貼り付けています。
インターネット共有
設定が完了してしまえばPiZero2Wからインターネットに出ることはありません。セキュリティホールになることは考えにくいですが、万が一のことを考えて、インターネット共有は無効に戻しておきましょう。