[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:00524] [Q] clock(8) command say wrong time



こんにちは。たなかです。
ゴールデンウィークで時間がとれたので、
自宅のメインのマシンにも晴れて debian をインストールしました。

まず、結論と言うか、結果から先に書きますと、
date, clock, timezone からみの所で悩んでます。

# 長文になるかも知れません。お許しください。
# また、現在自分自身が熱くなってます。
# まとまりの無い文になるかも知れません。

1) clock の動作がおかしい。時刻合わせができない。

  まず、システム日付、CMOSクロックを読みだしてみると、
  monkey:/home/tanaka# date ; clock -u -r
  Thu May  1 01:13:43 JST 1997
  Thu May  1 01:13:44 1997

  と、なります。システム日付、CMOSクロックは
  ほぼあってると思われます。

  次に、システム日付を CMOSに書き込んで再度読みだしてみます。

  monkey:/home/tanaka# clock -u -w ; date ; clock -u -r
  Thu May  1 01:17:57 JST 1997
  Thu May  1 01:17:38 1997

  と、なり、date の出力と clock -r の出力に 約 20 sec程の
  誤差が生じます。(clockの方が遅れている)

  はて?とおもい、clock -w (CMOSへの書き込み)と、
  clock -r (CMOSからの読みだし)のどちらで誤差が発生しているのか
  おもい、-u オプション(UTC <-> ローカルタイムの変換)を
  外してみると、

  monkey:/home/tanaka# date ; clock -r
  Thu May  1 01:21:37 JST 1997
  Wed Apr 30 16:21:38 1997

  と、なるので、-u を付けての読みだし時に誤差が生じるようです。
  (-u なしだと、clock の出力は date の 9 時間前を指しているので。)

  -u を付けての動作がどうも怪しいようで、-s (CMOSから読みだし、
  カーネル時刻にセット)を実行すると、時間が戻ってしまいます。
  monkey:/home/tanaka# date ; clock -u -s ; date
  Thu May  1 01:31:51 JST 1997
  Thu May  1 01:31:32 JST 1997

  同様に /etc/init.d/boot で実行される clock -a $GMT の所でも
  時刻がずれてしまっています。

  clock -u -w をやると、どうも怪しいのですが、他の所でも
  同様な現象は出てませんか?
  私の所では debian rexが2台、今回インストールした bo が
  1台あるのですが、その debian bo でしか現象が出ません。
  この bo マシンですが、以前は slack で使ってまして、
  slack では 問題無かったので、ハードの違いではなく、
  bo 自身か 私のインストール or 設定が おかしいのでは?
  と思っているのですが。

2) UTC/GMT を 使わなければいいじゃん。と思い、
  /etc/init.d/bootの GMT変数を外して、
  clock コマンドの -u オプションを使わないと、上記(1)の
  象は無くなります。
  ところが、今回、設定で悩んでいるマシン(ホスト名:monkey)で、
  dateコマンド、隣にある rex のマシンで netdate コマンドを
  同時に実行すると、(同時にリターンキーを押すだけ)
  
  tanaka@monkey:~>date          <--- 問題のマシンで date を実行
  Thu May  1 01:51:00 JST 1997
             ^^^^^^^^
  tanaka@funky:~>netdate monkey <-- 同時に隣のマシンでnetdate してみる
  netdate: settimeofday: Operation not permitted
  monkey -47.955           Thu May  1 01:51:20.000
                                      ^^^^^^^^
  はたまた、20 秒程の誤差があるのです。
  # settimeofday のエラーは su してないからです。

  なんででしょう?


何がどう影響しているのか分からないので、私の環境&やったことを
ざっと書きます。

  インストールした物
  debian bo
    # 4/23 から 4/24 ごろに at-m さんから FTP したもの
    # お世話になってます。& ありがとうございます > at-m さま

    1997/04/04 の disks-386 の イメージから クリアインストール
    hammはちょっとまだ?って思ったので、
    unstable と development の symlink を bo に はり直して、
    dselectを行いました。
    dselect の Access の Use unreleased development distribution ?
    は、Y にしました。

    タイムゾーン関係は Asia/Tokyo で、GMT を指定しました。
    なお、他のOSは入れてません

    dpkg -l も出力も添付しようかと思いましたが、既に長くなっている
    かつ、何が悪いのか分からないので、付けませんでした。

  行った事。
    カーネルは、インストール時のオリジナルのもの、(2.0.29),
    自分でコンパイルした 2.0.29, 2.0.30 

    APM周りのコードが悪さしてるの?とおもい、外してみましたが、
    ダメでした。

    clock コマンドを strace してみると、/dev/rtc をアクセスしに
    いっているので、RTC をカーネルに組み込んで、 /dev/rtc を
    mknod してみましたが、現象は変わりません。

    /etc/adjtime を消したり、内容を"0.0 0 0.0 "に変えてみましたが、
    ダメでした。

    tzconfig で 再度 タイムゾーンの設定をしなおしたが、だめ。

    (よく分からないながら、適当に) adjtimex をしてもだめ。

    タイムゾーンを Asia/Tokyoから Etc/GMT+9 に変えてもだめ。

    ソースコードは追ってません。
-----------------------------------------------
たなかまさひろ/Masahiro TANAKA
tanaka@xxxxxxxxxxxxxxx(Office)
tanaka@xxxxxxxxxxxxx  (Home)