| コマンド名称 |
hwclock |
| コマンド機能 |
ハードウェア・クロック (RTC) の読み取りと設定を行う |
| 機能概要 |
ハードウェア・クロックにアクセスするためのツールである。現在の時刻の表示、指定した時刻へのハードウェア・クロックの設定、ハードウェア・クロックをシステム時刻に合わせる
(およびその逆)、といった機能を持つ |
| コマンドの由来 |
|
| RPMパッケージ名 |
util-linux |
| コマンド書式 |
hwclock -r or hwclock --show
hwclock -w or hwclock --systohc
hwclock -s or hwclock --hctosys
hwclock -a or hwclock --adjust
hwclock -v or hwclock --version
hwclock --set --date=newdate
hwclock --getepoch
hwclock --setepoch --epoch=year
その他のオプション:
[-u|--utc] --localtime --noadjfile --directisa --test [-D|--debug] |
| オプション |
--show
ハードウェア・クロックを読んで時刻を標準出力に表示する。ここで表示される時刻は常にローカル・タイムである。ハードウェア・クロックを協定世界時にしていても表示はローカル・タイムである。
--utc オプションの部分を参照すること
--set
ハードウェア・クロックを --date オプションによって指定した時刻に設定する
--hctosys
システム・クロックをハードウェア・クロックに合わせる
同時にカーネルが持つタイムゾーンの値もローカルのタイムゾーンにセットする。このとき
TZ 環境変数や /usr/share/zoneinfo の内容をtzset と同じように解釈して参照する。カーネルのタイムゾーンのobsolete
な フィールドである tz_dsttime は DST_NONE に設定される。 (このフィールドがかつて意味していた内容に関しては
settimeofday を参照のこと。)
このオプションはシステムの起動スクリプトの一部で用いるとよい
--systohc
ハードウェア・クロックを現在のシステム・クロックに合わせる
--adjust
最後にハードウェア・クロックを合わせた時点からの経過時間に対して生じる、時計の規則的なずれを補償するために、一定の時間を
ハードウェア・クロックの時刻から増減する。詳細は以下の議論を参照のこと
--getepoch
標準出力に、カーネルが保持しているハードウェア・クロックの紀元年(epoch value) を表示する。これは西暦の何年が、ハードウェア・クロックの 0 年として参照されるかを示す数値である。例えば、ハードウェアクロックの年カウンタに 1952 年以降の経過年数を用いている場合には、カーネルでのハードウェア・クロック紀元年は 1952 でなければならない
この紀元年の値は、hwclock がハードウェア・クロックを読み書きするとき常に用いられる
--setepoch
カーネルのハードウェア・クロック紀元年の値を --epoch オプションで指定した値に設定する。詳細は
--getepoch オプションの説明を見よ
--version
hwclock のバージョンを標準出力に表示する
--date=date_string
--set オプションを指定した場合は、このオプションも指定しなければならない。 --set オプションが指定されていなければ、このオプションは無視される。ハードウェア・クロックを合わせる時刻を指定する。このオプションに与える値は date プログラムの引数と同じである。例えば以下のようにする
hwclock --set --date="9/22/96 16:45:05"
引数はローカルタイムで与える。ハードウェア・クロックを協定世界時にしている場合でも、である。
--utc オプションの部分を見よ
--setepoch
オプションを指定した場合は次のオプションも必要である
--epoch=year
ハードウェア・クロックの紀元年を指定する。すなわち西暦年のいつが、ハードウェア・クロックの年カウンタの 0 に対応するかを指定する。このオプションは、--setepoch オプションとともに使った場合、カーネルの概念であるハードウェア・クロックの紀元年を設定する。--setepoch オプションとともに使わない場合は、直接 ISA アクセスに用いられる紀元年を指定する
例えば、Digital Unix マシンでは以下のようにする
hwclock --setepoch --epoch=1952
次のオプションはほとんどの機能と同時に用いることができる
--utc
--localtime
ハードウェア・クロックを協定世界時 (Universal Coordinated Time:UTC) とローカルタイムのどちらにするか
(しているか) を指定する。UTC にするかローカルタイムにするかはユーザの選択しだいだが、時計の内部にはどちらを選択したかを記録する場所はない。したがって、
ユーザーはこのオプションで自分の選択を hwclock に伝えなければならない
これらの指定を間違ったほうにしたり (あるいはデフォルトを勘違いして両方とも指定しなかったり)
すると、ハードウェア・クロックの設定やクロックへの問い合わせの結果はめちゃめちゃになってしまうだろう
--utc も --localtime も指定しなかった場合のデフォルトは、最後にhwclock
を使って時計を合わせたとき (つまり --set, --systohc,--adjust オプションを指定しての実行が成功したとき)
に指定していた方になる。このときの選択は adjtime ファイルに記録されている。adjtime
ファイルがなかったときのデフォルトはローカルタイムになる
--noadjfile
/etc/adjtime によって提供される機能を無効にする。このオプションを使うと、hwclock
は /etc/adjtime の読み込みも書き込みもしない。このオプションを使うときは、
--utc または --localtime を指定しなければならない
--directisa
このオプションは、ISA マシンまたは (hwclock から充分 ISA マシンに見える程度
ISA の仕様を実装した) Alpha マシンでのみ意味を持つ。他のマシンでは効果がない。このオプションは
hwclock に指令して、ハードウェア・クロックへのアクセスに直接 I/O 命令を用いるよう
にさせる。このオプションを指定しないと、 hwclock は /dev/rtcデバイスを用いようとする
(/dev/rtc が rtc デバイスドライバで駆動されていることを仮定する)。デバイスを読み込みオープンできない場合は、いずれにせよ直接
I/O 命令を用いる
rtc デバイスドライバは Linux リリース 2 から現れた。
--badyear
ハードウェア・クロックが、1994-1999 年の外側の年を保持できないことを示す。ある種の
BIOS には問題があり (4/26/94 から 5/31/95 の間に生産されたほとんどの Award
BIOS がそうである)、 1999 年以降の年を扱うことができないのである。世紀内の年の部分を
94 未満 (場合によっては 95 未満) に設定しようとすると、実際には 94 (または95)
が 設定されてしまう。このようなマシンでは、 hwclock は年を1999 以降に設定できず、またクロックの値を通常のように正しい値としては用いることができない
本当は BIOS を更新するのが絶対に良いが、そうできない場合にこの問題を補償するには、これらのマシンを用いるとき、常に
--badyear オプションを指定すること。 hwclock は、自分が頭のイカれたクロックを扱っていることを知ると、ハードウェア・クロックの年の部分を無視し、adjtime
ファイルの「最終時計合わせ日付」から現在の年を推定しようとする。この動作を行わせたい場合には、
hwclock --set または hwclock --systohc を少なくとも年に一回は実行するほうが良いだろう!
hwclock は、ハードウェア・クロックの読み込み時には年の値を無視するが、設定時には年も設定する。これは
1995, 1996, 1997, 1998 のいずれかとなり、閏年のサイクルに合う年が選択される。このようにして、ハードウェア・クロックに閏日を挿入させるのである。繰り返す
が、ハードウェア・クロックを設定せずに一年以上動作させつづけると、この機能が動作せず、一日を失うことになる
ハードウェア・クロックが 1994 または 1995 になっていると、hwclock は --badyear
が必要ではないか、という警告を発する
--srm
このオプションは --epoch=1900 と等しく、SRM コンソールの Alphaで最も一般的な紀元年を指定するのに使われる
--arc
このオプションは --epoch=1980 と等しく、 ARC コンソールの Alphaで最も一般的な紀元年を指定するのに使われる
(ただし Ruffians では1900 を紀元年にしている)
--jensen
--funky-toy
これら 2 つのオプションは、使っている Alpha マシンがどのような種類のものであるか指定する。
Alpha 以外では無効だし、Alpha でも実際には指定しなくても良いだろう。 hwclock
は自分が動作しているマシンの種類を自分で決定できるはずである (最低でも
/proc がマウ ントされていれば)。 (hwclock が正しく動作しないことがわかった場合には、メンテナに連絡して、あなたのシステムを自動検知できるようにプログラムを改良できないか相談してみてほしい。
`hwclock --debug'と `cat /proc/cpuinfo' の出力が役立つかもしれない。)
--jensen
Jensen モデルを動作させていることを意味する
--funky-toy
そのマシンでは時間の遷移の検知にハードウェア・クロックの UIP ビットではなく UF ビットが使われていることを意味する。オプション名の "Toy" は、マシンの "Time Of Year" 機能からとったものである
--test
実際のハードウェア・クロックの更新 (およびそれに類する) 作業をのぞき、すべての動作を行う。このオプションは
--debug と組み合わせると hwclock の動作を理解する上で有用であろう
--debug
hwclock が内部で行っている動作に関して大量の情報を表示する。一部の機能は複雑であるが、この出力はプログラムの動作を理解する上で助けになるだろう |
| 引数 |
|
| 使用例 |
|