# RTC関連 現在の認識では、Jetson Nano ModuleにはRTCの機能が標準で装備されていて、ボタン電池から電源供給しておけば、時刻が保持できる、というもの。 バックアップ電池は百均にてCR1220を購入して来た。これが一番入手性がよさそう。 キャリーボードJ202のボタン電池ホルダにはちゃんと装着できた。 単に、装着しただけでは時刻が保持できなかった。ちょっと調査していると、以下のページに遭遇。 https://www.forecr.io/blogs/bsp-development/rtc-test-for-nvidia-jetson-modules NTPによる時刻同期のサービスが動いていると、ネットにつながっていないときに変に初期化されてしまう、ということかもと考え、上記のページに従ってためしてみる。 ``` $ timedatectl status Local time: 火 2022-08-23 12:30:21 JST Universal time: 火 2022-08-23 03:30:21 UTC RTC time: 土 2000-01-01 02:53:06 Time zone: Asia/Tokyo (JST, +0900) System clock synchronized: no systemd-timesyncd.service active: yes RTC in local TZ: no $ sudo timedatectl set-ntp 0 $ timedatectl status Local time: 火 2022-08-23 12:33:05 JST Universal time: 火 2022-08-23 03:33:05 UTC RTC time: 土 2000-01-01 02:55:50 Time zone: Asia/Tokyo (JST, +0900) System clock synchronized: no systemd-timesyncd.service active: no RTC in local TZ: no ``` 電池を入れて、日時を設定して、保持及び自分で時を刻めるかテストしてみる。 まず、現在の日時を設定。 ``` irius@jetson-nano-module-01:~$ timedatectl status Local time: 金 2021-12-10 18:16:25 JST Universal time: 金 2021-12-10 09:16:25 UTC RTC time: 土 2000-01-01 01:01:32 Time zone: Asia/Tokyo (JST, +0900) System clock synchronized: no systemd-timesyncd.service active: no RTC in local TZ: no sirius@jetson-nano-module-01:~$ sudo timedatectl set-time "2022-08-23 13:55" sirius@jetson-nano-module-01:~$ timedatectl status Local time: 火 2022-08-23 13:55:14 JST Universal time: 火 2022-08-23 04:55:14 UTC RTC time: 火 2022-08-23 04:55:14 Time zone: Asia/Tokyo (JST, +0900) System clock synchronized: no systemd-timesyncd.service active: no RTC in local TZ: no ``` ACアダプタを外して、しばらく時間をおいてから、起動して、時計が進んでいるかどうかを確認。 ``` sirius@jetson-nano-module-01:~$ date 2022年 8月 23日 火曜日 14:17:33 JST sirius@jetson-nano-module-01:~$ timedatectl status Local time: 火 2022-08-23 14:17:50 JST Universal time: 火 2022-08-23 05:17:50 UTC RTC time: 火 2022-08-23 05:17:49 Time zone: Asia/Tokyo (JST, +0900) System clock synchronized: no systemd-timesyncd.service active: no RTC in local TZ: no ``` ちゃんと20分ほど進んだ。やはり、NTPによる時刻同期がONだと、ネットがつながらないと変な値にリセットされてしまう、ということか。RTCを有効にするということは、NTPを無効にする、ということでよいのか。 本来、NTP同期を有効にしておけば、ネットがつながって、NTPで時刻合わせしつつ、ネットがつながらないときはRTCのみで時刻を刻む、という風に動くことが期待されるのではないか。 ならば、もう一度、NTP同期を有効にしてどうなるか確認する。これでいけたら、一旦、set-timeにてRTCに時刻を設定することに意味がある、ということか?