Lorsque certains programmes liés au temps (comme ntpd
) s'exécutent sur un système Linux, le noyau bascule en soi-disant "mode onze minutes" (voir la hwclock
page de manuel) par lequel il mettra automatiquement à jour l'horloge matérielle de l'horloge système toutes les onze minutes .
Sur SLES11, j'ai déterminé empiriquement que si je réglais l'horloge matérielle à 10 heures de retard sur l'horloge système, le mode 11 minutes semblait incapable de faire correspondre l'horloge matérielle à l'horloge système. Mais si je règle l'horloge matérielle 5 minutes derrière l'horloge système, le mode 11 minutes fait un match parfait.
Donc, apparemment, il y a une mise à jour maximale que le mode 11 minutes peut gérer et je me demande ce que c'est.
Mise à jour:
C'est bizarre ...
Plus d'expérimentation montre que lorsque j'ai l'horloge HW environ 20 minutes derrière l'horloge système, le mode 11 minutes réglera l'horloge HW exactement 30 minutes derrière l'horloge système (!):
# date
Tue Dec 6 10:16:52 EST 2011
# hwclock --set --date "12/6/11 09:56"
#
# date
Tue Dec 6 10:17:16 EST 2011
# hwclock --show
Tue Dec 6 09:56:06 2011 -0.156551 seconds
#
# date
Tue Dec 6 10:23:09 EST 2011
# hwclock --show
Tue Dec 6 10:01:58 2011 -0.535772 seconds
#
# date
Tue Dec 6 10:34:28 EST 2011
# hwclock --show
Tue Dec 6 10:04:27 2011 -0.192025 seconds
Mise à jour:
J'ai rencontré ceci: https://bugs.archlinux.org/task/27408, ce qui implique que, pour de bon ou de mauvais, le noyau ne mettra pas à jour l'horloge matérielle lorsque l'heure de l'horloge matérielle est trop éloignée de l'heure de l'horloge système.
Réponses:
Depuis la
hwclock
page de manuel sur RHEL 4.6:Donc, en vertu de votre course,
hwclock --set
vous l'avez probablement désactivé. De la même manière, vous pouvez vérifier la sortie duadjtimex --print
pour confirmer.la source
hwclock --set
ne touche pas l'heure du système. Et quand je faisadjtimex --print
ce que confirme que le mode 11 min dans le fait que le bit « 64 » est en effet au large.if((status & (1<<6)) == 0)
alors le mode 11 minutes est activé.sync_cmos_clock
fonctionEn fait, cela n'a rien à voir avec le mode onze minutes dans le noyau. Ceci est lié à une fonctionnalité de ntpd.
Connaissez-vous la soi-disant limite d'intégrité de ntp? Si l'heure est trop éloignée (par exemple 10 heures), ntpd abandonne et ne déforme pas l'horloge. Dans ces cas, ntpd ou ntpdate doit être exécuté manuellement. L'option Ntpd de
-g
devrait le faire. Vérifiez les informations de la page de manuel:http://doc.ntp.org/4.1.0/ntpd.htm
la source
ntpd
est déjà en cours d'exécution avec l'-g
option.Le noyau ne synchronisera pas l'heure s'il est éteint plus de 60 minutes en mode Eleven Minute. Il s'agit d'un problème courant dans SUSE Enterprise, consultez cet article d'Open SUSE pour plus de détails: https://lists.opensuse.org/opensuse-bugs/2011-06/msg01348.html
la source