ブログ

Armadillo-IoT G3: システムクロックとハードウェアクロックを任意の値に設定する方法

at_shigehisa.y…
2019年6月3日 14時49分

デバッグ時やアプリケーション動作を検証するために、Linuxの時刻を任意の値に設定したい場合があります。 本ブログでは、システムクロックとハードウェアクロックを任意の値に設定する方法をご紹介します。 なお、Linuxの時間管理やシステムクロックとハードウェアクロックに関しては、Howto : リアルタイムクロックへの時刻の保存方法を参照して下さい。

■ 設定方法

始めにdateコマンドで、現在の時刻を確認します。

root@armadillo:~# date
Sun May 26 12:56:28 UTC 2019
root@armadillo:~#

これを例えば、2019年5月21日20:37:30に変更したい場合、以下の手順を行うことで時刻が設定できます。

始めに、適当なエディタで/etc/default/ntpdateを開き、「NTPSERVERS=...」の行をコメントアウトします。

# The settings in this file are used by the program ntpdate-debian, but not
# by the upstream program ntpdate.

# Set to "yes" to take the server list from /etc/ntp.conf, from package ntp,
# so you only have to keep it in one place.
NTPDATE_USE_NTP_CONF=yes

# List of NTP servers to use  (Separate multiple servers with spaces.)
# Not used if NTPDATE_USE_NTP_CONF is yes.
# NTPSERVERS="0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3..
debian.pool.ntp.org"     <== この行をコメントアウト

# Additional options to pass to ntpdate
NTPOPTIONS=""

次に、以下のコマンドを実行します。

root@armadillo:~# timedatectl set-ntp false
systemd[1]: apt-daily.timer: Adding 8h 55min 32.002850s random time.
root@armadillo:~# date 021514032017.15
Wed Feb 15 14:03:15 UTC 2017
root@armadillo:~# hwclock --systohc --utc
root@armadillo:~#

設定が完了したらArmadilloを再起動します。

root@armadillo:~# reboot
[  OK  ] Stopped target Bluetooth.
[  OK  ] Closed Load/Save RF Kill Switch Status          Stopping Session c1 of user root.
[  OK  ] Stopped target Graphical Interface.
[  OK  ] Stopped target Multi-User System.
・・・・・・・・・・・・・・・・ 途中省略

Armadilloにログイン後、以下のコマンドを実行して目的の時刻にクロックが設定されていることを確認します。

root@armadillo:~# timedatectl status
      Local time: Wed 2017-02-15 14:05:43 UTC
  Universal time: Wed 2017-02-15 14:05:43 UTC
        RTC time: Wed 2017-02-15 14:05:43
       Time zone: Etc/UTC (UTC, +0000)
 Network time on: no
NTP synchronized: no
 RTC in local TZ: no
root@armadillo:~#

■ 注意事項

  1. RTCバックアップ用電池がArmadilloに取り付けられいない場合、上記手順で時刻を変更しても、設定した値はArmadilloを再起動したら反映されません。 例えばArmadillo-G3の場合、RTCバックアップ用電池をCON13に取り付けて時刻を変更して下さい。CON13に関しては、 17.10. CON13 RTCバックアップインターフェース1 を参照して下さい。

  2. RTCバックアップ用電池の電圧が低い場合、RTCは正常に動作しません。 RTCバックアップ用電池の電圧を得る方法およびRTC動作電圧に関しては、Armadillo-IoT G3: RTCバッテリーの電圧を取得する方法を参照して下さい。