Назад | Перейти на главную страницу

timesyncd дает огромное смещение, потому что поле 'dest' неверно

У меня есть специальная плата, на которой работает 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.