ntptime
Cannot set correct time. Manual setting time by date
command is ignored.
$ sudo timedatectl Local time: Mon 2019-10-28 18:11:50 CET Universal time: Mon 2019-10-28 17:11:50 UTC RTC time: Mon 2019-10-28 15:58:24 Time zone: Europe/Warsaw (CET, +0100) System clock synchronized: no NTP service: inactive RTC in local TZ: no
$ sudo ntptime ntp_gettime() returns code 5 (ERROR) time e161a024.e5878318 Mon, Oct 28 2019 18:13:08.896, (.896599762), maximum error 16000000 us, estimated error 16000000 us, TAI offset 0 ntp_adjtime() returns code 5 (ERROR) modes 0x0 (), offset 0.000 us, frequency 93.212 ppm, interval 1 s, maximum error 16000000 us, estimated error 16000000 us, status 0x2041 (PLL,UNSYNC,NANO), time constant 3, precision 0.001 us, tolerance 500 ppm,
Reason is: there is no possibility to set clock to past. It is possible to adjust kernel clock to slow down. Also some AMD platform are known for big clock drifts.
You can only set times in the future, setting past times with date command will do nothing and no error will be shown. Ntpd service will correct slowly the time at small steps. It's not like in Windows where you can set any time and see the result immediately.
Solution:
stop all ntp daemons, delete /var/lib/ntp/ntp.drift
# set initial adjtimex params $sudo adjtimexconfig Comparing clocks (this will take 70 sec)...done. Adjusting system time by -9.67758 sec/day to agree with CMOS clock...done. # print current ticks sudo adjtimex -p mode: 0 offset: 0 frequency: 5766574 maxerror: 16000000 esterror: 16000000 status: 8257 time_constant: 3 precision: 1 tolerance: 32768000 tick: 9998 raw time: 1572283011s 863855330ns = 1572283011.863855330 # Slow down clock, to do not wait few days for correction adjtimex -tick 9000 # Watch how it works adjtimex -compare
When clock reach good value. Start ntpd. Wait some time and observe 'adjtimex -compare' output. Ntpd will periodically makes adjustments to clock drift to keep clocks synchronized.
Finally it is good to store correct time to RTC hwclock -w