Skip to content

Commit 5f4935c

Browse files
authored
[action] [PR:24584] [RTC] Update HW clock before start of chrony (#1866)
<!-- Please make sure you've read and understood our contributing guidelines: https://github.com/Azure/SONiC/blob/gh-pages/CONTRIBUTING.md failure_prs.log skip_prs.log Make sure all your commits include a signature generated with `git commit -s` ** If this is a bug fix, make sure your description includes "fixes #xxxx", or "closes #xxxx" or "resolves #xxxx" Please provide the following information: --> #### Why I did it Chronyd doesn't update hw-clock if `hwclock --show` equivalent fails. It considers that as driver not being registered. However, there is a case where RTC might be present but driver returns corrupted values. In that case, hwclock should still be updated by chronyd Thus, attempt setting the system time to RTC before chronyd starts. This would atleast set it to a correct value and chronyd will eventually update the RTC to time received by NTP servers. ##### Work item tracking - Microsoft ADO **(number only)**: #### How I did it #### How to verify it Before fix ``` root@sonic:/home/admin# timedatectl Failed to query server: Failed to read RTC: Input/output error root@sonic:/home/admin# chronyc tracking Reference ID  : A9FEC8FE (redis_chassis.server) Stratum  : 6 Ref time (UTC)  : Fri Nov 07 23:22:50 2025 root@sonic:/home/admin# chronyc rtcdata 513 RTC driver not running ``` After fix and reboot: ``` root@sonic:/home/admin# chronyc rtcdata RTC ref time (UTC) : Sat Nov 08 01:26:56 2025 Number of samples : 3 Number of runs : 0 Sample span period : 30 RTC is fast by : -0.120769 seconds RTC gains time at : 82.593 ppm ``` <!-- If PR needs to be backported, then the PR must be tested against the base branch and the earliest backport release branch and provide tested image version on these two branches. For example, if the PR is requested for master, 202211 and 202012, then the requester needs to provide test results on master and 202012. --> #### Which release branch to backport (provide reason below if selected) <!-- - Note we only backport fixes to a release branch, *not* features! - Please also provide a reason for the backporting below. - e.g. - [x] 202006 --> - [ ] 202205 - [ ] 202211 - [ ] 202305 - [ ] 202311 - [ ] 202405 - [ ] 202411 - [ ] 202505 #### Tested branch (Please provide the tested image version) <!-- - Please provide tested image version - e.g. - [x] 20201231.100 --> - [ ] <!-- image version 1 --> - [ ] <!-- image version 2 --> #### Description for the changelog <!-- Write a short (one line) summary that describes the changes in this pull request for inclusion in the changelog: --> <!-- Ensure to add label/tag for the feature raised. example - PR#2174 under sonic-utilities repo. where, Generic Config and Update feature has been labelled as GCU. --> #### Link to config_db schema for YANG module changes <!-- Provide a link to config_db schema for the table for which YANG model is defined Link should point to correct section on https://github.com/Azure/sonic-buildimage/blob/master/src/sonic-yang-models/doc/Configuration.md --> #### A picture of a cute animal (not mandatory but encouraged)
1 parent 5ce8e78 commit 5f4935c

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
#!/bin/bash
22

3+
hwclock --show &> /dev/null
4+
if [ $? -ne 0 ]; then
5+
echo "hwclock --show failed, attempting hwclock --systohc..."
6+
hwclock --systohc
7+
fi
8+
39
sonic-cfggen -d -t /usr/share/sonic/templates/chrony.conf.j2 >/etc/chrony/chrony.conf
410
sonic-cfggen -d -t /usr/share/sonic/templates/chrony.keys.j2 >/etc/chrony/chrony.keys
511
chmod o-r /etc/chrony/chrony.keys

0 commit comments

Comments
 (0)