"timedatectl set-ntp true" has no effect, or at least is not reading its configuration information. On my network, machine cortex is the NTP server. The command: ntpclient -h cortex -i 10 shows that the skew is increasing by between 40 and 150 microseconds every ten seconds. The file /etc/systemd/timesyncd.conf contains the line: NTP=cortex This may be related to the Gentoo machine being virtual; a KVM guest. The command: "systemctl status systemd-timesyncd" outputs: ● systemd-timesyncd.service - Network Time Synchronization Loaded: loaded (/usr/lib/systemd/system/systemd-timesyncd.service; enabled; vendor preset: enabled) Active: inactive (dead) Condition: start condition failed at Mon 2014-12-22 17:08:47 AEST; 17min ago ConditionVirtualization=no was not met Docs: man:systemd-timesyncd.service(8) The command "ntpclient -s -h cortex" resets the skew to about 420 microseconds. Invoking /usr/lib/systemd/systemd-timesyncd directly causes the skew to settle at around 500 microseconds. So the bug is that systemd's NTP does not work, by design or accident, on VM guest machines.
No, the point is that systemd's timesyncd does not run under virtualization environments per default configuration, as is evidenced by ConditionVirtualization=no was not met in your configuration. I'm not terribly convinced to change such upstream configuration in Gentoo - quite a bunch of good reasons not to enable it per default come to my mind. Other Opinions? Otherwise, CANTFIX/INVALID. Anyway, you can override this configuration by creating a small file /etc/systemd/system/systemd-timesyncd.service.d/override_virtualization.conf containing [Unit] ConditionVritualization= After that a # systemctl daemon-reload # systemctl restart systemd-timesyncd should succeed. Whether it does anything meaningful is another question.
Typo: > containing > > [Unit] ConditionVirtualization=
Thanks Matthias; that does appear to fix it. My reason for raising this as a bug is that it seems that there is, by design, no way to synchronise time on a virtual machine. Maybe that's because it's expected that the time should remain synchronised by the host, but in fact, with KVM at least, that doesn't happen.