OpenNTPD для QNX4OpenNTPD -- это системный сервис
Unix реализующий
Network Time Protocol (NTP, сетевой протокол службы времени) для синхронизации локальных часов компьютерной системы с удалёнными серверами NTP. Также может выступать в качестве NTP-сервера для NTP-совместимых клиентов.
OpenNTPD преимущественно разрабатывается Хеннингом Брауэром (Henning Brauer) как часть проекта
OpenBSD. Цели проекта -- безопасность (отсутствие возможностей для уязвимостей), лёгкая настройка, достаточная точность для большинства применений и исходный код, который может распространяться под лицензией BSD. Переносимая версия, как и для
OpenSSH, разрабатывается как дочерний проект, который добавляет переносимость кода к
OpenBSD версии и выпускается отдельно. Переносимая версия разрабатывается Дарреном Такером (Darren Tucker).
OpenNTPD 3.9p1Существует специально подготовленная переносимая версия OpenNTPD, на данный момент это OpenNTPD 3.9p1. Эта версия уже должна поддерживать QNX4, что указано в документации. Но, по всей видимости, сборка должна осуществляться компилятором и утилитами GNU, что не всегда удобно. Ниже описывается процесс сборки при помощи OpenWatcom в среде Linux с использованием TCP/IP 5.0. Можно рассматривать нижеследующее описание как мини-курс по работе с OpenWatcom.
1. Подготовка исходных кодовСкачиваем архив openntpd-3.9p1.tar.gz с
официального сайта. Также понадобится
патч исходных кодов для QNX4. В исходный код пришлось внести незначительные изменения, в основном касающиеся системы сборки. Распаковываем исходный код и накладываем патч следующими командами:
$ tar zxf openntpd-3.9p1.tar.gz
$ cd openntpd-3.9p1
$ zcat ../openntpd-3.9p1-qnx4.patch.gz | patch -p1
2. Конфигурация$ CC=wacc CFLAGS=-D__QNX__ LDFLAGS=-lsocket ./configure --host=i386-unknown-qnx \
--prefix=/usr --sbindir=/usr/bin --sysconfdir=/etc --with-privsep-user=ntp
Здесь
CC=wacc указывает компилятор Си, сам скрипт wacc можно скачать
в этой теме.
CFLAGS=-D__QNX__ -- специально определяем макрос
__QNX__, как это было бы при сборке в самом QNX4.
LDFLAGS=-lsocket -- указывает необходимость линковки библиотеки socket. Параметр
--host=i386-unknown-qnx -- указывает на то, что будет производиться кроссплатформенная сборка. Следующие три параметра задают соответственно каталог для установки, каталог для системных исполняемых файлов (задаём /usr/bin, т.к. в QNX4 нет /usr/sbin) и каталог для конфигурационных файлов. В опции
--with-privsep-user задаём пользователя ntp (вместо _ntp). После выполнения команды
configure будут созданы необходимые заголовочные и make файлы.
3. СборкаКак ни странно, сборка осуществляется достаточно просто:
4. Подготовка дистрибутиваСначала надо сделать предварительную установку:
$ make install prefix=../openntpd/usr sbindir=../openntpd/usr/bin sysconfdir=../openntpd/etc STRIP_OPT=
Специально переопределяются переменные
prefix,
sbindir и
sysconfdir, чтобы установка прошла в каталог ../openntpd . Значения этих переменных аналогичны соответствующим ключам указываемым скрипту
configure. Переменная
STRIP_OPT устанавливается в пустую строку, иначе при выполнении команды
make install установочный скрипт будет пытаться удалить отладочную информацию и завершится с ошибкой.
Переходим в каталог ../openntpd и готовим установочный дистрибутив:
$ cd ../openntpd
$ tar --owner=root --group=root -zcf ../openntpd-3.9p1-qnx4-bin-`date +%Y%m%d`.tar.gz *
Специально устанавливается владелец и группа root для файлов в архиве, зачастую это позволяет избежать некоторых проблем. Всё, дистрибутив готов.
5. Установка дистрибутиваСкопируйте файл openntpd-3.9p1-qnx4-bin-20101107.tar.gz в корневую директорию QNX4 и выполните от пользователя root:
# cd /
# /etc/install -u openntpd-3.9p1-qnx4-bin-20101107.tar.gz
После этого необходимо добавить пользователя ntp в систему, для этого добавляем в файл /etc/group:
В файл /etc/passwd добавляем:
ntp::201:201::/usr/ntp:/bin/false
Создаём домашний каталог пользователя ntp:
# mkdir /usr/ntp
# chmod 700 /usr/ntp
Также необходимо добавить две следующие строчки в файл /etc/services:
ntp 123/tcp # Network Time Protocol
ntp 123/udp # Network Time Protocol
Для работы
OpenNTPD необходимо установить сервис
PRNGD, этот процесс описан в
соответствующей теме. После этого можно запустить prngd и ntpd, например, так:
# prngd /etc/egd-pool
# ntpd
Ссылки -
Официальный сайт -
Описание в википедии +
engl -
Дистрибутив OpenNTPD 3.9p1 для QNX4 -
Патч OpenNTPD 3.9p1 для QNX4 -
PRNGD для QNX4 -
Настройка OpenWatcom для QNX4 -
Утилита wacc