2

Usually I don't modify the configuration of my Windows 10 machines regarding time synchronisation. Recently I'm working more with Linux SBCs (Raspberry Pi etc.) on IoT solutions. I noticed how several of them are perfectly in sync at any time. The LED signals of the devices on my desk flash up in exactly the same instants, regardless of whether they're connected through ethernet or WLAN.

My (always-on) Windows PC (stand-alone, no Windows domain here) is always a few seconds off. Most of the time, the time is different by 1 to 2 seconds, compared to the Linux machines, and it varies. Manually hitting the "synchronise now" button doesn't change anything about it.

My notebook is even worse. After waking it up, time may be off by many seconds for an extended period of time, until time synchronisation brings it near the actual time, but not quite.

I've built a small test website some time ago, that compares the local system time with my web server (Linux server in a big data centre nearby), and it also shows me that difference.

Now I've changed my w32time configuration to use pool.ntp.org through the old Windows 7 control panel dialog, and the change is reflected in the registry as well. (It was that suspicious time.windows.com before.) That didn't change anything.

For a test, I ran an old program called ntpdate.exe that I have lying around. It wants an IP address and I need to start it as administrator, but it pushed my system clock very close to my server. A few minutes later, it was 250 ms off again.

So it seems that Windows' own time synchronisation isn't working. At least when comparing it to what every Linux system does out of the box, and very reliably so. Maybe Microsoft thinks that there must be clock diversity and an error of a few seconds is totally fine. My goal is rather to stay within ~100 ms of the official time which should be possible. My DSL internet link is quite stable regarding ping times.

So is there any hope that w32time can do that? If yes, what magic words do I have to tell it to do that? Otherwise, what 3rd party tools can you recommend to keep my time in sync and not eat all of my memory?

1 Answer 1

2

You are already running Linux.
Setup one of your Linux machines as a NTP server.
Point the Windows time-service to that. (Use w32tm on the commandline to configure the Windows time-service. It is very well hidden.)
Actually... Just using 2 or more time-servers on the Internet simultaneously (you can use a list) will probably already improve things.

That will get you closer, but still not as good as you will see on Linux. That is because Windows doesn't seem to account for natural clock-skew as good as Linux does and Windows pulls time-updates less frequently than Linux does. This makes a Windows computer deviate faster, especially if the internal clock on the motherboard isn't very accurate to begin with. (Most aren't.)

If you want to do better install a proper NTP client on Windows. There are several Open Source NTP clients available. And just about any of those will be better than the Windows build-in one.

If you want the best possible accuracy you can buy a USB dongle (or PCI(e) card) that has a build-in radio-receiver for the time-signals broadcast by various reference clock systems all over the world.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .