Ru-Board.club
← Вернуться в раздел «UNIX»

» Таймсервер на FreeBSD

Автор: philosophist
Дата сообщения: 05.12.2007 10:05
Имеется:
1) Свежеустановленная FreeBSD-6.2
2) Более-менее прямые руки
3) GPS-приёмник с выходом на com-порт, так называемый "Type 20 Generic NMEA GPS Receiver (NMEA)"
Address: 127.127.20.u
Reference ID: GPS
Driver ID: GPS_NMEA
Serial Port: /dev/gpsu; 4800 baud, 8-bits, no parity
Serial Port: /dev/gpsu; symlink to server:port (for nmead) Features: tty_clk
Кое-что по английски http://www.eecis.udel.edu/~mills/ntp/html/refclock.html
4) Минимальные познания в FreeBSD
5) Необходимость поднять в лок.сети NTP-сервер
6) Установленный демон ntpd, прописан в автозагрузку
7) Файл /etc/ntp.conf содержит:

---------------------------------------------------------------------------------------------------------
server 127.127.20.1 # это адрес GPS-приёмника, последняя 1 - это если подключен к com1, хотя по идее должно быть .0, хз короче.
server 127.127.1.0 # внутренние часы машины
fudge 127.127.1.0 stratum 8
restrict 192.168.2.0 mask 255.255.255.0 nomodify notrap
---------------------------------------------------------------------------------------------------------

8) Файл /etc/rc.conf содержит строки:

---------------------------------------------------------------------------------------------------------
...
ntpd_enable="YES"
ntpd_config="/etc/ntp.conf"
...
---------------------------------------------------------------------------------------------------------


При загрузке выдаёт:
...
ntpd started #ну вроде сервис стартует
ntpd[476]: refclock_open: /dev/gps1: No such file or directory #нет файла или директории
ntpd[476]: refclock_nmea: time_pps_create failed: Inappropriate ioctl for device #неподходящий ioctl для устройства
ntpd[476]: too many recvbufs allocated (40)
...

Команда "ntpq -p" выдаёт "timed out, nothing received", значит ntpd не принимает данные ни откуда

В связи со всем этим вопросы:
1) Как в /dev добавить устройство с неизвестными свойствами?
Командой >mknod gps1 c 0 0 создаётся gps1, но только в /root
Командой >mknod /dev/gps1 c 0 0 не создаётся ничего.
2) Как установить параметры com-порта, если это com1 и информация выдаётся один раз в секунду в виде строк RMC в соответствии с NMEA-0183, со скоростью 4800 бод в формате 8 бит+1стоповый (8n1)? В RS-232 используется только 3 линии: PPS (импульсы синхры частотой 1Гц), ТХ (4800/8n1) ну и GND. Может настраивать как 3ware-устройства?
3) Как открыть/запустить этот com-порт на приём данных
4) Как сконфигурировать этот com-порт или посмотреть обмен данными по этому порту, если неизвестно, что это за устройство - tty, ccu или ещё что?

Читал везде, где только можно, начиная с http://www.freebsd.org/doc/ru_RU.KOI8-R и заканчивая ... По com-портам вообще тёмный лес, по файлам спец. устройств и их правильному определению/администрированию тоже самое.

Добавлено.
Вроде нашёл что-то похожее http://www.david-taylor.myby.co.uk/ntp/FreeBSD-GPS-PPS.htm
Завтра опробую методу.
Автор: Sadok
Дата сообщения: 26.12.2007 21:48
У меня какое-то подозрение, что стратум1 "простому" клиенту время не отдаст...
Автор: philosophist
Дата сообщения: 27.12.2007 06:43
Sadok
Сделал уже всё сам, пашет "как часы" Конфигурирование NTPD в FreeBSD-6.2 оказалось проще чем я думал. NTP-сервер отдаёт время стандартной виндовой w32time (скорее это w32time время принимает) только после определённого времени аптайма сервера, короче синхронизируется только если сервер проработал не менее суток. Если юзать сторонние NTP-клиенты, то получение корректного времени зависит только от срока "подгонки", после запуска FreeBSD, (не знаю как это правильно называется) локального сервиса GPS_NMEA в соответствии с поступающими по RS-232 PPS импульсами. Это около 10-15 минут, а всё это время сервер отдаёт в лок.сеть время своих часов (из биоса), этим локальным внутр.часам я назначил stratum 10, это те что в конфиге называются "server 127.127.1.0".
Автор: tankistua
Дата сообщения: 27.12.2007 09:49

Цитата:
короче синхронизируется только если сервер проработал не менее суток.

не правильно - тех же 10-15 минут.

ntpd_enable="YES"
ntpd_sync_on_start="YES"
ntpd_config="/usr/local/etc/ntpd.conf"


server ua.pool.ntp.org

restrict default noquery notrap
restrict 127.0.0.1
restrict 10.0.0.0 mask 255.0.0.0 nomodify notrap
restrict 172.16.0.0 mask 255.240.0.0 nomodify notrap
restrict 192.168.0.0 mask 255.255.0.0 nomodify notrap

driftfile /var/db/ntp.drift
logfile /var/log/ntpd.log
Автор: philosophist
Дата сообщения: 28.12.2007 03:13
tankistua

Цитата:
не правильно - тех же 10-15 минут

Поверь мне, намного больше. Ну может и не сутки, я точно не замерял, у меня другие интересные дела в тот момент были, но уж точно больше нескольких часов. Это относится к стандартной виндовой w32time и конфигурации моего NTP-сервера с stratum 1, а он именно что стратум 1, стратум 0 у меня имеет устройство 127.127.20.0 то есть сам GPS приёмник.
Мне такой конфиг

Цитата:
ntpd_sync_on_start="YES"

не подходит, бывает, что после включения GPS приёмник долго не может синхронизироваться (до 30 минут, толи спутники вне зоны видимости, толи ещё что) и этим самым импульсам PPS никакой веры нет, хотя сам сигнал PPS присутствует (сам смотрел осциллографом). Следовательно у моих потребителей (а это ни много ни мало видеосерверы, работающие по расписанию) в этот начальный момент может установиться неправильное время со всеми вытекающими, ну это если NTP-клиенту приспичит запросить время с NTP-сервера.
Хотя все эти тонкости малозначимы для подавляющего большинства сисадминов...
Автор: tankistua
Дата сообщения: 28.12.2007 15:56

Цитата:
что после включения GPS приёмник долго не может синхронизироваться (

а - так я провтыкал. У меня синхронизация по интернету :)

Страницы: 1

Предыдущая тема: Нет правила для сборки цели


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.