Chrony устанавливает системное время, но не синхронизирует RTC

Я настроил Chrony с флагом rtcsync, который ДОЛЖЕН "Включить синхронизацию ядра аппаратных часов реального времени (RTC)", но это не так.

Chrony правильно устанавливает системное время с помощью ntp, но RTC остается неизменным, и я не могу понять, почему это так. Я предполагаю, что ядро ​​не распознает запрос Chrony на синхронизацию RTC, но это только предположение.

Версии
Ядро: 4.19
Хроны: 3.5

ОБНОВИТЬ:

Похоже, что внешний RTC регистрируется после того, как ядро ​​пытается получить к нему доступ, и это предотвращает синхронизацию RTC с синхронизированным системным временем NTP. изdmesg:

...
[    6.317060] hctosys: unable to open rtc device (rtc)
...
[   14.303503] rtc-ds1307 9-0068: registered as rtc0
...

Я сделал временный обходной путь, добавив задание cron, которое обновляет hwclock каждые 10 минут.

1 ответ

Получить rtcsync работает, вы должны установить RTC_SYSTOHC а также RTC_SYSTOHC_DEVICEЯдро правильно, так как это просто просит ядро ​​синхронизировать системное время с RTC. Это происходит примерно каждые 11 минут.

Однако лучший способ сделать это - использовать rtcfile (а также rtcdevice) в этом случае хрони будет обрабатывать RTC. Он даже вычислит дрейф RTC, который затем можно исправить, если RTC поддерживает механизм подстройки.

Другие вопросы по тегам