音楽再生環境の手順整理その4 RTC(リアルタイムクロック)有効化

RTCモジュール(ds3231)のセットアップ。

 

I2Cインターフェースを有効にする

sudo nano /boot/config.txt

 #dtparam=i2c_arm=on の記述を探し、有効化する

dtparam=i2c_arm=on

に変更

Raspberry Pi にRTC 取付

ピン配置
RasPiピン番号 DS3231モジュール
1 3V3 power VIN     電源(3.3V)
3 GPIO2 (SDA) SDA I2Cデータ
5 GPIO3 (SCL) SCL I2Cクロック
7 GPIO4 (GPCLK0) NC 未使用
9 Ground GND グランド (0V基準電圧) 

起動して状態確認
i2cdetect -y 1

下記状態(アドレス0x68が68)ならOK

     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

 

RTCモジュールをOSに登録

sudo nano /boot/config.txt

最終行に下記内容を追記する。

dtoverlay=i2c-rtc,ds3231

再起動

reboot

起動して状態確認
i2cdetect -y 1

下記状態(アドレス0x68がUU)ならOK

     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

 

・RTCの時刻をシステム時刻に設定するサービスを登録

/etc/systemd/systemに、下記の内容のhwclock-start.service ファイルを新規作成。

sudo nano /etc/systemd/system/hwclock-start.service

下記内容張り付け

[Unit]
Description=hwclock-start to read rtc and write to system clock
After=sysinit.target

[Service]
Type=oneshot
ExecStart=/sbin/hwclock --hctosys --utc

[Install]
WantedBy=basic.target

再起動実施

sudo reboot

RTCの時刻をシステム時刻に設定するサービスを登録しサービスを起動。

sudo systemctl daemon-reload

sudo systemctl enable hwclock-start.service

sudo systemctl start hwclock-start.service

ネットに接続していれば、(15分程度待つ場合もある)正しい時刻が設定される。

手動で設定する場合

sudo hwclock --set --date "18 Aug 2023 15:00:00"

確認

date

timedatectl

fake-hwclock の解除。

sudo systemctl stop fake-hwclock
sudo systemctl disable fake-hwclock
sudo apt remove fake-hwclock

以上で、

ネットに接続されていない場合、RTCの時刻がシステム時刻に適用される、

インターネットに接続されている場合はその値がRTCに設定されてシステム時刻に適用されるはず。

 

*HiFiBerry 搭載する場合は物理的に干渉するので排他仕様、常時起動で有線LAN接続している場合はnptと同期設定すれば良いが、konalinuxは設定済みっぽい。

確認コマンド=timedatectl

timedatectl
               Local time: 土 2023-08-19 20:04:07 JST
           Universal time: 土 2023-08-19 11:04:07 UTC
                 RTC time: n/a
                Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

NTPサービスはアクティブになっているのでOK???要確認。