У меня есть робот, и я использую timemaster для запуска chrony и добавления источника PTP из моего GPS. Когда я запускаю робота внутри, где он не может определить местонахождение спутника, GPS утверждает, что это 5 января 1980 года. «сделать шаг 1 3», настроенный для хронии), а затем, когда я вывожу робота на улицу, и GPS начинает показывать правильное время, он начинает смещаться в сторону 2021 года, которого, конечно, никогда не будет. Список источников хронов выглядит, например, так:
[root@robot user]# хронических источников
210 Количество источников = 5
Имя MS/IP-адрес Stratum Poll Reach LastRx Последняя выборка
================================================== ==============================
#x PTP0 0 2 377 4 +15173d[+15173d] +/- 8760us
^* ipv4.ntp1.rbauman.com 2 6 377 38 -43 мс [ -15 мс] +/- 134 мс
^- 150.136.0.232 2 7 377 148 -59 мс[ -31 мс] +/- 192 мс
^+ 38.229.58.9 2 8 377 216 +30 мс[ +55 мс] +/- 124 мс
^+ ntp.speculation.org 2 7 377 38 -5919us[ +22 мс] +/- 130 мс
Я правильно установил время при сборе этих данных, поэтому вы можете видеть, что первый источник отключен на 15 173 дня, потому что 2021–1980 = 15000 дней.
Простое и очевидное исправление, которое мы используем, состоит в том, чтобы выключить все, а затем снова включить, как только мы окажемся снаружи, но я надеялся, что есть параметр конфигурации chrony (или параметр конфигурации timemaster), который мне не хватает, который будет игнорировать источники (даже если они утверждают, что это слой 0), если он отличается, скажем, на 20 лет или на какое-то другое такое огромное количество времени.
Я попытался изменить настройки makestep, но это на самом деле усугубляет проблему, потому что, если мы отключим makestep, кто-то будет работать с роботом внутри в течение нескольких часов, часы смещаются в сторону 1980 года на несколько часов, а затем часы идут неправильно, пока не смогут отклоняться назад на равное количество времени.
Спасибо за любые ваши идеи. На самом деле я делаю это на трех встроенных ПК под управлением разных ОС, поэтому я не могу указать версию Linux или версию chrony. Если у вас есть исправление, которое работает только на последней версии chrony, я буду рад его услышать!