« 公園 | メイン | 全文検索エンジン »

Linux-2.6.18のRTC

x86系の場合はあまり意識しなくても良いはずです。

今回は組み込み機器でLinux-2.6.18を使用して(2.6系であれば同じだと思います)、I2Cバスに接続されたRTCを認識・動作させるための方法です。RTCチップは"M41T00"を使用しました。"M41T00"は"DS1307"と互換があるため、標準のカーネルドライバが使用できるようです。

".config"ファイルを下記のように修正。
#
# Watchdog Cards
#
# CONFIG_RTC is not set
# CONFIG_GEN_RTC is not set

#
# Real Time Clock
#
CONFIG_RTC_LIB=y
CONFIG_RTC_CLASS=y
CONFIG_RTC_HCTOSYS=y
CONFIG_RTC_HCTOSYS_DEVICE="rtc0"

#
# RTC interfaces
#
CONFIG_RTC_INTF_SYSFS=y
CONFIG_RTC_INTF_PROC=y
CONFIG_RTC_INTF_DEV=y

#
# RTC drivers
#
CONFIG_RTC_DRV_DS1307=y

#
# I2C support
#
CONFIG_I2C=y
CONFIG_I2C_CHARDEV=y

#
# I2C Algorithms
#
CONFIG_I2C_ALGOBIT=y

#
# I2C Hardware Bus support
#
CONFIG_I2C_*******=y /* 本項目は組み込み機器ごとに用意(すでに用意されている場合もある) */

"CONFIG_I2C_ALGOBIT=y"になっているのはGPIOによる制御を行うため、アルゴリズムをBIT制御としています。ちなみに、"CONFIG_RTC is not set"となっているのは、本項目を設定していると"/dev/rtc"が"udev"によって作成されるため、"hwclock"などのプログラムが正常に動作しなくなるため必要ありません。(hwclockが"/dev/rtc0"を参照してくれれば問題ないのですが、そうは行かないようです。)

"/etc/udev/link.conf"に下記の行を追加することによって、起動時に"udev"が"/dev/rtc0"が存在する場合、"/dev/rtc"にシンボリックリンクを張ってくれます。
L rtc /dev/rtc0

トラックバック

このエントリーのトラックバックURL:
http://www.youchikurin.com/mt/mt-tb.cgi/13

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2006年10月11日 19:00に投稿されたエントリーのページです。

ひとつ前の投稿は「公園」です。

次の投稿は「全文検索エンジン」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Powered by
Movable Type 3.35