FC2ブログ
趣味のことやふと思ったことなど、あれこれつづっていきます
スポンサーサイト
--年--月--日 (--) | 編集 |
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

---------------------------------------------------------------

--/--/-- --:-- | スポンサー広告 | | Top▲
Raspberry Pi 2 に RTC をつなぐ
2015年11月09日 (月) | 編集 |
Raspberry Pi 2 に RTC(リアルタイムクロック)をつないで動作させました。RTCにはDS1307、電池には手持ちのCR2032を使用してます。もっと小さいリチウム電池もあるけど、CR2032がたくさん余っていたので、大きさには目をつぶることに。

RTC(DS1307)を接続

ArchLinuxでは特に問題なく動作してます。/etc/modules-load.d/raspberrypi.confに以下の行を追加してリブートすれば、i2cdetectで動作しているのが確認できます。

i2c-dev
i2c-bcm2708
rtc-ds1307

起動時にRTCを利用できるようにして、システムに時間を設定するために、
/etc/systemd/system/rtc.service を以下の内容で作成。

[Unit]
Description=RTC
Before=netctl.service systemd-networkd.service

[Service]
Type=oneshot
ExecStart=/usr/lib/systemd/scripts/rtc

[Install]
WantedBy=multi-user.target

上記のスクリプト rtc を以下の内容で作成。

#!/bin/bash
# Enable RTC
echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device
sudo hwclock -s
exit 0

が、RTCをつけた後で気がついたのですが、Raspberry Pi 2 ではサスペンドなどパワーセーブ関連の機能がサポートされてないですね。時間の保持はできるけど、それ以上のことはできないので、ちょっと残念。

ところで、Raspbianではいまいち動作がおかしい。どういうわけか、fake-hwclock を disable にすると、一旦、電源断して再度起動すると

hwclock: The Hardware Clock registers contain values that are either invalid (e.g. 50th day of month) or beyond the range we can handle (e.g. Year 2095).

というエラーメッセージが出て、RTCの時刻が読み出せません。RTCがあれば fake-hwclock はいらないはずと思うのだけど。理由がわからないので、この問題は放置することに。

追記) ArchLinuxでRaspberry Pi 2 のI2CをEnableにするために、/boot/config.txtの以下の行のコメントを外しておく必要がある。(とconfit.txtの説明に書いてある)

#device_tree_param=i2c_arm=on

---------------------------------------------------------------

2015/11/09 21:26 | デジタル・パソコン | Comment (0) Trackback (0) | Top▲
コメント
この記事へのコメント
コメントを投稿する
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
この記事へのトラックバック
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。