Howto

リアルタイムクロックへの時刻の保存方法

バックアップ機能付きリアルタイムクロック(RTC)搭載のArmadilloで、電源OFF時にも時刻を保持する方法を紹介します。

1.Linuxシステムにおける時間の管理

Linuxシステムでは時間は二つの時計、システムクロックとハードウェアクロックで管理されています。

システムクロックはLinuxカーネルが管理している時計で、CPUのタイマー割り込みによって駆動されます。システムクロックは、UTC(Universal Time, Coordinated、協定世界時) 1970年1月1日 00時00分00秒(紀元、エポック)からの経過秒数で管理されています。Linuxシステムでは、システムクロックがすべての動作の基準となります。システムクロックを参照、設定するには、dateコマンドを使用します。


[armadillo ~]# date
Fri Dec 19 17:36:34 JST 2014

ハードウェアクロックは、CPUとは独立したRTCによって管理される時計です。システムに電源が供給されていない間も、バッテリや外部電源などで動作しつづけます。Linuxシステムは、起動時にハードウェアクロックを参照し、システムクロックを設定します。RTCが保持している時刻を参照したり、RTCに時刻を設定するにはhwclockコマンドを使用します。


[armadillo ~]# hwclock
Fri Dec 19 17:36:36 2014  -0.173615 seconds

2.システムクロックの設定

ハードウェアクロックを設定する前に、まず、システムクロックを設定します。システムクロックは、dateコマンドを使い手動で設定する方法の他に、ntpclient1やntpdateコマンド2を使用してNTPサーバーから時刻を取得して設定することもできます。

dateコマンドを用いたシステムクロックの設定


[armadillo ~]# date -s [日時]

2014年11月22日12時34分56秒に設定する例を次に示します。


[armadillo ~]# date -s 112212342014.56
Armadilloでは、BusyBoxのdateコマンドを利用します。多くのPC Linuxに標準インストールされているCoreutilsのdateコマンドとは、指定可能な時刻のフォーマットが異なる場合があります。

ntpclientを用いたシステムクロックの設定


[armadillo ~]# ntpclient -h [ntpサーバのIPアドレス] -s

独立行政法人情報通信研究機構(NICT)の公開NTPサービスを利用する例を次に示します。


[armadillo ~]# ntpclient -h ntp.nict.jp -s

ntpdateを用いたシステムクロックの設定


[armadillo ~]# ntpdate [ntpサーバのIPアドレス]

独立行政法人情報通信研究機構(NICT)の公開NTPサービスを利用する例を次に示します。


[armadillo ~]# ntpdate ntp.nict.jp

3.ハードウェアクロックの設定

hwclockコマンドを使用すると、システムクロックをハードウェアクロック(RTC)に反映させることができます。


[armadillo ~]# hwclock --systohc --utc

  1. Armadillo-400シリーズでは標準インストールされています。 

  2. ntpdateは、デフォルトでは入っていません。menuconfigなどで選択してください。