Raspberry Pi nu are ceas hardware. Cum forțez NTPD să actualizeze data / ora imediat după fiecare pornire?

Execut Raspbian și Raspberry Pi este conectat utilizând un cablu Ethernet .

Comentarii

  • Al meu face deja asta din Ce disto folosiți?
  • Raspbian Wheezy
  • @Thorb Pi este conectat cu cablu Ethernet / dhcp. Pur și simplu nu primește o dată validă după pornire, durează ceva timp (10 până la 45 de minute)
  • O va face automat, după câteva minute. Asigurați-vă că ați setat-o să utilizeze Master Clock la Biroul Național de Standarde, time.nist.gov așa cum este descris aici: raspberrypi.stackexchange.com/questions/68811/…
  • Se pare că nu cineva a răspuns încă la această întrebare în mod satisfăcător – adică cum să sincronizați timpul prin NTP după o pornire (adică fără repornire).

Răspuns

După căutând în jur, această metodă a funcționat pentru mine. După cum știți, Raspberry Pi 3 are NTP dezactivat în mod implicit. Deci, doar tastând acest lucru, suportul NTP va fi activat:

sudo timedatectl set-ntp True 

Verificați rezultatul cu timedatectl status

În caz de avertisment, poate fi necesar să executați și sudo timedatectl set-local-rtc true.

Comentarii

  • Mulțumesc, acest lucru m-a ajutat în cele din urmă și pare a fi calea corectă, în ciuda răspunsurilor anterioare.
  • Acesta este cel mai bun răspuns, m-a ajutat foarte mult. Puteți utiliza ‘ sudo ‘ pentru a evita introducerea parolei (utilă pentru scripturile care o rulează). Care este scopul comenzii secunde? set-local-rtc

Răspuns

Faceți un apt-get install ntpdate .

ntpdate va rula când este afișată o interfață Ethernet și va seta ora de pe un server ntp (consultați /etc/default/ntpdate).

Dacă ntpd rulează, ntpdate nu va face nimic, totuși ntpdate va rula înainte de ntpd la pornire – deci acest lucru ar trebui să funcționeze pentru a seta ora la pornire atâta timp cât există o conexiune Ethernet.

Comentarii

  • stoc Raspbian va avea deja toate acestea.
  • @scruss mine nu ‘ t. (2013-02-09 wheezy rasbian)
  • De asemenea, a mea nu a făcut-o, a trebuit să o facă manual.
  • Dacă este configurată corect, o va face automat – deși poate dura câteva minute.
  • Linux raspberrypi 4.14.30-v7+ #1102 SMP Mon Mar 26 16:45:49 BST 2018 armv7l GNU/Linux nu l-a avut nici ‘.

Răspuns

Dacă ceasul este oprit, poate fi necesar să forțați ntp să se sincronizeze făcând:

sudo /etc/init.d/ntp stop sudo ntpd -q -g sudo /etc/init.d/ntp start 

Comentarii

  • Returnează eroarea ” sudo: ntpd: comanda nu a fost găsită ”
  • ntpd trebuie să fie instalat pentru a utiliza comanda
  • Este este instalat, nu sunt atât de ignorant 🙂
  • Puteți vizita raspberrypi.stackexchange.com/questions/47542/… ? Am postat detalii acolo.
  • Aceasta a fost absolut soluția la problema mea, dar am găsit că este temporară până când am repornit. În cele din urmă am observat o eroare la închidere că nu putea ‘ să actualizeze hwclock, deoarece ceasul hw avea o dată viitoare (nu știu cum sa întâmplat asta). Dar soluția a fost o forță de actualizare hwclock. Acest lucru a forțat actualizarea la ceasul hardware fals și apoi la pornire timpul a fost cel puțin apropiat de curent, astfel încât ntp să poată face treaba ‘ în mod normal.

Răspuns

Dacă setați fusul orar în raspi-config Raspberry Pi va actualiza automat timpul de pornire, dacă este conectat la internet.

  1. sudo raspi-config
  2. Selectați Internationalisation Options
  3. Selectați I2 Change Timezone
  4. Selectați zona geografică
  5. Selectați cel mai apropiat oraș
  6. Selectați Finish
  7. Selectați Yes pentru a reporni acum

Comentarii

  • acest lucru a funcționat bine pentru mine
  • I2 Change Timezone opțiunea nu ‘ t mai există
  • Există, cel puțin în Raspbian Buster.
  • ” Opțiuni de internaționalizare ” este numit acum ” Opțiuni de localizare ”
  • ” cel mai apropiat oraș ” nu este calea corectă. trebuie să selectați orașul în care aparține fusul orar, care poate fi cel mai apropiat sau nu …

Răspuns

