Я использую Debian Jessie с SD-карты на SBA Atmel xPlained SAMA5D3. У меня есть программа на Python, которая пробует другое устройство через последовательную линию. Указанное устройство имеет довольно надежные часы обратного отсчета 20 с. Я обнаружил, что вычисленные времена цикла движутся совсем немного.
Это привело к обнаружению, что systemd-timesyncd настраивал тактовую частоту на 0,5 с - 1,0 с каждые 32 с. Кажется, он не корректирует тикрейт, а просто продолжает компенсировать. Так как это так много, он никогда не отступает и продолжает наносить удары каждые 32 секунды. Я обнаружил, что полные пакеты ntp и openntpd вели себя одинаково.
Поэтому я выключил systemd-timesyncd. И обнаружил, что в тот момент я неуклонно терял около 1,5 с в минуту.
Это привело меня к установке ntpdate и adjtimex. Я написал работу cron, которая выполняла ntpdate каждые 10 минут и записывал эти результаты в файл. Используя уравнение
tickAdjust = ntpAdjustmentMilliseconds / 10minutes
Я мог бы использовать adjtimex -t, чтобы настроить значение тика. При значении 10158 10-минутные обновления стали очень маленькими, зависая с обеих сторон от 0.
Итак, мой вопрос на данный момент, что делать? Я немного узнал о Linux и времени, но теперь у меня появилось больше вопросов. Я не знаю, является ли это значение 10158 просто приемлемым или приемлемым?Должен ли я просто написать небольшую программу на Python, которая анализирует мои журналы и делает так, как я делал вручную? Почему он изначально так сильно искажен, что systemd-timesyncd не может его настроить? Мое ядро даже указывает на правильный источник часов? В руководстве пользователя сказано, что есть два тактовых процессора, но ниже показано 3:
# cat /sys/devices/system/clocksource/clocksource0/available_clocksource
> tcb_clksrc pit jiffies
Как они связаны? Я играл со сменой источника часов, но, похоже, ничего не изменилось, почему? Где системные часы и аппаратные часы во всем этом? Используется ли аппаратное обеспечение rtc вообще?
Я не боюсь просто "свернуть", используя ntpdate и adjtimex, но я чувствую, что просто не понимаю, как на самом деле должно быть достигнуто устойчивое время.