Я пытаюсь настроить 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.