Consultați postarea pe forum Ora nu se sincronizează pe Pi 3 și cu dongle oficial .

ntpd emite pachete IP / UDP cu Câmpul ToS setat la 0xc0. Deci, aceasta este destul de similară cu cealaltă problemă pe care o am (și multe altele) cu Raspberry Pi3 atunci când operează pe o interfață internă Wi-Fi.

Ca soluție, adăugați comanda

/sbin/iptables -t mangle -I POSTROUTING 1 -o wlan0 -p udp --dport 123 -j TOS --set-tos 0x00 

la fișier

/etc/rc.local 

înainte de linia de ieșire 0. Apoi, reporniți și verificați.

Comentarii

  • Am avut aceeași problemă ca și când am instalat RPi3 pe care l-am obținut pentru XMas și mi-ați rezolvat problema. Minunat !!!

Răspuns

Se pare că această întrebare este ” reciclat ” dintr-un anumit motiv și, așadar, pare adecvat să reciclezi și câteva răspunsuri vechi 🙂

Anul este acum 2021 …

Această întrebare a fost adresată în 2013. ntpd a fost software-ul de cronometrare inclus în distribuția Raspbian la acel moment (wheezy) . Cu toate acestea, acest lucru s-a schimbat odată cu distribuția stretch în 2017 când systemd-timesyncd a înlocuit ntpd. Motivele acestei schimbări și unele dintre compromisurile tehnice au fost discutate în acest vechi răspuns pentru cei care sunt interesați de astfel de lucruri.

În ceea ce privește întrebarea de aici, poate cel mai important punct din mediul actual (post- systemd) este aceasta: dacă decideți să instalați ntpd sub distribuția actuală Raspbian, știți că systemd-timesyncd va ” face ceea ce trebuie „! Acesta va verifica prezența altor demoni NTP și își va regla comportamentul în consecință; funcționează doar . Puteți citi totul despre aceasta introducând acest lucru la linia de comandă:

$ systemctl cat systemd-timesyncd 

Rețineți ultimele rânduri:

# don „t run timesyncd if we have another NTP daemon installed
ConditionFileIsExecutable =! / usr / sbin / ntpd
ConditionFileIsExecutable =! / usr / sbin / openntpd
ConditionFileIsExecutable =! / Usr / sbin / chronyd
ConditionFileIsExecutable =! / Usr / sbin / VBoxService

Cu alte cuvinte: systemd-timesyncd verifică dacă vreunul dintre aceste servicii de timp alternativ rulează pe sistemul dvs. și, în caz afirmativ, acesta diferă în mod politicos pentru furnizarea serviciilor dvs. de cronometrare.

” forțați ” ntpd pentru a actualiza după pornire ?!

Acesta a fost OP întrebarea. Răspunsul (în 2021) nu s-a schimbat: Nu ar trebui să fie necesar să faceți acest lucru pe orice sistem RPi – decât dacă cineva a modificat configurația implicită ! Puteți verifica acest lucru după cum urmează:

 $ timedatectl Local time: Wed 2021-01-13 00:25:33 GMT Universal time: Wed 2021-01-13 00:25:33 UTC RTC time: n/a Time zone: Europe/London (GMT, +0000) System clock synchronized: yes NTP service: active RTC in local TZ: no  

Rețineți două elemente:

  1. System clock synchronized: yes
  2. NTP service: active

Elementul 1. vă spune că ceasul sistemului dvs. este sincronizat cu orice sursă de timp implicită, iar Elementul 2. este aproape adevărat în sensul că RPi folosește implicit protocolul SNTP în loc de NTP ( REF ); adică acest lucru înseamnă că RPi are o sursă de timp și o folosește.

Cred că „este tot ce este necesar pentru un up-to- răspuns la data pentru 2021 , cu excepția acestui: citiți man timedatectl pentru a afla mai multe despre capacitățile sale sau dacă TLDR această pagină are un rezumat decent.

Comentarii

  • Ceasul sistemului este sincronizat: nu
  • @Arrow_Raider: Yer ‘ punctul fiind ???

Răspuns

Ar trebui să actualizeze deja ora. Serverul NTPD ar trebui să pornească imediat după fișierul de swap și înainte de SSHD.

Verificați fișierul /etc/ntp.conf pentru a vă asigura că este configurat.

Ar trebui să enumere cel puțin un server. Folosesc time.nrc.ca pentru serverul meu.

Pagina manuală pentru ntp.conf este aici: http://linux.die.net/man/5/ntp.conf

Răspuns

Rasberry Pi al fiului meu nu va actualiza timpul din cutie și după ce a încercat toate sugestiile de mai sus le-am putut actualiza manual, dar nu automat. În cele din urmă, după ce am căutat și altundeva fără succes, am constatat că ntp.fișierul conf care a venit cu Rasberry Pi a fost comentat următoarele rânduri:

