On both my and my brother’s f41kde respin installations, I’ve seen the undermentioned message when invoking timedatectl status:
The system is configured to read the RTC time in the local time zone. This mode cannot be fully supported. It will create various problems with time zone changes and daylight saving time adjustments. The RTC time is never updated, it relies on external facilities to maintain it. If at all possible, use RTC in UTC by calling ‘timedatectl set-local-rtc 0’.
Local time: Tue 2025-03-25 15:48:13 GMT
Universal time: Tue 2025-03-25 15:48:13 UTC
RTC time: Tue 2025-03-25 15:48:12
Time zone: Europe/London (GMT, +0000)
System clock synchronized: yes
NTP service: active
RTC in local TZ: yes
Warning: The system is configured to read the RTC time in the local time zone.
This mode cannot be fully supported. It will create various problems
with time zone changes and daylight saving time adjustments. The RTC
time is never updated, it relies on external facilities to maintain it.
If at all possible, use RTC in UTC by calling
'timedatectl set-local-rtc 0'.
Indeed, timedatectl set-local-rtc 0 remediates it. However, why is this state the default?!
@computersavvy, please elaborate on what you refer to by this. Specifically, does this solely occur when a user has overridden a firmware preference, or can it be OEM misconfiguration? If the latter, can be reverted?
If what you state previously is true, it must be the default for firmware which is in that state. In that case, why timedatectl set-local-rtc 0 isn’t set for such systems by default isn’t evident.
@gnwiii, I’ve solely had Windows 11 (OsBuildNumber: 26120) and > f40 installed on this motherboard, so even if that solution is out-of-date, if Windows caused this misconfiguration, the problem remains.
This is not a misconfiguration of your Fedora installation. The RTC provides only a time, no information about a timezone. By default, Windows expects the RTC to be in the local timezone while Linux expects the RTC to be in UTC. An experienced user can solve this by modifying either Windows to deal with RTC in UTC (which can only be done by setting a Registry key and had some issues in the past, I don’t know if this is still the case) or by setting Linux to interpret the RTC in local time. Which one you choose does not matter as long as both systems agree on whether the time in the RTC is UTC or local time.
def time_initialize(timezone_proxy):
"""
Try to guess if RTC uses UTC time or not, set timezone.isUtc properly and
set system time from RTC using the UTC guess.
Guess is done by searching for bootable ntfs devices.
Windows expects the RTC to be set to local time.
As a result, when windows is installed and first configured it sets the RTC accordingly. This works great for a machine that only boots windows.
As noted, however, a dual boot machine with linux (which expects the RTC to be set to UTC) sees a time discrepancy.
It is very simple to first set the bios to UTC then within windows reset the date/time accordingly. Once windows is aware by the setting that the RTC is actually set to UTC then it keeps time accordingly.
Both windows and linux use NTP to verify the clock setting and keep it accurate. The issue here is the default expectations of the OS with the RTC settings. Resetting the windows clock to use an RTC set to UTC is simple and solves every time issue that I have seen.
@computersavvy, is my previous citation a way to accomplish this that you can confirm works for you? There’s some debate at SuperUser over whether it functions:
I know that when I initially installed fedora on my laptop and saw the discrepancy that I reset the bios to utc and then reset the time in windows accordingly. It has worked consistently since.
I believe the command you were given set-local-rtc 0 instructs fedora to reset the RTC to the current UTC which it already knows as a result of NTP and/or the time zone setting.
Once that is done you would still need to reset windows to know that the RTC is UTC and not local time.
On my Windows 11 24H2 system, I did set the “RealTimeIsUniversal” registry entry but I cannot find a GUI way of telling Windows to use UTC for the RTC. Can you let me and the others know how you did this?
I did so on my windows 10/fedora dual boot laptop quite some time ago by simply using the time/date settings for windows with the RTC already set to UTC.
When I had a VM for windows 11 installed the time/date was set correctly also (on a different host) but will have to reinstall the VM to try that setting again.