Le Raspberry Pi na pas dhorloge matérielle. Comment forcer NTPD à mettre à jour la date / lheure immédiatement après chaque démarrage?
Jexécute Raspbian et le Raspberry Pi est connecté en utilisant un câble Ethernet .
Commentaires
- Le mien le fait déjà depuis Quelle disto utilisez-vous?
- Raspbian Wheezy
- @Thorb Pi est connecté avec un câble Ethernet / DHCP. Il nobtient tout simplement pas de date valide après le démarrage, cela prend un certain temps (10 à 45 minutes)
- Il le fera automatiquement, après quelques minutes. Assurez-vous de lavoir configuré pour utiliser lhorloge principale du Bureau national des normes, time.nist.gov, comme décrit ici: raspberrypi.stackexchange.com/questions/68811/…
- Il semble que non on a encore répondu à cette question de manière satisfaisante – cest-à-dire comment synchroniser lheure via NTP après un démarrage (cest-à-dire sans redémarrage).
Réponse
Après en cherchant, cette méthode a fonctionné pour moi. Comme vous le savez, le Raspberry Pi 3 a NTP désactivé par défaut. Donc, en tapant simplement ceci, le support NTP sera activé:
sudo timedatectl set-ntp True
Vérifier le résultat avec timedatectl status
En cas davertissement, vous devrez peut-être exécuter sudo timedatectl set-local-rtc true
également.
Commentaires
- Merci, cela ma finalement aidé, et semble être la bonne façon, malgré les réponses précédentes.
- Cest la meilleure réponse, cela ma beaucoup aidé. Vous pouvez utiliser ‘ sudo ‘ pour éviter de saisir votre mot de passe (utile pour les scripts qui lexécutent). Quel est le but de la commande secondes? set-local-rtc
Réponse
Faites une apt-get install ntpdate
.
ntpdate
sexécutera lorsquune interface Ethernet est activée et définira lheure à partir dun serveur ntp (voir /etc/default/ntpdate
).
Si ntpd
est en cours dexécution, ntpdate ne fera rien, cependant ntpdate
sexécutera avant ntpd
au démarrage – cela devrait donc fonctionner pour définir lheure au démarrage tant quil y a une connexion Ethernet.
Commentaires
- stock Raspbian aura déjà tout cela.
- @scruss mine didn ‘ t. (2013-02-09 wheezy rasbian)
- Le mien ne la pas fait non plus, il a dû le faire manuellement.
- Sil est configuré correctement, il le fera automatiquement – même si cela peut prendre quelques minutes.
-
Linux raspberrypi 4.14.30-v7+ #1102 SMP Mon Mar 26 16:45:49 BST 2018 armv7l GNU/Linux
Je nai ‘ Je ne lai pas aussi.
Réponse
Si votre horloge est trop basse, vous devrez peut-être forcer ntp à se synchroniser en faisant:
sudo /etc/init.d/ntp stop sudo ntpd -q -g sudo /etc/init.d/ntp start
Commentaires
- Il renvoie lerreur » sudo: ntpd: commande introuvable »
- ntpd doit être installé pour utiliser la commande
- Il est installé, je ne suis pas si ignorant 🙂
- Pourriez-vous visiter raspberrypi.stackexchange.com/questions/47542/… ? Jy ai publié des détails.
- Cétait absolument la solution à mon problème, mais je lai trouvé temporaire jusquà ce que je redémarre. Finalement, jai attrapé une erreur dans larrêt quil ne pouvait pas ‘ t mettre à jour lhorloge parce que lhorloge hw avait une date future (aucune idée de comment cela sest passé). Mais la solution était une force de mise à jour hwclock. Cela a forcé la mise à jour de la fausse horloge matérielle, puis au démarrage, lheure était au moins proche du courant afin que ntp puisse le faire ‘ travail normalement.
Réponse
Si vous définissez le fuseau horaire dans raspi-config
, le Raspberry Pi mettra automatiquement à jour le heure au démarrage, si connecté à Internet.
-
sudo raspi-config
- Sélectionnez
Internationalisation Options
- Sélectionnez
I2 Change Timezone
- Sélectionnez votre zone géographique
- Sélectionnez la ville la plus proche
- Sélectionnez
Finish
- Sélectionnez
Yes
pour redémarrer maintenant
Commentaires
- cela a bien fonctionné pour moi
-
I2 Change Timezone
option doesn ‘ t nexiste plus - Il existe, du moins dans Raspbian Buster.
- » Options dinternationalisation » est désormais appelé » Options de localisation »
- » ville la plus proche » nest pas la bonne manière. vous devez sélectionner la ville à laquelle appartient votre fuseau horaire, qui peut être la plus proche ou non …
Réponse
Voir le message du forum Heure ne se synchronise pas sur Pi 3 et avec le dongle officiel .
ntpd émet des paquets IP / UDP avec le Champ ToS défini sur 0xc0. Cest donc assez similaire à lautre problème que jai (et beaucoup dautres) avec Raspberry Pi3 lorsquil est utilisé sur une interface interne Wi-Fi.
Pour contourner le problème, ajoutez la commande
/sbin/iptables -t mangle -I POSTROUTING 1 -o wlan0 -p udp --dport 123 -j TOS --set-tos 0x00
dans le fichier
/etc/rc.local
avant la ligne de sortie 0. Ensuite, redémarrez et vérifiez.
Commentaires
- Jai eu le même problème que jai installé le RPi3 que javais pour XMas, et vous avez résolu mon problème. Super !!!
Réponse
Cette question est apparemment » recyclé » pour une raison quelconque, et il semble donc approprié de recycler également certaines vieilles réponses 🙂
Lannée est maintenant 2021 …
Cette question a été posée en 2013. ntpd
était le logiciel de chronométrage inclus dans la distribution Raspbian à lépoque (wheezy
) . Cependant, cela a changé avec la distribution stretch
en 2017 lorsque systemd-timesyncd
a remplacé ntpd
. Les raisons de ce changement et certains compromis techniques ont été discutés dans cette ancienne réponse pour ceux qui sont intéressés par de telles choses.
En ce qui concerne la question ici, peut-être le point le plus saillant de l environnement actuel (post- systemd
) est la suivante: si vous décidez dinstaller ntpd
sous votre distribution Raspbian actuelle, sachez que systemd-timesyncd
» fera la bonne chose « ! Il vérifiera la présence dautres démons NTP et ajustera son comportement en conséquence; cela fonctionne simplement . Vous pouvez tout lire à ce sujet en saisissant ceci sur la ligne de commande:
$ systemctl cat systemd-timesyncd
Notez les dernières lignes:
# ne pas exécuter timesyncd si nous avons un autre démon NTP installé
ConditionFileIsExecutable =! / usr / sbin / ntpd
ConditionFileIsExecutable =! / usr / sbin / openntpd
ConditionFileIsExecutable =! / Usr / sbin / chronyd
ConditionFileIsExecutable =! / Usr / sbin / VBoxService
En dautres termes: systemd-timesyncd
vérifie si lun de ces services de temps alternatifs fonctionne sur votre système, et si cest le cas, il sen remet poliment à eux pour fournir vos services de chronométrage.
» forcer » ntpd
à mettre à jour après le démarrage ?!
Cétait lOP « question de s. La réponse (en 2021) na pas changé: Il ne devrait pas être nécessaire de le faire sur nimporte quel système RPi – sauf si quelquun a changé la configuration par défaut ! Vous pouvez le vérifier comme suit:
$ 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
Notez deux éléments:
-
System clock synchronized: yes
-
NTP service: active
Lélément 1. vous indique que votre horloge système est synchronisée avec la source de temps par défaut, et lélément 2. est presque true en ce que RPi utilise le protocole SNTP
par défaut au lieu de NTP
( REF ); cest-à-dire que RPi a une source de temps, et quil lutilise.
Je pense que « cest tout ce qui » est nécessaire pour un jusquà- réponse de date pour 2021 , sauf ceci: lisez man timedatectl
pour en savoir plus sur ses capacités, ou si TLDR cette page a un résumé correct.
Commentaires
- Horloge système synchronisée: non
- @Arrow_Raider: Yer ‘ point étant ???
Réponse
Il devrait déjà mettre à jour lheure. Le serveur NTPD doit démarrer juste après le fichier déchange et avant SSHD.
Vérifiez votre fichier /etc/ntp.conf pour vous assurer quil est configuré.
Il doit répertorier au moins un serveur. Jutilise time.nrc.ca pour mon serveur.
La page de manuel pour ntp.conf est ici: http://linux.die.net/man/5/ntp.conf
Réponse
Le Rasberry Pi de mon fils ne mettrait pas à jour lheure hors de la boîte et après avoir essayé toutes les suggestions ci-dessus je pourrais le faire mettre à jour manuellement mais pas automatiquement.Finalement après avoir cherché ailleurs aussi sans succès, jai trouvé que le ntp.conf fourni avec le Rasberry Pi avait les lignes suivantes commentées:
#restrict 127.0.0.1 #restrict ::1
Jai utilisé
sudo nano /etc/ntp.conf
dans le terminal pour éditer le fichier ntp conf pour quil soit maintenant:
# Local users may interrogate the ntp server more closely. restrict 127.0.0.1 restrict ::1
Cela a résolu le problème pour nous. Il se met à jour avec le WiFi et le câble Ethernet. Je ne sais pas sil serait mis à jour avec le WiFi sans le changement de rc.local suggéré ci-dessus, car au moment où jai trouvé la solution ci-dessus, javais déjà fait ce changement et je ne lai pas annulé.
Réponse
Jai trouvé lapplication timedatectl
pour maider lorsque jai eu un problème similaire. Cest installé par défaut et « –help » donne un aperçu assez bon et simple de la façon dutiliser loutil.
Remarque: assurez-vous que votre fuseau horaire est correctement défini, ce que cet outil peut également faire.
Réponse
Vous navez pas besoin dutiliser ntp pour résoudre le problème. Il existe un script qui lit la date sur un serveur et il vous suffit de définir la date pour être le résultat de ce script (votre Raspberry Pi doit être connecté à Internet). Ensuite, vous devez exécuter cette commande au démarrage.
Étape 1: Récupérez la date sur un serveur.
sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d" " -f5-8)Z"
Étape 2: Exécutez la commande au démarrage en lajoutant au fichier /etc/rc.local
(Travaillé sur Ubuntu 16.04).
sudo gedit /etc/rc.local
CRÉDITS:
1- https://askubuntu.com/a/655528/572294
2- https://askubuntu.com/a/1199/572294
Commentaires
- Vous naurez peut-être pas besoin dutiliser
ntp
mais vous devriez. Il ‘ est meilleur, plus rapide, plus précis et le standard de l’industrie. Ne ‘ t inventer vos propres choses bizarres quand de bonnes normes existent, sil vous plaît. - Cela naide ‘ pas beaucoup si votre RasPi fonctionne 24h / 24 et 7j / 7.
Réponse
Jai eu un problème similaire avec un Pi ne se synchronisant pas . Aucune de ces solutions na fonctionné. Il savère que mon environnement réseau bloquait le port NTP (123). La solution pour moi était
sudo apt install htpdate
tirée de: https://www.raspberrypi.org/forums/viewtopic.php?t=222236
Qui met à jour lhorloge système via des appels HTTP à la place.
Réponse
Ceci est lapproche que jai fini par adopter. Beaucoup de ces réponses semblaient indiquer des choses que je navais tout simplement pas vérifiées lorsque jai regardé mon système 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"
Je navais rien qui apparaissait dans les journaux indiquant que timedatectl
faisait quelque chose, ou que ntp
se synchronisait sur l’état actif de la carte réseau, ou que NTPD était même installé / configuré.
À la fin, jai simplement ajouté ceci à mon /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..."
Et installé ntp
:
$ sudo apt-get install ntp
Ce qui se traduit par /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...
Commentaires
- Ne fonctionne pas ‘ sur un raspbian minimal:
Failed to start ntp.service: Unit ntp.service not found.
Et ntpd nexiste pas ‘ non plus. Le Pi gagne définitivement du temps. (Je ‘ je regarde cela parce que mes boucles HTTPS échouent sans -k lorsquelles sont exécutées avant cela) - @StevenLu – I ‘ Je mettrai à jour le A ‘ er pour inclure également linstallation de ntp.
- @StevenLu –
apt-get install ntp
Réponse
Jutilise ce qui suit sur limage par défaut pour synchroniser lheure sans installer de packages supplémentaires:
timedatectl set-local-rtc 0 timedatectl set-ntp 1 timedatectl status
Réponse
Jai trouvé ceci quelque part sur les interwebs. Semble fonctionner sur Buster:
sudo timedatectl set-ntp false && sudo timedatectl set-time "$(date --iso-8601=seconds | cut -d "+" -f1 | tr T " ")" && sudo timedatectl set-ntp true
Je « ne sais pas si la commande intermédiaire (set-time
) est vraiment nécessaire.