#restrict 127.0.0.1 #restrict ::1 

Am folosit

sudo nano /etc/ntp.conf 

în terminal pentru a edita fișierul conf ntp pentru a fi acum:

# Local users may interrogate the ntp server more closely. restrict 127.0.0.1 restrict ::1 

Asta a rezolvat problema pentru noi. Se actualizează atât prin cablul WiFi, cât și prin cablul Ethernet. Nu știu dacă s-ar actualiza cu WiFi fără trecerea la rc.local sugerată mai sus, deoarece până când am găsit soluția de mai sus, am făcut deja acea modificare și nu am anulat-o.

Răspuns

Am găsit aplicația timedatectl care să mă ajute când aveam o problemă similară. instalat implicit și „–help” oferă o prezentare generală destul de bună și simplă a modului de utilizare a instrumentului.

Notă: asigurați-vă că fusul orar este setat corect, lucru pe care îl poate face și acest instrument. p>

Răspuns

Nu trebuie să utilizați ntp pentru a rezolva problema. Există un script care citește data de pe un server și trebuie doar să setați data pentru a fi rezultatul acelui script (Raspberry Pi trebuie conectat la internet). Apoi, trebuie să rulați acea comandă la pornire.

Pasul 1: Primiți data de pe un server.

sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d" " -f5-8)Z" 

Pasul 2: Rulați comanda la pornire adăugând-o la fișierul /etc/rc.local (Lucrat pe Ubuntu 16.04).

sudo gedit /etc/rc.local 

CREDITE:

1- https://askubuntu.com/a/655528/572294

2- https://askubuntu.com/a/1199/572294

Comentarii

  • Este posibil să nu fie necesar să utilizați ntp dar ar trebui. Este ‘ mai bun, mai rapid, mai precis și standardul industriei. Nu ‘ nu-ți compui lucrurile ciudate atunci când există standarde bune, te rog.
  • Nu ajută mult ‘ dacă RasPi rulează 24/7.

Răspunde

Am avut o problemă similară cu un Pi care nu se sincronizează . Niciuna dintre aceste soluții nu a funcționat. Se pare că mediul meu de rețea bloca portul NTP (123). Soluția pentru mine a fost

sudo apt install htpdate 

preluată de la: https://www.raspberrypi.org/forums/viewtopic.php?t=222236

Care actualizează ceasul sistemului prin apeluri HTTP.

Răspunde

Acest este abordarea pe care am ajuns să o iau. Multe dintre aceste răspunsuri păreau să indice lucruri care tocmai nu au fost verificate când m-am uitat la sistemul meu Raspian:

$ cat /etc/os-release PRETTY_NAME="Raspbian GNU/Linux 9 (stretch)" NAME="Raspbian GNU/Linux" VERSION_ID="9" VERSION="9 (stretch)" ID=raspbian ID_LIKE=debian HOME_URL="http://www.raspbian.org/" SUPPORT_URL="http://www.raspbian.org/RaspbianForums" BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs" 

Nu aveam nimic care să apară în jurnale că timedatectl făcea orice sau că ntp se sincroniza în starea de sus a NIC sau că NTPD a fost chiar instalat / configurat.

La final, am adăugat acest lucru la /etc/rc.local:

$ cat /etc/rc.local logger "Beginning force syncing NTP..." service ntp stop ntpd -gq service ntp start logger "Finished force syncing NTP..." 

Și am instalat ntp:

$ sudo apt-get install ntp 

Ceea ce are ca rezultat acest lucru în /var/log/syslog:

