Установка времени ntp из gpsd
Я пытаюсь настроить ntpd на источник, это время от приемника GPS (BU-353S4
) но я получаю некоторые ошибки.
Я использую ntpd 4.2.8.p6-3 и gpsd 3.16-2 в Arch Linux Arm. Я следовал учебному пособию в Arch Wiki, но в нем нет информации об устранении неполадок.
Журнал 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
выводит (на мой неопытный глаз) правильную информацию о GPS и nmea, и cgps
а также gpsmon
все получают исправления и выводят полезную информацию.
/dev/ttyUSB0
имеет разрешения crw-rw---- 1 root uucp 188
,gpsd
работает под пользователем nobody
а также ntpd
работает как пользователь ntp
2 ответа
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.