I dual boot Linux and Windows XP on my laptop. I added the following registry key in XP to support Universal Time from the BIOS:
HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\RealTimeIsUniversal
The clock is set correctly when I start up XP, but if the machine wakes from sleep, the clock is off a couple hours.
Is there a way to have XP use the Universal Time setting correctly during wake up?
If not, can I prevent XP from setting the clock on resume?
Best Answer
My guess is that Windows somehow misbehaves upon wakeup from sleep regarding the system time. According to a Wikipedia article the registry key you are citing doesn't fully work, even on recent versions of Windows:
I think your best bet here would be to tell Linux that the system clock runs in local time and bite the bullet two times a year with DST.
ETA: This article details the problem a little more and also hints on the fact that the issues with that registry key are fixed in Vista SP2 and Windows 7:
So, concluding I think you have two options:
P.S.: Contrary to other posters here, this can't be the CMOS battery. The real-time clock isn't powered by the battery as long as the system has power. This includes sleep mode (obviously). In case the CMOS battery is dead the real-time clock would reset itself to its factory settings which is usually January 1 a few years back. A couple of hours offset simply doesn't happen, as there is no clock "state" that survives a complete power loss. It's not akin a wall clock with a flaky battery which retains its time even when the battery is dead.