Blog型メモ帳 Ver.2019.08.20

ダラダラとそこはかとなく。Webメモ帳。日記。内容無し駄文。Wired思考アーカイブ。(1999/1/7~)

OSでサマータイムを設定していないのに時間がずれる問題

WindowsOSでタイムゾーンアメリカなどになっているとサマータイムの季節になって時間が1時間ずれることがあります。これはOSの時計の設定のところで居住地域を日本(大阪、東京、札幌)にしてやれば解決します。しかし、タイムゾーンが日本になっていても何故か時間が1時間ずれることがあります。これはRTCチップ、近年だとチップセットですが、Daylight Savings Enable(DSE)という機能を持っており、これが4月の第1日曜日の午前2時になると時間を1時間進めて午前3時に変更します。なぜ、ハードウェアの問題と推測するかというと、近年だとサマータイムは3月中に変更になっており、そのタイミングでOS側が対応することになっています。また、OSを起動しなくても時間が変更されていることから、ハードウェアの問題だと推測できます。

 
RTCの機能がチップセットにあることは以下の資料から確認できます。ここのP415-417ページに機能説明があります。
Intel®9 Series Chipset Family Platform Controller Hub (PCH) Datasheet June 2015 330550-002
 
 
 
この情報をもとに「RW-Everything」というソフトウェアを使用して
Specific>IO Index/Data>CMOS-70/71
を選ぶとRTCのバイナリデータを参照することができます。(00,0B)をクリックするとその中のデータを見ることができます。通常(00,0B)は「02」になっています。内部データは#1ビットのみ1となっています。問題の時間が1時間ずれるものは#0ビットが0ではなく1となっています。(00,0B)は「03」と表示されます。インテルの資料によるとここが1だとDaylight Savings Enable(DSE)が有効になります。今回問題の発生したユニットはここが有効になっていたことからこれを修正することでサマータイムをOFFにできるはずです。
追記:サマータイム修正できました。
 
あとサマータイムの終了である10月末にも同様の問題が発生し、こちらは1時間時間が戻るはずです。
追記:こちらも現象の再現とサマータイム修正できました。
 
参考URL
夏時間問題に対する調査をされています。
 
RTCのアドレスについて
 
RW-Everything
 
 
こちらが夏時間が有効な状態
イメージ 1
 
こちらが正常な値
イメージ 2
 
長年パソコンを触ってきてOSによるサマータイムが適用されてしまうのは経験しましたが、ハードウェアにこういった問題が潜んでいて、ほぼ使われなくなった現代でもBIOSのバグでこういった問題が起きる可能性があるとは、難しいですね。また、少数で発生しているだけで情報も乏しくてきついですね。
 
原因はハードメーカーが実装時後にチップを初期化していなかったことのようです。なので複数のユニットでDSEが有効だったり無効だったり・・・そんなんでいいの?いいらしいです。私はそうは思いませんので次はないです。
 
 
190402
突然1日のアクセス数が増えたのでこんなブログに何見に来たのかと思ったらサマータイム問題だったのね。大概ソフトウェアの設定ミスで、ココに書いてあることはハードウェア設計者とかが知らずにハメられる事案ですわ。こんなブログでも多少は役に立っているようですな。
 
200626
VLSの対潜ロケットみたいな名前の別メーカーでも同じような問題が発生したので調査したら同じようにRTCの値がおかしい・・・なにこれ?他メーカーでも潜んでる問題なのか?というか、世界中が普通に使っていてこれが問題にならないのはなぜなんだろう?みんなオンラインで使っていて勝手に時刻が合わさって問題にならないのだろうか。