RasPi2に切り替えてから特に大きな問題はなく安定して動作していますが、ある時、hwclockコマンドが使えないことが発覚しました。 現在、RTCに役割はありませんが、電源制御の予定もあり、なにより気持ちがよくありません。
どうやら、デバイスの設定方法がデバイスツリーというものに変わった為の様でした。
例によって、フォーラムに情報がありました。 「PI2でRTC PCF8563が動作しない」
この情報によると、hwclockの最新バージョンをコンパイルしてインストールするというものです。 実際の手順は…
- /boot/config.txt に dtoverlay=i2c-rtc,pcf8563 を追加
- hwclockの最新バージョンをダウンロード・コンパイル
wget https://www.kernel.org/pub/linux/utils/util-linux/v2.26/util-linux-2.26.1.tar.gz
tar zxvf util-linux-2.26.1.tar.gz
cd util-linux-2.26.1
(apt-get install gcc) ※gcc導入済みであれば不要
./configure –without-python –without-systemd –without-ncurses
make hwclock - hwclock-rtc.cファイルを編集(debugオプション使用時の修正)
必要に応じ、util-linux-2.26.1の下に生成されたhwclockコマンドファイルを /sbin へコピーします。
手順3.の修正ですがこちらを参考にhwclock-rtc.cファイルを編集後、コンパイルを実行しましたが、debugオプション使用時のエラーは修正されませんでした。
若干の問題はあるものの、hwclockコマンドやアラームの操作が可能となりました。 RasPi2はシャットダウン状態からの起動に必要なリセット端子が外部に引き出されていない為、その辺りが今後の課題です。
※displayコネクタの横にリセット端子がありました。 2015.5.6追記
※hwclockコマンドは完全と言える状態ではありませんが、アラームについては、シェルスクリプト(alarm.sh) を使用して設定することにより実用上問題ない状態にはなりました。 2015.5.17追記
参考:http://d.hatena.ne.jp/payapara/20090626/1246029897
※カーネルの更新で不具合は解消しました。 「Raspbian最新カーネルでRTCの不具合が解消」 2015.7.19追記
RTC関連コマンド
ハードウェアクロックを表示
hwclock -r
ハードウェアクロックをシステムクロックと同期
hwclock -w
RTCの状態表示
cat /proc/driver/rtc
RTCアラームのリセット
echo 0 > /sys/class/rtc/rtc0/wakealarm
RTCアラームを60秒後に設定
echo +60 > /sys/class/rtc/rtc0/wakealarm
UNIXエポックからの経過時間を表示
cat /sys/class/rtc/rtc0/since_epoch