Raspberry PiのRTCを設定

投稿日:

ここのつづき.

rtcの設定を/etc/rc.localに書いてあったけど,起動時の処理が

  1. fake_hwclock
  2. ntpdate (時間がかかる)
  3. ntpd (ntpdateが動いていると待たされる)
  4. rc.localでRTCを設定

とntpdateが動いてRTCの意味がない感じがするので,最初の方でhwclock.shが走るように改造した.

まずはhwclock.shの改造.I2Cバス上のRTCを認識させて時刻をとれるようにする.

root@raspberry:/etc/init.d# diff -u hwclock.sh.orig hwclock.sh
--- hwclock.sh.orig     2014-05-10 09:41:36.171639671 +0900
+++ hwclock.sh  2014-05-10 10:31:32.134145549 +0900
@@ -61,8 +61,15 @@
                printf "0.0 0 0.0\n0\nUTC" > /etc/adjtime
            fi

-           if [ -d /run/udev ] || [ -d /dev/.udev ]; then
-               return 0
+           #load i2c and RTC kernel modules
+           modprobe rtc-m41t80
+           echo m41t62 0x68 > /sys/class/i2c-adapter/i2c-1/new_device
+
+           if [ -e /dev/$HCTOSYS_DEVICE ]
+           then
+               log_action_msg "RTC device found"
+           else
+               echo 0x68 > /sys/class/i2c-adapter/i2c-1/delete_device
            fi

            if [ "$HWCLOCKACCESS" != no ]; then

hwclock.shを有効化

# update-rc.d hwclock.sh enable

ついでに,ntpdateのパッケージを削除してこんな感じにした.

  1. fake_hwclock (RTCをつながなかったときのための保険)
  2. hwclock.sh
  3. ntpd

あとはfirewallを入れれば,常時起動のサーバーとして使えそうなのでもう少し試験したら1台買い増そうかな.

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です