Aug 5 09:10:20 pi-hole ntp[526]: Starting NTP server: ntpd. Aug 5 09:10:20 pi-hole ntpd[555]: proto: precision = 1.458 usec (-19) Aug 5 09:10:20 pi-hole ntpd[555]: Listen and drop on 0 v6wildcard [::]:123 Aug 5 09:10:20 pi-hole ntpd[555]: Listen and drop on 1 v4wildcard 0.0.0.0:123 Aug 5 09:10:20 pi-hole ntpd[555]: Listen normally on 2 lo 127.0.0.1:123 Aug 5 09:10:20 pi-hole ntpd[555]: Listen normally on 3 eth0 192.168.1.85:123 Aug 5 09:10:20 pi-hole ntpd[555]: Listen normally on 4 lo [::1]:123 Aug 5 09:10:20 pi-hole ntpd[555]: Listen normally on 5 eth0 [fe80::f5ea:7663:4ec:784d%2]:123 Aug 5 09:10:20 pi-hole ntpd[555]: Listening on routing socket on fd #22 for interface updates Aug 5 09:10:21 pi-hole ntpd[555]: ntpd exiting on signal 15 (Terminated) Aug 5 09:10:21 pi-hole ntp[661]: Stopping NTP server: ntpd. Aug 5 09:10:21 pi-hole ntpd[674]: ntpd [email protected] Sat Mar 10 18:03:33 UTC 2018 (1): Starting Aug 5 09:10:21 pi-hole ntpd[674]: Command line: ntpd -gq Aug 5 09:10:21 pi-hole ntpd[674]: proto: precision = 0.625 usec (-21) Aug 5 09:10:21 pi-hole ntpd[674]: Listen and drop on 0 v6wildcard [::]:123 Aug 5 09:10:21 pi-hole ntpd[674]: Listen and drop on 1 v4wildcard 0.0.0.0:123 Aug 5 09:10:21 pi-hole ntpd[674]: Listen normally on 2 lo 127.0.0.1:123 Aug 5 09:10:21 pi-hole ntpd[674]: Listen normally on 3 eth0 192.168.1.85:123 Aug 5 09:10:21 pi-hole ntpd[674]: Listen normally on 4 lo [::1]:123 Aug 5 09:10:21 pi-hole ntpd[674]: Listen normally on 5 eth0 [fe80::f5ea:7663:4ec:784d%2]:123 Aug 5 09:10:21 pi-hole ntpd[674]: Listening on routing socket on fd #22 for interface updates Aug 5 09:10:34 pi-hole ntpd[674]: Soliciting pool server 198.98.57.16 Aug 5 09:10:35 pi-hole ntpd[674]: Soliciting pool server 74.82.59.149 Aug 5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 23.131.160.7 Aug 5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 52.37.26.163 Aug 5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 204.2.134.163 Aug 5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 96.126.100.203 Aug 5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 199.223.248.101 Aug 5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 66.228.42.59 Aug 5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 208.75.89.4 Aug 5 09:10:37 pi-hole ntpd[674]: Soliciting pool server 204.2.134.164 Aug 5 09:10:37 pi-hole ntpd[674]: Soliciting pool server 104.236.116.147 Aug 5 09:10:38 pi-hole ntpd[674]: Soliciting pool server 204.9.54.119 Aug 5 09:10:48 pi-hole ntpd[674]: ntpd: time set +6.769186 s Aug 5 09:10:49 pi-hole ntpd[853]: ntpd [email protected] Sat Mar 10 18:03:33 UTC 2018 (1): Starting Aug 5 09:10:49 pi-hole ntpd[853]: Command line: /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 111:114 Aug 5 09:10:49 pi-hole ntp[844]: Starting NTP server: ntpd. Aug 5 09:10:49 pi-hole ntpd[856]: proto: precision = 0.625 usec (-21) Aug 5 09:10:49 pi-hole ntpd[856]: Listen and drop on 0 v6wildcard [::]:123 Aug 5 09:10:49 pi-hole ntpd[856]: Listen and drop on 1 v4wildcard 0.0.0.0:123 Aug 5 09:10:49 pi-hole ntpd[856]: Listen normally on 2 lo 127.0.0.1:123 Aug 5 09:10:49 pi-hole ntpd[856]: Listen normally on 3 eth0 192.168.1.85:123 Aug 5 09:10:49 pi-hole ntpd[856]: Listen normally on 4 lo [::1]:123 Aug 5 09:10:49 pi-hole ntpd[856]: Listen normally on 5 eth0 [fe80::f5ea:7663:4ec:784d%2]:123 Aug 5 09:10:49 pi-hole ntpd[856]: Listening on routing socket on fd #22 for interface updates Aug 5 09:10:49 pi-hole root: Finished force syncing NTP... 

Comentarii

  • Nu funcționează ‘ pe raspbian minim: Failed to start ntp.service: Unit ntp.service not found. Și ntpd nu există nici ‘. Cu siguranță, Pi câștigă timp. (‘ Mă uit la asta deoarece buclele HTTPS nu reușesc fără -k când sunt rulate anterior)
  • @StevenLu – I ‘ Voi actualiza A ‘ er pentru a include și instalarea ntp.
  • @StevenLu – apt-get install ntp

Răspuns

Folosesc următoarele despre imaginea implicită pentru a sincroniza timpul fără a instala pachete suplimentare:

timedatectl set-local-rtc 0 timedatectl set-ntp 1 timedatectl status 

Răspuns

Am găsit asta undeva pe interwebs. Se pare că funcționează pe Buster:

sudo timedatectl set-ntp false && sudo timedatectl set-time "$(date --iso-8601=seconds | cut -d "+" -f1 | tr T " ")" && sudo timedatectl set-ntp true 

Nu sunt sigur dacă comanda intermediară (set-time) este într-adevăr necesar.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *