В стандартные дистрибутивы и репозитории ОС ОН Орёл 2.12 до версии 2.12.10 были включены две службы точного времени:
- Серверная служба NTP (ntpd) (представлена пакетами ntp и ntpdate);
- Клиентская служба timedatectl / systemd-timesyncd.service.
Подробнее про них можно прочитать по ссылке. Кроме того, по той же ссылке можно ознакомиться с базовыми терминами, связанными с организацией служб времени в компьютерах
Начиная с версии ОС ОН Орёл 2.12.10 помимо указанных выше служб в репозитории стал доступен пакет linuxptp, содержащий следующие службы:
- ptp4l - служба протокола времени высокой точности;
- phc2sys - служба синхронизации часов;
- timemaster - служба координации, обеспечивающая совместную работу традиционной службы времени ntp и службы времени высокой точности ptp.
Данная статья применима к:
- Орёл 2.12.10
Проверка оборудования
Пакет ориентирован на использование аппаратных средств точного времени, в частности, аппаратных возможностей сетевых карт (аппаратные отметки времени).
Пакет можно настроить и запустить и без сетевых карт, поддерживающих аппаратные возможности (см. ниже).
Проверить, поддерживает ли сетевая карта аппаратные отметки времени можно из командной строки с помощью команды ethtool из пакета ethtool (пакет ethtool, возможно, придётся установить):
sudo ethtool -T eth0
Установка пакета
Пакет linuxphp доступен в репозитории Орёл (начиная с версии 2.12.10) и может быть установлен с помощью графического менеджера пакетов или из командной строки командой
Настройка службы timemaster
Конфигурация службы timemaster находится в файле /etc/linuxptp/timemaster.conf.
Подробно возможные параметры настройки описаны в электронной справочной системе:
Включение службы домена точного времени (ptp_dpomain)
Для включения службы времени высокой точности ptp4l раскомментироватьв файле настроек /etc/linuxptp/timemaster.conf секцию [ptp_domain 0] (в примере - настройка домена точного времени, использующего интерфейс eth0 ):
[ptp_domain 0]
interfaces eth0
delay 10e-6
Домен точного времени обслуживается сервисом ptp4l, настройка этого сервиса описана ниже.
Включение службы ntp
Для включения службы ntp в файле настроек /etc/linuxptp/timemaster.conf в секции [timemaster] нужно указать службу ntpd вместо cronyd:
[timemaster]ntp_program chronyd
ntp_program ntpd
После внесения этих изменений служба timemaster сможет самостоятельно запускать службу ntpd под своим контролем, поэтому самостоятельный запуск службы ntpd следует отключить (см. ниже).
Кроме настройки конфигурационного файла нужно разрешить автоматический запуск службы timemaster при старте системы:
Настройка службы ntp
Так как служба timemaster самостоятельно запускает службу ntpd под своим контролем,самостоятельный запуск службы ntpd следует отключить и запретить:
Настройка службы ptp4l
Служба ptp4l представляет собой реализацию протокола времени высокой точности, и, в первую очередь ориентирована на сетевые карты, поддерживающие аппаратные отметки времени (time stamping).
Проверить, поддерживает ли карта аппаратные отметки можно из командной строки с помощью команды ethtool из пакета ethtool (пакет, возможно, придётся установить):
sudo ethtool -T eth0
Конфигурация службы ptp4l хранится в файле /etc/linuxptp/ptp4l.conf, описание которого доступно в справочной системе:
Если используются сетевые карты без аппаратной поддержки отметок временим, в конфигурации службы ptp4l (файл /etc/linuxptp/ptp4l.conf) нужно заменить аппаратную поддержку на программную:
time_stamping hardware
time_stamping software
Настройка службы phc2sys
Служба phc2sys настроек не требует, и если в системе имеется с чем синхронизировать системные часы RTC, phc2sys запустится автоматически с нужными параметрами.
При работе с сетевыми картами, не поддерживающими аппаратные отметки времени служба phc2sys не запускается.
Запуск всех служб
После завершения настройки запуск всех служб осуществляется командой
Служба timemaster сама запустит запустит все остальные сервисы, в итоге статус нормально и полностью запущенной службы выглядит примерно так: