Я не могу настроить NTP в Ubuntu 18.04.3 LTS (Linux 4.15.0-74-generic). В качестве источника синхронизации хочу использовать NMEA + PPS от модуля GPS.
Модуль GPS подключается через USB с помощью преобразователя интерфейса SILABS CP2102:
Bus 002 Device 003: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP210x UART Bridge / myAVR mySmartUSB light
Сигнал приемника GPS PPS подключается к линии DCD преобразователя. Нет проблем с получением данных NMEA и работой с ними в NTP. Возникла проблема с использованием сигнала PPS. Я делаю ldattach PPS / dev / ttyUSB0:
[ 1815.641450] pps_ldisc: PPS line discipline registered
[ 1815.641812] pps pps0: new PPS source usbserial2
[ 1815.641820] pps pps0: source "/dev/ttyUSB0" added
Соответствующий узел pps0 появляется в / dev. Вроде бы все хорошо, но просто не работает.
ppswatch /dev/pps0
trying PPS source "/dev/pps0"
found PPS source "/dev/pps0"
time_pps_fetch() error -1 (Connection timed out)
time_pps_fetch() error -1 (Connection timed out)
Соответственно, NTP не видит сигнал PPS. В ядро вроде бы включена поддержка:
# HSI clients
#
CONFIG_HSI_CHAR=m
CONFIG_PPS=m
# CONFIG_PPS_DEBUG is not set
#
# PPS clients support
#
# CONFIG_PPS_CLIENT_KTIMER is not set
CONFIG_PPS_CLIENT_LDISC=m
CONFIG_PPS_CLIENT_PARPORT=m
CONFIG_PPS_CLIENT_GPIO=m
pps_ldisc после загрузки ldattach:
lsmod|grep pps
pps_ldisc 16384 1
pps_core 20480 2 pps_ldisc,ptp
Как найти проблему? Где искать?
Сначала нужно заставить /dev/pps0 работать.
apt install pps-tools; ppstest /dev/pps0
если он не работает.
убедитесь, что /dev/pps0 использует правильный источник: dmesg | Для grep pps
[ 5.358856] pps pps0: new PPS source pps.-1
[ 5.358947] pps pps0: Registered IRQ 349 as PPS source
ntp требуется драйвер nmea "/dev/gps%d" /* GPS-устройство с последовательным интерфейсом / "/dev/gpspps%d" / Переопределение устройства PPSAPI */ -> символическая ссылка на /dev/pps0
Также убедитесь, что вы используете правильные настройки в ntp.conf
например
https://www.eecis.udel.edu/~mills/ntp/html/drivers/driver20.html
сервер 127.127.20.0 режим 88 maxpoll 1 предпочитаю истинную выдумку 127.127.20.0 time1 0 flag1 1 refid GPS
где режим 88 скорость линии 115200 бит/с и обработка $GPZDA или $GPZDG