Домашний NTP сервер с GPS синхронизацией

Временное маньячество проходило несколько фаз:

  1. Я добавил в пулл ntp.org два сервера. — Можно успокоиться.
  2. Но если не будет интернета, где мне брать время? — Тревожность.
  3. Я не запилить ли свой сервер времени Stratum 0? — Беспокойство.
  4. Наверняка уже есть такие решения! — Поиск.
  5. Это же ужас! от 6 000 руб до 350 0000 руб! — Неприятие.
  6. Пора поскрести по сусекам и собрать из говна и палок! — РЕШИМОСТЬ!

По случаю продолжающегося расстройства психики, связанного с мониторингом ИБП был куплен за малые деньги OrangePi Win Plus. Довольно прикольный одноплатник с Wi-Fi и блюпук на борту. На него водрузился Armbian, NUT и замониторился APC Back-UPS RS 1000 Pro.

Но ресурсов у его явно больше чем требует NUT. И блюпук не используется. И тут я вспомнил, что в какой-то коробке лет 15 без дела лежит GPS треккер Nokia LD-3W.

ПОРА! Пора собирать шайтан-машинку!

Подключил по блюпук:

Устанавливаем блюпук стек и подключаем треккер.

Порт /dev/rfcomm0

#apt install bluez
#bluetoothctl
[bluetooth]#power on
[bluetooth]#discoverable on
[bluetooth]#pairable on
[bluetooth]#scan on
[bluetooth]#scan off
[bluetooth]#pair 00:02:76:C3:EB:1E
[bluetooth]#trust on
[bluetooth]#
[Nokia LD-3W]> devices
Device 00:02:76:C3:EB:1E Nokia LD-3W
[Nokia LD-3W]> info
Device 00:02:76:C3:EB:1E (public)
        Name: Nokia LD-3W
        Alias: Nokia LD-3W
        Class: 0x00011f00 (73472)
        Paired: yes
        Bonded: yes
        Trusted: yes
        Blocked: no
        Connected: yes
        LegacyPairing: no
        UUID: Serial Port               (00001101-0000-1000-8000-00805f9b34fb)
[Nokia LD-3W]>exit
#rfcomm bind rfcomm0 00:02:76:C3:EB:1E 1
#rfcomm -a 
#apt install gpsd chrony   

Настраиваем gpsd:

/etc/default/gpsd                                                                                                                                                         # Devices gpsd should collect to at boot time.
# They need to be read/writeable, either by user gpsd or the group dialout.
START_DAEMON="true"
GPSD_OPTIONS="-n -G"
DEVICES="/dev/rfcomm0"
#/dev/pps0"
USBAUTO="false"
GPSD_SOCKET="/var/run/gpsd.sock"

Проверяем работу:

#cgps
#gpsmon

Настраиваем chrony:

/etc/chrony/chrony.conf 
server ntp.itart.su iburst
refclock SHM 0 refid GPS precision 1e-1 offset -0.050

Проверяем chrony

#chronyc -n sources
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
#* GPS                           0   4   377    24  +5854us[+6915us] +/-  100ms
^? 37.252.19.134                 0  10     0     -     +0ns[   +0ns] +/-    0ns

# chronyc tracking
Reference ID    : 47505300 (GPS)
Stratum         : 1
Ref time (UTC)  : Wed Oct 22 12:31:52 2025
System time     : 0.000918052 seconds fast of NTP time
Last offset     : +0.003163139 seconds
RMS offset      : 0.002226016 seconds
Frequency       : 50.759 ppm fast
Residual freq   : +1.089 ppm
Skew            : 41.199 ppm
Root delay      : 0.000000001 seconds
Root dispersion : 0.106877103 seconds
Update interval : 16.0 seconds
Leap status     : Normal

Устанавливаем TICC-Dash контрол панель для Chrony https://github.com/anoniemerd/ticc-dash

#curl -fsSL https://raw.githubusercontent.com/anoniemerd/ticc-dash/main/install_ticc_dash.sh | bash

Скачиваем пакет gpsd-clients

#apt download gpsd-clients

Вытаскиваем оттуда webgps — клиент, который генерит html с данными от gpsd.

Поднимаем апач, настраиваем виртуальный хост.

И в принципе все.

Из минусов этого решения — нет PPS в трекере. Возможно в будущем раскошелюсь и куплю USB GNSS модуль с внешней антенной. Но финансовая сторона этого решения уже не видится целесообразной. Это крутится вокруг 4 000 руб. Готовый NTP сервер с синхронизацией по GPS/Glonass/Beidou и кварцевыми часами с батарейкой, монтажем в стойку и дисплейчиком стоит 12 тр. на али.

https://aliexpress.ru/item/1005006075821500.html?sku_id=12000035615799454&spm=a2g2w.productlist.search_results.7.7ada6f84pCGSqD

А самый дешевый 5 500 руб

https://aliexpress.ru/item/4000511687355.html?sku_id=10000002518430449&spm=a2g2w.productlist.search_results.0.7ada6f84pCGSqD

Смысл заморачиваться?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.