Назад | Перейти на главную страницу

Установка времени ntp из gpsd

Я пытаюсь настроить ntpd на источник пора с приемника gps (BU-353S4) но у меня возникают ошибки.

Я использую ntpd 4.2.8.p6-3 и gpsd 3.16-2 на Arch Linux Arm. Я слежу за учебник по арке вики но у него нет информации по устранению неполадок.

Журнал gpsd содержит запись

gpsd:ERROR: response: {"class":"ERROR","message":"No such device as /dev/gps0"}\x0d\x0a

Повторяется каждые 6 секунд или около того, ничего, кроме сообщений запуска и остановки.

/var/log/ntp.log содержит:

Listen and drop on 0 v6wildcard [::]:123
Listen and drop on 1 v4wildcard 0.0.0.0:123
Listen normally on 2 lo 127.0.0.1:123
Listen normally on 3 eth0 172.10.10.75:123
Listen normally on 4 lo [::1]:123
Listen normally on 5 eth0 [fe80::ba27:ebff:feba:af05%2]:123
Listening on routing socket on fd #22 for interface updates
GPSD_JSON(0): GPSD revision=3.16 release=3.16 protocol=3.11

ntpq -p выходы

    remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 GPSD_JSON(0)    .GPS.            0 l    -   64    0    0.000    0.000   0.000

/etc/ntp.conf содержит

restrict 127.0.0.1
restrict ::1

restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery

# GPSD config
server 127.127.46.0
fudge 127.127.46.0 time1 0.0 time2 0.0 refid GPS

driftfile /var/lib/ntp/ntp.drift
logfile /var/log/ntp.log

тем не мение sudo gpscat /dev/gps0 выводит (на мой неопытный взгляд) достоверную информацию nmea gps, и cgps и gpsmon все получают исправление и выводят полезную информацию.

/dev/ttyUSB0 имеет разрешения crw-rw---- 1 root uucp 188. gpsd работает под пользователем nobody и ntpd работает как пользователь ntp

gpsd работает как никто и поэтому не имеет права читать /dev/ttyUSB0, именно на это он и жалуется.

Если вы добавите nobody пользователь в группу uucp, это должно исправить ситуацию, но это не рекомендуется. Или вы можете изменить режимы на /dev/ttyUSB0 быть 666, что немного менее ужасно. Лучше всего отредактировать gpsd конфигурация запуска, чтобы он запускался от имени другого пользователя, возможно gpsd, и сделать /dev/ttyUSB0 группа принадлежит gpsdосновная группа (также вероятно gpsd).

При условии, что gpsd устанавливает время, когда он может правильно читать GPS, это позволит ntpd рекламировать время, зная (поскольку вы его настроили), что оно получено из источника stratum-0 (ntp).

Будьте осторожны, вы должны «запустить gpsd на связанном /dev/gps0 чтобы линия GPSD_JSON выглядела должным образом ". Проверьте, работает ли ваш GPSD на /dev/gps0 или не. Мой GPSD работает /dev/ttyS0 на моем сервере и после того, как я изменил УСТРОЙСТВА на /dev/gps0 в /etc/default/gpsd, NTPd может успешно связать GPSD.