バックアップ機能付きリアルタイムクロック(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
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