В качестве gps приемника был использован Rovermate Navisat + внешняя антена. И все это хозяйство установлено у окна. Соединять приемник будем по bluetooth, для начала сделаем сопряжение его с сервером, затем выполним команду:
Scanning ...
00:0A:3A:1F:D8:56 BT GPS
Отредактируем файл rfcomm.conf и оставим там только:
rfcomm0 {
bind yes;
device 00:0A:3A:1F:D8:56;
comment "Example Bluetooth device";
}
Активируем порт:
$sudo rfcomm bind rfcomm0
Делаем символьную ссылку для ntpd:
$sudo ln -s /dev/rfcomm0 /dev/gps0
Проверяем работу gps приемника:
$cat /dev/gps0
Если по экрану побежали буквы значит всё работает и переходим к редактированию ntp.conf:
# Local Clock — если теряем спутники, то снижаем stratum до 10
server 127.127.1.0
fudge 127.127.1.0 stratum 10
# NMEA GPS driver
server 127.127.20.0 prefer
driftfile /var/lib/ntp/ntp.drift
restrict default nomodify notrust # Отдаём время всем
restrict 127.0.0.1 # Разрешаем себе всё
disable auth
logfile /var/log/ntp/messages
Перезапускаем ntpd:
sudo /etc/init.d/ntp restart
Проверим статус:
[daffin@daffin:~]$ ntpq -np
remote refid st t when poll reach delay offset jitter
==============================================================================
127.127.1.0 .LOCL. 10 l 50 64 7 0.000 0.000 0.001
127.127.20.0 .GPS. 0 l 13 64 7 0.000 15.478 1.377
127.127.22.0 .PPS. 0 l - 64 0 0.000 0.000 0.001
Через Некоторое время проверьте /var/log/ntp/messages, если там примерно такие строчки, значит синхронизация проходит успешно:
[daffin@daffin:~]$ tail -n 5 /var/log/ntpstats/messages
24 Jun 16:38:08 ntpd[14668]: synchronized to GPS_NMEA(0), stratum 0
24 Jun 16:38:08 ntpd[14668]: time reset +0.286936 s
24 Jun 16:38:08 ntpd[14668]: kernel time sync status change 2001
24 Jun 16:41:34 ntpd[14668]: synchronized to LOCAL(0), stratum 10
24 Jun 16:42:10 ntpd[14668]: synchronized to GPS_NMEA(0), stratum 0