再起動に問題があると、Linuxの時間が長くなります。

再起動に問題があると、Linuxの時間が長くなります。

Linuxカーネル4.4.15を実行するシステムモジュール(SOM)を含むカスタムボードがあります。ボードには小さなバッテリーでバックアップされるRTCがあります。

私のボードは現在ネットワーク接続なしで動作しています。

2つの異なるSOMがあります。 SOM Aを接続してデバイスを起動すると

$date returns date in Feb 2020

$hwclock returns same date/time in Feb 2020

システム時間とRTCを更新してからプラグを抜いて再起動すると、両方のコマンドは同じ日付(2020年2月)で返されます。

SOM Bを接続してデバイスを起動すると、起動時に返された日付が2020年5月の日付/時刻(実際には昨日)であることを除いて、結果は同じになります。

起動時にRTCから時間を再読み込みするのに問題があるようです。その後、システムはどこかに保存された日付/時刻を取得します。しかし、それはどこですか?

/etc/init.d(すべてのrc.Xフォルダに接続されている)からhwclock.shスクリプトも削除しました。

また、他の呼び出し元がrtcを設定できないようにhwclockバイナリを/ sbin /から別の場所に移動しましたが、起動後に手動で実行すると、まだ間違った日付/時刻(2020年2月または昨日)があるようです。これもおかしいようです。 hwclockバイナリが正常な位置にない場合、どのようにシステムクロックとhwclockが電源を切った後に同じ時間を報告できますか?

ファイルに時間を記録し、それを使用して起動時にシステム時間を設定できる他のサービス/場所はありますか?

編集する:

システムとRTC時間の設定

$ cat /proc/driver/rtc
rtc_time    : 00:00:16
rtc_date    : 2020-05-15
alrm_time    : 00:00:00
alrm_date    : 1970-01-01
alarm_IRQ    : no
alrm_pending    : no
update IRQ enabled    : no
periodic IRQ enabled    : no
periodic IRQ frequency    : 1
max user IRQ frequency    : 64
24hr        : yes

電源サイクルが完了し、RTCが復元されました。

$cat /proc/driver/rtc
rtc_time    : 14:54:22
rtc_date    : 2020-05-14
alrm_time    : 00:00:00
alrm_date    : 1970-01-01
alarm_IRQ    : no
alrm_pending    : no
update IRQ enabled    : no
periodic IRQ enabled    : no
periodic IRQ frequency    : 1
max user IRQ frequency    : 64
24hr        : yes

編集2:

再起動したときに実際にテストしたのは、電源コードを抜いて数秒待ってから再接続するだけでした。 (組み込みLinux機器なので珍しい現象ではありません。) ところで時間を今日に設定して再起動コマンドを出すと、(電源が切れずに)設定した時間(真夜中)と同時に再開されてから次の時間になれば電源周期が完了すると、同じ日付(今日)で再開されます。

だから、再起動プロセスのどの部分がOSがどこかで時間を節約するように強制すると思います。次に、起動時にrtcを読み取る代わりにrtcを設定します。

ベストアンサー1

おすすめ記事