[précédent] [Résumé] [Copyright] [Table des matières] [suivant]

Réglage fin de l'horloge sur un système linux - Chapitre 4
Conserver durablement la précision obtenue


Après tous ces efforts pour régler votre horloge système, il serait dommage que le premier arrêt venu vous fasse perdre tout vos réglages. Il suffit de prendre quelques précautions pour pouvoir conserver une horloge précise même en cas d'arrêt de la machine.


4.1 Préserver les réglages en cas de shutdown

En fait, il suffit de connaître un petit nombre d'éléments pour d'une part conserver l'étalonnage effectué et d'autre part redéterminer l'heure juste lors du redémmarage.


4.1.1 L'arrêt

Commençons par les plus faciles : «tick» et «freq». Ils sont constants, [17] il suffit de créer un fichier qui s'écécute lors du démarage de la machine et qui contienne la commande adjtimex -u -f freq -t tick. Pour ceux qui préfèreraient que les valeurs en cours soient sauvegardées lors du shutdown il vous faudra concevoir un script qui récupère ces valeurs via la commande adjtimex -u -p et les place dans le fichier susmentionné.

Une donnée qu'il est important de préserver est la dérive de l'horloge CMOS et ce d'autant plus que la connaître avec précision demande beaucoup de temps. Comme on est jamais à l'abri d'une erreur de manipulation, je garde une copie du fichier /etc/adjtime. En cas de problème, il suffit de remplacer la première valeur de la première ligne par celle figurant dans votre sauvegarde.

Enfin, il faut préserver l'heure qu'il était au moment où le «shutdown» a été fait. Comme par ailleurs l'horloge système est plus précise que l'horloge CMOS, il est préférable que ce soit l'heure système qui soit enregistrée. La commande hwclock --utc --systohc remplit parfaitement ce rôle. En effet, elle enregistre dans le fichier /etc/adjtime l'instant auquel l'horloge CMOS a été réglée qui n'est alors autre que l'heure système où cette commande a été executée. Par ailleurs, elle enregistre aussi, en première ligne, l'instant où l'horloge CMOS a été ajustée[18]. En ce cas cette valeur coïncide avec la précédente. Il suffit donc de faire exécuter cette commande par un script lancé lors du shutdown avant que le répertoire racine ne soit démonté. Par contre elle présente l'inconvénient de recalculer la dérive. Normalement la valeur recalculée devrait être proche de la valeur précédente.

Ceci fait, on va pouvoir lors du prochain redémmarage calculer l'heure qu'il est et conserver la précision qui avait atteinte en ce qui concerne la dérive quotidienne.


4.1.2 Le redémmarage

Les choses sont assez simples et sont probablement déja faites par votre distribution, je les détaille au cas où ce ne serait pas le cas. Il y a deux choses à faire : calculer l'heure qu'il est et régler l'horloge système sur cette heure.

Le calcul de l'heure incombe à la commande hwclock --utc --adjust qui relève l'instant où l'horloge CMOS a été ajustée pour la dernière fois,[19] soustrait celui ci de la valeur courante de l'horloge CMOS pour déterminer combien de jour se sont écoulés depuis ce dernier ajustement, multiplie ce nombre de jours par la dérive quotidienne et soustrait le résultat à la valeur courante de l'horloge CMOS.

Pour régler ensuite l'horloge système, la commande a déja été donnée, il s'agit de hwclock --utc --hctosys.


4.2 Survivre à l'arrêt intempestif

Il y a de grande chances que vous ayez à résoudre des pbs plus stressants que la simple conservation de la précision de votre horloge système. Je ne détaille pourtant ici que ce seul problème : désolé...

En fait si vous avez bien étalonné votre horloge CMOS et que vous avez enregistrer quelque part tick et freq vous êtes sauvé. En effet, du point de vue de l'horloge les seules différences avec un shutdown correct sont que l'heure système n'a pas été copiée dans l'heure CMOS et le fichier /etc/adjtime n'a pas été mis à jour. Lors du redémarrage l'étalonnage de l'horloge CMOS va s'avérer bien utile... Lors du hwclock --utc --adjust la commande s'écute exactement comme décrit précedemment. Toutefois, l'instant de dernier est plus vieux puisque l'horloge CMOS n'a pas pu être réglée lors du shutdown.


[précédent] [Résumé] [Copyright] [Table des matières] [suivant]
Réglage fin de l'horloge sur un système linux
v. : 0.9, le 22 septembre 1999
Laurent PICOULEAU lcrpic@a2points.com