Da dove viene il tempo Raspberry Pi?


Risposte:


45

Raspbian ottiene l'ora da un server NTP (un "time server").

Scollegare completamente Raspberry Pi, estrarre il cavo di rete e riavviare Raspberry Pi. Vedrai che la data e l'ora non sono corrette.

Se si desidera / bisogno la data e l'ora di non essere ripristinato senza essere collegato a Internet, avrete bisogno di un orologio in tempo reale (RTC) - per esempio, qualcosa di simile a questa - che manterrà l'attuale tempo, utilizzando una batteria per eseguire un orologio. Questo è anche il modo in cui il tuo computer mantiene l'ora quando non viene alimentato.

AGGIORNAMENTO Solo una nota a margine che il precedente orologio RTC non è l'unico modo per mantenere il tempo preciso tra le perdite di potenza. È inoltre possibile utilizzare un modulo GPS e collegarlo ai pin GPIO.

Precisione È abbastanza preciso, anche se l'ora dell'orologio è un po 'spenta. Potrebbero essere necessarie fino a 3 ore per correggersi, poiché le modifiche dal server vengono applicate gradualmente all'orologio locale. La stabilità della rete ha il maggiore impatto sull'accuratezza, poiché una rete imprevedibile (qualcosa di più wireless, come il 3G ) renderà molto difficile essere precisi. Per dirla semplicemente: la precisione è piuttosto buona, la differenza di tempo tra il tuo computer e l'ora effettiva (dal server NTP) è normalmente inferiore a 100ms .


1
bella risposta. grazie per il link sull'orologio hardware
Scoop

1
Bella risposta; potrebbe essere migliorato menzionando l'accuratezza del protocollo NTP.
Alex Chamberlain,

@AlexChamberlain Grazie per l'heads-up, stavo per aggiungerlo ma mi è completamente sfuggito di mente. L'ho aggiunto ora.
Vincent P

Mentre il mio Pi è connesso in rete, sto notando che il tempo è passato di 30 minuti ora. Ntpd è abilitato di default o devo farlo manualmente?
andig

Forse è così, fino a quando Raspberry Pi 3. L'ho comprato due mesi fa e l'aggiornamento dell'ora NTP è stato rovinato, almeno su Raspbian Jessie ufficiale. Ho aperto tre discussioni con quel problema e tutti sono all'oscuro. Ho dovuto acquistare un modulo hardware per il tempo necessario per risolvere il problema.
Pigmalione,

21

La risposta di Morgan mi ha dato il suggerimento di cui avevo bisogno per risolvere il problema.

  1. Vai su http://support.ntp.org/bin/view/Servers/NTPPoolServers
    Seleziona la tua regione, verranno visualizzati il ​​tuo paese e un elenco di server.

  2. Modifica il tuo file /etc/ntp.conf ad es

    sudo vim /etc/ntp.conf

    Sostituisci l'elenco dei server con quello che hai trovato nella pagina web. per esempio

    server 0.dk.pool.ntp.org
    server iburst 1.dk.pool.ntp.org
    server iburst 2.dk.pool.ntp.org
    server iburst 3.dk.pool.ntp.org iburst

    Salva ed esci.

  3. Riavvia il deamon ntp.

    sudo /etc/init.d/ntp restart

  4. controlla che la data sia corretta.

    data
    Gio 20 giu 13:39:20 CEST 2013

In uno dei miei server la data è stata cambiata immediatamente. Nell'altro ho dovuto aspettare un paio di minuti.


2
Se ti trovi nel Regno Unito (o in un altro paese), puoi semplicemente modificare il codice paese a due lettere in modo che si adatti a .eg server 0.uk.pool.ntp.org iburst
Pierz

Il passaggio 4 non ha funzionato per me fino a dopo circa 15 minuti. O forse perché ho corso ntpq -p. Sto usando: "Raspbian GNU / Linux 7 (wheezy)" e "Linux raspberrypi 4.1.7+ # 817 PREEMPT sab 19 set 15:25:36 BST 2015 armv6l GNU / Linux"
Peter Mortensen,

Forse hwclocko fake-hwclocksta interferendo (ma la parte "/etc/rc.conf" non è aggiornata)
Peter Mortensen,


E dopo un arresto di 5 minuti, mancavano 5 minuti ( ntpq -pnon faceva differenza).
Peter Mortensen,

14

