ここのつづき.
rtcの設定を/etc/rc.localに書いてあったけど,起動時の処理が
- fake_hwclock
- ntpdate (時間がかかる)
- ntpd (ntpdateが動いていると待たされる)
- 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のパッケージを削除してこんな感じにした.
- fake_hwclock (RTCをつながなかったときのための保険)
- hwclock.sh
- ntpd
あとはfirewallを入れれば,常時起動のサーバーとして使えそうなのでもう少し試験したら1台買い増そうかな.