Синхронизация часов на PC с эталонными.


Как сделать, чтобы часы на вашем компьютере синхронизовать с атомными часами ? Я задался этим вопрсом, поскольку пользуюсь спутниковым навигатором eTrex фирмы Garmin. Как известно, часы в этом устройстве идут синхронно с атомным эталоном. Вернее будет сказать, что время в спутниковом навигаторе вычисляется путем решения системы уравнений. Как сделать, чтобы часы на компьютере и в навигаторе были синхронизованы ? Итак, дано - eTrex и notebook. На notebook'е у меня установлен ASPLinux 7.1. Ядро у моего Linux'а 2.2.19, то которое шло вместе с дистрибутивом ( я не перекомпилировал ядро ).

В начале я скажу пару слов о теории. Время на компьютере может быть установлено либо по Coordinated Universal Time (UTC), либо по местному времени. При включении компьютера, время считывается из CMOS памяти в операционную систему и пока компьютер включен, поддерживается ею. Обычно, на компьютере кроме Linux установлен и MS Windows, который считает, что время в CMOS местное. Поэтому в Linux также необходимо, чтобы время было местное. Для этого в файле /etc/sysconfig/clock необходимо добавить строку UTC=false. Это утверждение верно для дистрибутивов типа RedHat. Следует также заметить, что при установке нового значения времени в Linux, меняется файл /etc/adjtime в котором сохраняется разница времени в системе и истинного времени. Это связано с тем, что изменить время в работающей системе скачком невозможно, поскольку произойдет рассинхронизация многих служб, например, make, log и других. Поэтому система постепенно приводит внутреннее время в соответствие с истинным путем добавления или вычитания некоторой величины каждую секунду. Такой процесс может продолжаться довольно длительное время, особенно если часы сильно рассогласованы. Однако, если система может быть перезагружена, время будет взято с учетом файла коррекции во время загрузки. Следует отметить и такой интересный факт: поскольку Земля вращается неравномерно, каждые полтора года добавляют или вычитают високосную секунду, т.е. ход эталонного времени также может меняться.

Со стороны навигатора также необходимо сделать некоторые настройки. Существует протокол NMEA, который используется для связи навигационных приборов между собой и с компьютером. Этот протокол предусматривает выдачу пакета данных каждую секунду. По умолчанию eTrex использует другой протокол, поэтому необходимо установить протокол NMEA в меню setup eTrex.

Здесь я привожу краткую инструкцию, как настраивается Linux для синхронизации часов. Особо хочу подчеркнуть, что все, что здесь написано основано на моем личном опыте и не претендует на какие-либо обобщения. При этом я не несу никакой ответствености за то, что может произойти у Вас при использовании данной инструкции. Итак:

Надеюсь, что данный алгоритм поможет Вам повысить точность хода часов на компьютере. Если у Вас есть сеть, можно синхронизовать остальные компьютеры, используя тот, который подключен к навигатору как эталон. Если у Вас есть вопросы или замечания, со мной можно связаться по этому адресу.


Вернуться

Домой
Домой

Hosted by uCoz