У меня есть специальная плата, на которой работает timeyncd от systemd. Я включил его, и, похоже, время не синхронизируется должным образом. Он подскакивает к 2044 году, что (пока) не наш текущий год. Если я установил дату вручную на устройстве, используя date --set
, а затем вручную запустить двоичный файл timesyncd с включенной отладочной информацией, я получаю следующее:
<79>Sent NTP request to 216.239.35.0:123 (time1.google.com).
<79>NTP response:
<79> leap : 0
<79> version : 4
<79> mode : 4
<79> stratum : 1
<79> precision : 0.000001 sec (-20)
<79> root distance: 0.000320 sec
<79> reference : GOOG
<79> origin : 1573654500.583
<79> receive : 1573665638.644
<79> transmit : 1573665638.644
<79> dest : 1002.750
<79> offset : +786837886.978 sec
<79> delay : -1573653497.833 sec
<79> packet count : 1
<79> jitter : 0.000
<79> poll interval: 16
<79> adjust (jump): +786837886.978 sec
<79> status : 8192 sync
<79> time now : 2360492387.768
<79> constant : 2
<79> offset : +0.000 sec
<79> freq offset : +0 (+0 ppm)
<79>interval/delta/delay/jitter/drift 16s/+786837886.978s/-1573653497.833s/0.000s/+0ppm
Я пробовал с другими серверами, и результаты такие же. У меня есть исходный код, и я вижу, что переменная dest
извлекается из полученного пакета NTP. К нему применяется функция, но та же функция также используется для получения других переменных, например origin
и receive
; и все это в порядке (ну ладно, смотрите).
Вы знаете, что это может быть?
Я использую для него 64-битную сборку на ARM.