Драйвер приемника, передающего данные по стандарту NMEA, живет по адресу
127.127.20.x (в этом случае читать его ntpd будет из
/dev/gpsx). Нужно позаботиться о наличии символической ссылки на соответствующее устройство:
/dev/ttySx (для работы через последовательный порт),
/dev/ttyUSBx (для подключения через USB), или
/dev/rfcommx (для работы через rfcomm).
Далее надо сделать доступным для ntpd это устройство: проследить, что оно создается в chroot, если ntpd запускается там, установлены ли правильные права доступа, нет ли ограничений на доступ для процесса ntpd в профилях AppArmor или SELinux.
После этого, нужно добавить в конфигурационный файл
server 127.127.20.0. Это некоторая форма записи желания работать с драйвером
Generic NMEA GPS. Полный список доступных драйверов находится
здесь. Они все настраиваются аналогичным образом.
При удачном старте ntpd сообщит в логах примерно следующее:
22 Jun 14:13:15 ntpd[2165]: GPS_NMEA(0) serial /dev/gps0 open at 4800 bps
При этом
ntp -np сообщит что-то вроде этого:
remote refid st t when poll reach delay offset jitter
==============================================================================
*127.127.20.0 .GPS. 0 l 11 64 77 0.000 -99.226 59.612
127.127.1.0 .LOCL. 10 l - 64 0 0.000 0.000 0.000