RTCとhwclock

  • 投稿日:
  • by
  • カテゴリ:

グラタン用にrtc-rs5c372.cを修正して、2.6.17でも正しく時刻が取得できるようになりました。つまりは、修正前のバージョンはやっぱり正しく時刻が読めていなかったということです。ntpdateが速攻で時刻を合わせてしまうので判らなかったんですね。

さて、修正したものの、/dev/rtcは最早、miscデバイスの配下ではなくなっています。これは2.6.17でRTCサブシステムを一新した関係です。このためhwclockが正しく動作しなくなっています。これを回避する正しい解は、恐らくudevに移行することです。sysfsには正しくrtc0のエントリが作成されていますから、udevに移行すればこの問題は解消するはずです。ただし、となると、非udevなデバイスドライバ、例えば、leddrvやbuzdrvをどうにかしないと塩梅悪そうですし、何より、ブートシーケンスに関わる大きな修正をするってことは、また、悪くすれば、分解と修復の繰り返しをしなければならないということで、かなりやる気を出さないといけません。ということで、ちょっと思案のしどころです。

逃げとしては、

  • hwclockのことは忘れる
  • /dev/rtcを(10,135)から(254,0)など、実際に割り当てられているデバイス番号に変更する。
  • 旧来のrs5c372aドライバを使い、新しいRTCフレームワークは使わない。
というのがあります。玄箱用の2.6.17では、旧来のドライバを使う方法で逃げたようですね。ただ、いずれ、RTCのフレームワークは新しいものへと統合されていくので、暫定的な逃げがいつまで打ち続けられるのかが、少々疑問ではあります。