見出し画像

PiZero2W+GPS/PPSでMacOSを高精度に時刻合わせする その5

その4の記事までで基本的な設定は完了しています。このまま運用しても問題ありませんが、無理なく楽して実運用するためにもう一工夫しましょう。


実際の運用を想定する

日常ユースではGPSでの時刻合わせが必要になるケースはほとんどないと思いますので、普段はPiZero2Wを外し、FT8運用時のみPiZero2Wを接続することになると思います。

chronyを再起動する

この抜き差しでchronydが自動的に時刻ソースを再選択してくれればいいのですが、動作を眺めている限りではあまりスムーズに切り替わらないようです。PiZero2Wを接続して測位が完了し、信頼できる時刻ソースとして動作し始めたであろうタイミングで

% sudo chronyc shutdown
% sudo chronyd

という感じでchronydを再起動するのが確実です。

Automatorを使う

このchrony再起動ですが、毎回ターミナルを開いてコマンドを実行するのは正直手間です。これをAutomatorで自動化して楽しましょう。

まず、Automatorを起動してファイル→新規と選択します。

Automatorを新規作成

ダイアログからアプリケーションを選択すると、編集画面が表示されます。左から二番目のペインから、「シェルスクリプトを実行」を選択します。

「シェルスクリプト」を選択
シェルスクリプトの編集

追加された「シェルスクリプトを実行」モーダルの編集枠に、以下のコードを実装します。

osascript -e 'do shell script "/opt/homebrew/bin/chronyc shutdown; /opt/homebrew/sbin/chronyd" with prompt "chronyを(再)起動します。" with administrator privileges'

単純にsudoを呼ぶと、パスワードを入力させるダイアログが表示されません。上記のようにosascriptと組み合わせることで、実行時にパスワードを入力させて管理者権限を取得することができます。

編集できたら、ファイル→保存で名前を付けて保存します。保存先は任意の場所で構いません。

名前を付けて保存

デスクトップに保存した場合、以下のようなアイコンが追加されます。これをダブルクリックしてみましょう。

Automatorのアイコンが追加される

問題なくスクリプトが実行されれば、パスワードを求めるダイアログが表示されます。

パスワードを入力

パスワードを入力してOKを押せば、chronyが再起動します。

RUMlogNGから自動起動する

さらにもう一歩押し進めて、WSJT-X同様にRUMlogNGの起動時に自動的に実行されるようにしてみましょう。

RUMlogNGを起動し、設定画面を開きます。

RUMlogNGの設定画面

左下のAuto startのApplications一覧の右側にある「+」ボタンをクリックしてファイル選択ダイアログを開き、先ほど保存したAutomatorスクリプト (ここではデスクトップのrestartChrony) を選択します。

restartChronyがAuto startに追加される

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からインターネットに出ることはありません。セキュリティホールになることは考えにくいですが、万が一のことを考えて、インターネット共有は無効に戻しておきましょう。


いいなと思ったら応援しよう!

JQ3JUK アマチュア無線局
よろしければ応援お願いします。頂いたチップはアマチュア無線の活動に使わせて頂きます。