自動時刻調整
candy-pi-lite サービスを利用すると、インターネット通信をおこなわずに時刻の調整を行うことができます。これにより、ntp通信のためのパケットを抑制したり、インターネットに接続しない閉域網であってもラズパイの時刻を合わせることができるようになります。デフォルトでは、本機能が有効になっていますが、設定により無効にすることができます。ただし、定期的なスケジュールで時刻調整はしておりませんので、下記の説明をご覧いただき、必要に応じてスケジュールによる時刻調整もご利用ください。
ntpを使わない時刻同期
ラズパイの標準的なOS「Raspbian(ラズビアン)」には、通常ntpと呼ばれる時刻同期サービスが動作しています。このサービスにより、インターネット上のntpサーバーと呼ばれる時刻管理用のサーバーと交信してラズパイの時刻の調整を行なっています。
ntpは、ntpサーバーとの通信をUDPで行なっているので、3G/LTE通信モジュールを利用してインターネットに接続した場合、UDPパケットの通信が発生します。また、ntpサーバーのアドレスが名前で示されている場合は、その名前の解決にDNSが利用され、その部分でも通信パケットが発生します。このため、不要な通信を行いたくない場合であっても、時刻調整のためにntpサービスを動かしていると、一定時間ごとに時刻同期のための通信が発生しています。
一方、3G/LTE通信モジュールは、それ自体に時刻を管理する仕組みを持っています。また、最新の時刻を携帯電話ネットワークから取得することもできます。このため、3G/LTE通信モジュールの機能を利用すれば、ntpを利用せずとも時刻の調整を行うことができるのです。
インターネットに接続せずに時刻を同期できる利点は他にもあります。閉域網と呼ばれる固有のネットワーク設定を行った環境へ携帯電話ネットワークで接続する場合でも、その環境にntpサーバーを置く必要もなく時刻の同期をおこなるようになります。
👉candy-pi-lite-service v4.0.2
以降では、この「ntpを使わない時刻同期」は、システム上の時間との時間差が1秒以上ある場合に動作します。ただし、ntpによる時刻同期を行なっている場合はこのような動作をしません。
時刻調整の精度
candy-pi-lite サービスは、シリアル通信を介して3G/LTE通信モジュールから時刻を取得します。また、その時刻は、秒単位までの精度しか持っていません。このため、通信や処理の遅延や誤差を考慮すると1秒前後のずれが生じます。このずれは、ntpで同期を行う場合よりも大きいと考えられるので、精度に関してはntpよりも不利な面もあります。
candy-pi-lite サービスは、このずれの解消のため1秒の補正を行っています。この1秒の値は、必要に応じて利用者の方が変更することも可能です。時刻の補正は、携帯電話のネットワークへ接続する前に行われます。
この時刻調整の値は、/opt/candy-line/candy-pi-lite/environment
にある以下の箇所に定義されています。
# Adjusting time in seconds for calculating current epoch time
DELAY_SEC=1.0
この1.0
の値を任意の値に変えることが可能です。
変更した場合は、candy-pi-lite サービスを再起動してください。
時刻調整スケジュール
USB接続を利用せずに3G/LTE通信を行っているときは、時刻調整を行うために定期的に携帯電話ネットワークからの切断と再接続を行う必要があります。これは、モデム通信のシリアルポートがPPP接続と呼ばれるデータ転送通信に占有されてしまい、それ以外の通信ができなくなっているためです。
利用者の方は、candy-pi-lite サービスが定期的な切断と再接続を行うためのスケジュールを指定することができるようになっています。初期設定では、このようなスケジュールは設定されていません。
もしこの再起動のスケジュールを指定したいときは、/opt/candy-line/candy-pi-lite/environment
にある以下の箇所に定義されている値を変更してください。
# Cron expression to schedule this service restarting
RESTART_SCHEDULE_CRON=""
この値には、crontab表現を指定することができます。
なお、上記のスケジュールの時刻はOSに設定したタイムゾーンに合わせて動作します。したがって、UTCであればUTC時間で、JSTであればJST時間でスケジュールが動作します。タイムゾーンを変更するには、raspi-config
(Raspberry Pi)、tinker-config
(ASUS Tinker Board)あるいはdpkg-reconfigure tzdata
コマンド(Raspberry Pi/ASUS Tinker Board)で変更可能です。タイムゾーンを変更した時は、candy-pi-lite サービスを再起動するかシステムを再起動してください。
時刻調整のための接続
👉candy-pi-lite-service v4.0.0
以降では時刻調整のための接続を行なっておりませんので、以下の説明は当てはまりません
candy-pi-lite サービスは、NTPを使わずに時刻同期を行う場合、通常の通信の前に5秒程度の短い通信の接続を行います。これは、通信モジュールが通信が確立してから初めて時刻の情報を得られるためです(最新のモジュールでは諸事情により3G/LTE関係なく、本処理は必要になりました)。
グローバルネットワークでの時刻調整
時刻同期は携帯電話ネットワークオペレーター(通信キャリア)が提供する機能であるため、日本国外の携帯電話ネットワークオペレーターでは携帯電話ネットワークを用いた時刻同期ができない場合もあるかもしれませんので、必要な場合は事前にご確認ください。
ntpによる時刻調整を行うには
ntpによる時刻調整の有効・無効は、/opt/candy-line/candy-pi-lite/environment
にある以下の箇所に定義されています。
# Set 1 for disabling NTP service
NTP_DISABLED=1
NTP_DISABLED
を0にすると、ntpによる時刻調整を行うようになります。
変更した場合は、candy-pi-lite サービスを再起動してください。
👉candy-pi-lite-service v4.0.2
以降では、ntpによる時刻調整を行うと、モバイルネットワークを使う時刻調整は行いません。