この記事はRaspberry Piを起動するたびに現在時刻を設定する方法をまとめたものです。 東京デバイセズTDPC0205(時計ドングル)に時刻を保存しておき、起動時に読み込んでセットします。
前提
- Raspberry Pi および 東京デバイセズ TDPC0205 時計ドングルを用意してください。
- TDPC0205にはあらかじめ正しい日本標準時がすでに設定されているものとします。
- Raspberry PIには制御コマンドTD-USBが正常にコンパイルされ、カレントディレクトリにインストールされているものとします。
- TD-USBのインストール方法についてはGitHubのREADMEを参照してください。
TDPC0205の動作確認
TDPC0205をUSBポートに挿入してget操作をテストします。 正常に現在時刻が出力されることを確認します。
$ sudo ./td-usb tdpc0205 get
20XX-XX-XXTXX:XX:XX
タイムゾーンの設定
RaspberryPiのタイムゾーンはデフォルトでUTCとなっています。 TDPC0205に記録している日時がローカルタイム(日本標準時など)の場合には、RaspberryPi側のタイムゾーンを設定します。UTCの場合にはこの設定は必要ありません。
$ raspi-config
-> Localisation options
-> Timezone
ntpをオフにする
Raspberry Piではデフォルトでntpが有効となっています。 dateコマンドで時刻を設定してもすぐに元にもどってしまいますので無効化します。
$ sudo timedatectl set-ntp false
dateコマンドで現在時刻を設定する
TD-USBコマンドの実行結果は、直接dateコマンドの引数に渡すことができる書式となっています。現在時刻を設定するには次のコマンドを参照してください:
$ sudo date -s `/path/to/td-usb tdpc0205 get`
毎回起動時にTDPC0205から現在時刻を設定するには、このコマンドを起動スクリプト(/etc/rc.local)等に設定してください。