OpenZaurus - 時刻について
なんだかOpenZaurus用カテゴリのozをみるたびにorzを連想してしまったり。。。
tuntun01さんの日記にリブート時に時刻が5月23日固定になってしまう対策が書かれていた。
/etc/init.d/bootmisc.shの中で/etc/timestampの値(固定値)をdateで設定しなおしているのが原因らしい。どちらかというとtimestampの値が更新されないのが原因じゃないかという気もするんだけど。。。
ということで、これをコメントアウトして再起動……orz
1970年元日の9:02になっちゃうよ!
前々から思ってるんだけど4桁ザウルス用のROMと3桁ザウルス用とで何か挙動が違う気がする。。。
/etc/init.d/の下を見てみたら、rebootでtimestampの書き換えを行っていて、これが上手く機能していないみたい。/etc/rc6.d/S90rebootのリンク先になってるんだけど、このディレクトリがリブート時に実行される場所なんでしょうか?
試しに、bootmisc.shのコメントアウトを元に戻してから、他のファイルと見比べてS90rebootをK90rebootに名前変更したら、見事!時刻が保存されるようになりました、ただし再起動している間の時間のずれが生じますけど(^^ゞ
Sで始まるのが起動時で、Kで始まるのが終了時のファイルってことで良いでのでしょうか。
追記
tuntun01さんよりトラックバックをいただきました。hwclockの設定を行うために
ln -s /etc/init.d/hwclock /etc/rc5.d/S01hwclock
とのことです。試して見たのですが再起動時の日時が1970年になるのは変化ありませんでした(bootmisc.shの該当部分はコメントアウトした状態です)
で、hwclockは何やってるかというと、引数がstartの場合はハードウェアクロック(RTC)の値をシステムクロックに設定、stopやrestartの場合はRTCの値をシステムクロックに設定してるっぽい。RTCはともかくシステムクロックというのが何だかよく分からない、Linuxが管理するソフト的なクロックということ?
/sbin/hwclock --hctosys RTC→System /sbim/hwclock --systohc System→RTC
コマンドで実行してみる
# /sbim/hwclock --systohc システムクロックをRTCに退避? # date -s 010101012000 2000年に設定 # /sbin/hwclock --hctosys 退避?した値をシステムに設定
結果、dateで設定した時刻の9時間前の時刻が--hctosysで設定された。システムクロックってのはRTCの時刻にタイムゾーンの補正を外した時間?
いずれにしても3桁ザウルスでは再起動時にRTCの値がキレイにクリアされてしまうみたいですね。だからtimestampに保存させる必要があるのかな?