Raspberry Pi 4にDebian / Raspbian Buster Linuxをインストールし、isl1208 RTCを接続しました。私の考えでは、RTC自体がうまくいくと思います。カーネルモジュールが無効になっている場合は、Pythonスクリプトを使用して直接読み取ることができます。
systemd timedatectl
このコマンドはRTCクロックを表示し、
/sys/bus/i2c/devices/i2c-1/1-006f/rtc/rtc0/time
表示時間。
しかし、hwclock -r
動作しません:
$ sudo hwclock -r
hwclock: select() to /dev/rtc0 to wait for clock tick timed out
hwclock
システム時間は起動時にRTCを使用して設定する必要があります。
hwclock -r
なぜ動作しないのかご存知ですか?または、起動中にRTCでシステム時間を設定する別の方法が必要ですか?
編集1:
systemd-timedatedは/ dev / rtcでのみ読み取り操作を実行するため、systemdはRTCを読み取ることができるようです。これはうまくいきます。
hwclock -r は、プロセスが割り込みを待つが割り込みが発生しない /dev/rtc から時間を読み取る前に、まず sync_to_clock_tick_rtc を実行します。
もしそうなら、RTC i2c ICとRasPiの間にi2c接続しかないisl1208とRasPiでアップデートの中断が機能する必要があるのだろうか。
答え1
解決策は、同期プロセスを実行しないbusyboxでhwclockを使用することです。
答え2
試してみました:
sudo i2cdetect -y 1
テキストの壁が表示されるのを見ることができます。 68の代わりにUUが表示されたら、RTC回路用のカーネルドライバを正常にロードしました。
RTCが正しい場合は、以下を見逃している可能性があります。
sudo hwclock -w
このコマンドは、Raspberry Piの時刻をRTCモジュールに書き込みます。
詳細な手順: https://pimylifeup.com/raspberry-pi-rtc/ または https://www.instructables.com/id/Set-up-Real-Time-Clock-RTC-on-Raspberry-Pi/