Il Raspberry Pi manca di un orologio hardware. Come forzare NTPD ad aggiornare la data / ora immediatamente dopo ogni avvio?
Io corro Raspbian e il Raspberry Pi è collegato con un Ethernet via cavo.
Il Raspberry Pi manca di un orologio hardware. Come forzare NTPD ad aggiornare la data / ora immediatamente dopo ogni avvio?
Io corro Raspbian e il Raspberry Pi è collegato con un Ethernet via cavo.
Risposte:
Fare un apt-get install ntpdate
.
ntpdate
verrà eseguito quando viene visualizzata un'interfaccia Ethernet e imposterà l'ora da un server ntp (vedi /etc/default/ntpdate
).
Se ntpd
è in esecuzione, ntpdate non farà nulla, tuttavia ntpdate
verrà eseguito prima ntpd
all'avvio - quindi questo dovrebbe funzionare per impostare l'ora all'avvio fintanto che c'è una connessione Ethernet.
Linux raspberrypi 4.14.30-v7+ #1102 SMP Mon Mar 26 16:45:49 BST 2018 armv7l GNU/Linux
non ce l'avevo.
Se l'orologio è fuori orario, potrebbe essere necessario forzare la sincronizzazione di ntp effettuando:
sudo /etc/init.d/ntp stop
sudo ntpd -q -g
sudo /etc/init.d/ntp start
Dopo aver cercato in giro, questo metodo ha funzionato per me. Come sai, Raspberry Pi 3 ha l'NTP disabilitato per impostazione predefinita. Quindi digitando questo, il supporto NTP sarà abilitato:
sudo timedatectl set-ntp True
Controlla il risultato con timedatectl status
In caso di avviso, potrebbe essere necessario eseguire sudo timedatectl set-local-rtc true
anche tu .
Se si imposta il fuso orario in raspi-config
Raspberry Pi, l'aggiornamento verrà automaticamente aggiornato all'avvio, se connesso a Internet.
sudo raspi-config
Internationalisation Options
I2 Change Timezone
Finish
Yes
per riavviare oraI2 Change Timezone
l'opzione non esiste più
Vedi post sul forum Il tempo non si sincronizza su Pi 3 e con il dongle ufficiale .
ntpd emette pacchetti IP / UDP con il campo ToS impostato su 0xc0. Quindi è abbastanza simile all'altro problema che io (e molti altri) ho con Raspberry Pi3 quando operato tramite un'interfaccia interna Wi-Fi.
Per ovviare al problema, aggiungere il comando
/sbin/iptables -t mangle -I POSTROUTING 1 -o wlan0 -p udp --dport 123 -j TOS --set-tos 0x00
al file
/etc/rc.local
prima dell'uscita 0 riga. Quindi, riavvia e controlla.
Dovrebbe già aggiornare l'ora. Il server NTPD dovrebbe avviarsi subito dopo il file di scambio e prima di SSHD.
Controlla il tuo file /etc/ntp.conf per assicurarti che sia configurato.
Dovrebbe elencare almeno un server. Uso time.nrc.ca per il mio server.
La pagina di manuale per ntp.conf è qui: http://linux.die.net/man/5/ntp.conf
Rasberry Pi di mio figlio non aggiornava il tempo fuori dalla scatola e dopo aver provato tutti i suggerimenti sopra ho potuto farlo aggiornare manualmente ma non automaticamente. Alla fine, dopo aver cercato altrove senza successo, ho scoperto che il file ntp.conf fornito con Rasberry Pi aveva commentato le seguenti righe:
#restrict 127.0.0.1
#restrict ::1
ero solito
sudo nano /etc/ntp.conf
nel terminale per modificare il file conf ntp per essere ora:
# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict ::1
Questo ha risolto il problema per noi. Si aggiorna sia con il WiFi che con il cavo Ethernet. Non so se si aggiornerebbe con WiFi senza la modifica di rc.local suggerita sopra, poiché quando ho trovato la soluzione sopra avevo già apportato quella modifica e non l'ho annullata.
Ho trovato l' timedatectl
applicazione che mi ha aiutato quando avevo un problema simile. È installato di default e '--help' offre una panoramica abbastanza buona e semplice su come usare lo strumento.
Nota: assicurati che il fuso orario sia impostato correttamente, cosa che può fare anche questo strumento.
Questo è l'approccio che ho finito per seguire. Molte di queste risposte sembrano indicare cose che non sono state verificate quando ho guardato il mio sistema 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"
Non avevo nulla che apparisse nei log che indicava che timedatectl
stava facendo qualcosa, o che si ntp
stava sincronizzando sullo stato attivo della scheda NIC o che NTPD era persino installato / configurato.
Alla fine ho semplicemente aggiunto questo al mio /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..."
E installato ntp
:
$ sudo apt-get install ntp
Che si traduce in questo in /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 4.2.8p10@1.3728-o 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 4.2.8p10@1.3728-o 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...
Failed to start ntp.service: Unit ntp.service not found.
e ntpd non esiste neanche. Il Pi alla fine guadagna sicuramente tempo. (Sto esaminando questo perché i miei riccioli HTTPS falliscono senza -k quando vengono eseguiti prima di quello)
apt-get install ntp
Non è necessario utilizzare ntp per risolvere il problema. Esiste uno script che legge la data da un server e devi solo impostare la data come risultato di quello script (il tuo Raspberry Pi deve essere connesso a Internet). Quindi, è necessario eseguire quel comando all'avvio.
Step1: recupera la data da un server.
sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d' ' -f5-8)Z"
Step2: Esegui il comando all'avvio aggiungendolo al file /etc/rc.local
(ha funzionato su Ubuntu 16.04).
sudo gedit /etc/rc.local
CREDITI: