「RasPi2でリアルタイムクロック RTC-8564NB を使用する」で発生していたhwclockコマンドの不具合は、最新カーネル(4.0) へのアップデートにより、あっさり解消しました。 ハードウェアも、ショットキーバリアダイオードを介しバックアップ用ボタン電池を接続。 本来の使い方ができるようになると思っていましたが…。
NTPサーバへのネットワークを切断した状態で起動すると、システムクロック・ハードウェアクロック共に初期化される現象に悩まされました。 アラームを設定しシャットダウンしてみると、指定した時間にアラーム出力は出ているので、どうやら、起動時に初期化されているようです。
hさんのサイトを参考にhwclock.shを修正してみましたが改善されず、さまざまなサービスや起動コマンドを停止しながら現象を確認しました。
結局、時刻合わせの為に有効となっているNTPデーモンが、上位サーバと通信できない時にシステムクロック・ハードウェアクロックを初期化していたことがわかりました。
NTPデーモンを停止し、代わりにNTPクライアントのntpdateをインストール。 1時間毎に実行する様cronへ設定し、システムクロック・ハードウェアクロックの問題は全面解決となりました。
OSインストール直後からのRTC設定手順です。
- /boot/config.txtへ
dtoverlay=i2c-rtc,pcf8563 を追加 - /etc/modulesへ
i2c-dev
rtc-pcf8563 を追加 - /etc/rc.localへ
hwclock -s を追加 - fake-hwclock
ntp を無効化 - ntpdate をインストール
- cronへ
ntpdate -v ntp.nict.jp を設定し定期実行
参考にさせていただいたサイト
Raspberry Piにリアルタイムクロックをインストールする
ntpdate – 日付と時刻をNTPサーバーと同期 – Linuxコマンド