Se hai il fake-hwclockpacchetto , eseguirà anche un trucco di risparmio di data e ora per impedire il ripristino dell'orologio. Ciò non farà avanzare il tempo mentre il dispositivo è spento, quindi resterà indietro. Anche l'orologio interno si sposterà leggermente quando è acceso.

Se disponi di una connessione Internet (o lan con un server) ed esegui ntp (ntpd / ntpdate), puoi ottenere il tempo sulla rete, come indicano altre risposte. Quando sincronizzato, è davvero abbastanza preciso. I server online ti daranno anche il consenso "ora mondiale".


interessante su fake-hwclock. Perché qualcuno dovrebbe voler congelare l'orologio quando la macchina è spenta? Non riesco a pensare a un caso d'uso per quello. È lì?
Scoop

2
@Scoop Perché l'alternativa sta dimenticando l'ora, quindi verrà ripristinata. Ciò farà apparire eventuali timestamp registrati dal futuro, ecc. "Il congelamento" dell'orologio assicura che il tempo continui ad andare avanti, anche se il conteggio è spento :)
XTL

1
Avere ntp o altro modo per impostare l'orologio ovviamente funzionerà ancora e fake-hwclock funziona solo all'avvio e allo spegnimento.
XTL

1
per fake-hwclockArch Linux, utilizzare archplusplus.co.uk/post/40202081414/…
levinalex

2
Ora questo pacchetto sembra essere installato come predefinito su Raspbian.
Pierz,

11

Il Raspberry Pi non ha un orologio in tempo reale (RTC) integrato per il rapporto costo-efficacia: vedi la domanda "Perché non esiste un orologio in tempo reale (RTC)?" nelle FAQ ufficiali . Significa che quando si scollega il Raspberry Pi, perde tempo. Quando lo riaccendi, il tempo viene inizializzato al 1 ° gennaio 1970 (aka epoca Unix ).

Il Raspberry Pi imposta il suo tempo sulla rete con NTP , un protocollo per la sincronizzazione dell'orologio tra computer. Questo protocollo è ampiamente utilizzato su Internet per garantire che i computer abbiano lo stesso orario ed è altamente affidabile poiché alcune macchine sono dedicate al calcolo del tempo con orologi atomici .

ntpdè un demone (un software in background) lanciato all'avvio, ed è responsabile della sincronizzazione dell'ora usando il protocollo NTP. ntpdpuò essere configurato con il file /etc/ntp.conf. Ad esempio, è qui che è possibile impostare i server per richiedere l'ora.


Non ricorda l'ultima volta? Ho spento un Raspberry Pi una settimana fa e dateora mostra quell'appuntamento di una settimana più, penso, qualche ora in più dal tempo di attività ieri e oggi (dopo alcuni riavvii ieri e oggi). (Raspbian, corrispondente a metà 2015).
Peter Mortensen,

Esegui cat /etc/fake-hwclock.datae vedrai l'ultima volta che hai fake-hwclockrisparmiato il tempo (ovviamente, al momento dello spegnimento). fake-hwclockviene utilizzato sull'RPi per imitare un orologio reale. Penso che tu abbia avviato il tuo RPi senza accesso a Internet o senza aver ntpdiniziato ad aggiornare l'ora. Puoi confermarlo?
Morgan Courbet,

5

Raspbian Stretch: NTP non installato per impostazione predefinita

Sembrerebbe che ci sia stato un po 'di cambiamento con Raspbian Stretch. In breve, ntp non è più installato. La corsa dpkg -l | grep ntpnon restituisce nulla.

Apparentemente, Stretch ha abbandonato l' ntpapplicazione a favore di systemd. Controlla la man timesyncdvoce per i dettagli sulle impostazioni di configurazione. timesyncdusa ancora server ntp per aggiornare l'ora. Se si desidera configurare questi server manualmente, è possibile farlo nel /etc/systemd/timesyncd.conffile.


1
Dopo aver effettuato la modifica, riavviare il servizio sudo systemctl restart timesyncde successivamente controllare i log da parte journalctl -u timesyncd -fdei firewall aziendali a volte blocca la porta. In tali casi, utilizzare l'URL del server ntp aziendale fornito.
dattiloscritto il

Credo che sia il nome corretto del demone systemd-timesyncd, in modo che il comando da riavviare siasystemctl restart systemd-timesyncd
chb

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.