Raspberry Pi NTP Server

From Linux Wiki
Jump to navigation Jump to search

Configurarea Raspberry Pi ca server NTP folosint NEO-7M

Un server NTP asigura sincronizarea corecta a orei pentru toate dispozitivele dintr-o retea, prevenind erori în loguri, autentificari sau servicii care depind de timp precis. Folosind un modul GPS cu PPS, un Raspberry Pi poate deveni o sursa Stratum‑1 foarte stabila și independenta de internet. Acest proiect prezinta configurarea unui astfel de server NTP simplu și fiabil pentru uz local.

Configurare UART și activare PPS

Pe Raspberry Pi, consola seriala este activa implicit, ceea ce blocheaza utilizarea interfetei UART pentru modulul GPS. Pentru a putea folosi portul serial și semnalul PPS, este necesara dezactivarea consolei și activarea manuala a suportului UART și PPS.

Dezactivarea consolei seriale

Pentru dezactivarea consolei seriale editam fisierul /boot/firmware/cmdline.txt de unde stergem segmentul care contine consola, de obicei ceva de forma:

console=serial0,115200

Lasam restul liniei pe un singur rand, exact cum era.

Verificarea activarii UART

Edităm fisierul /boot/firmware/config.txt unde ne asiguram ca exista:

[all] enable_uart=1


Activarea modulului PPST

Incarcam modulul PPS executand:

echo 'pps-gpio' >> /etc/modules

Pentru configurarea pinului PPS (GPIO 18) editam din nou fisierul /boot/firmware/config.txt iar in partea de jos adaugam:

dtoverlay=pps-gpio,gpiopin=18

Aceasta indica kernelului ca semnalul PPS este conectat la GPIO 18.

Dupa ce efectuam aceste modificari, oprim systemul in vederea conectarii modului de GPS.

Conectarea modului GPS

Dupa dezactivarea consolei seriale și activarea suportului PPS, interfața UART a Raspberry Pi devine libera pentru comunicarea cu modulul GPS. Conectarea se face direct pe pinii GPIO, folosind alimentarea de 5V, masa comuna și liniile de date RX/TX, plus semnalul PPS.

Schema de conectare
Pagina Pringipala UrBackup
Pagina Pringipala UrBackup


  • Conectam pinul de 5V al Raspberry Pi la pinul de alimentare al modulului GPS.
  • Conectam GND la masa modulului GPS.
  • Conectam TX0 de pe Raspberry Pi la RX al modulului GPS (Pi transmite → GPS primeste).
  • Conectam RX0 de pe Raspberry Pi la TX al modulului GPS (GPS transmite → Pi primeste).
  • Conectam GPIO 18 la pinul PPS al modulului GPS, conform configurarii din config.txt

Test pentru UART si PPS

Dupa conectarea modulului GPS si configurarea UART/PPS, putem verifica functionarea celor doua interfete direct din sistem.

Test UART (NMEA)

Pentru a verifica daca modulul GPS transmite date NMEA prin UART:

cat /dev/serial0 to be added to be added to be added

Daca totul este configurat corect, ar trebui sa apara siruri NMEA. In zul in care nu apare asemenator mai sus , verificati conexiunile RX/TX si setarile UART.

Instalare unelte PPS si testare

Pentru testarea semnalului PPS, instalati pachetul necesar:

  • apt install pps-tools

Dupa instalare, verificam semnalul PPS:

ppstest /dev/pps0 to be added to be added to be added

Un rezultat corect va afisa impulsuri detectate la fiecare secunda.

Configurare gpsd

Instalam pachetele necesare pentru gestionarea modulului GPS:

  • apt install gpsd gpsd-clients

Editam fisierul de configurare gpsd:

nano /etc/default/gpsd START_DAEMON="true" DEVICES="/dev/serial0 /dev/pps" GPSD_OPTIONS="-n" USBAUTO="false" GPSD_SOCKET="/var/run/gpsd.sock"

START_DAEMON -> Porneste automat serviciul gpsd la boot. Daca este "false", gpsd nu se lanseaza singur. DEVICES -> Aceasta linie indica gpsd sa deschida doua dispozitive simultan /dev/serial0 → fluxul NMEA provenit de pe UART (datele GPS clasice: GGA, RMC, sateliti etc.) /dev/pps → semnalul PPS hardware folosit pentru sincronizare precisa la nivel de secunda GPSD_OPTIONS -> Porneste gpsd chiar daca nu exista clienti conectati. Fara -n, gpsd asteapta un client inainte sa initializeze modulul GPS. USBAUTO -> Dezactiveaza detectarea automata a dispozitivelor GPS USB; necesar cand folosim un modul pe UART. GPSD_SOCKET -> Definește socket-ul UNIX prin care aplicatiile (cgps, chrony etc.) comunica cu gpsd.