ここのつづき.
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台買い増そうかな.