[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: question d'horloge



Bonjour à tous,

On Tue, Jan 11, 2000 at 07:59:05PM +0100, Laurent PICOULEAU wrote:
[..]
> Je pense que tu parles du document que j'ai placé en :
> <http://www.linux-france.org/article/sys/heure/index.html>
> 
> Mais il n'est pas exploitable en ce moment : adjtimex (de slink) souffre
> d'un bug de l'an 2000 !!! J'ai soumis un rapport de bug le 4 janvier qui a
> été clos le 6 par un upload de adjtimex version 1.9 mais je n'ai toujours
> pas vu arrivé cette nouvelle version.

J'ai prévu de faire un petit laïus sur cette histoire d'horloge. Comme je n'ai
pas le temps dans l'immédiat, quelques indications rapides, destinées plus
particulièrement aux possesseurs d'un seul poste, ou de LAN non connectés en
permanence sur Internet.

En gros, il existe une horloge «matérielle» ( horloge CMOS) et une horloge
logicielle (horloge système).

L'horloge matérielle se règle grâce à hwclock ( *h*ard*w*are clock), l'horloge
système grâce à date --- pour la date et l'heure --- et à adjtimex pour le 
réglage intime.

Il existe cependant un lien entre les deux, puisqu'au démarrage du système
(boot), ledit système n'a aucun moyen, par lui-même, de connaître l'heure. Il
 va donc tout bêtement la demander à l'horloge CMOS. Mais une fois que cela est
fait, l'horloge système marche indépendamment de l'horloge CMOS.

Le problème, dans la configuration Debian, c'est que le script 
/etc/init.d/hwclock.sh ne se contente pas de la mise à jour au démarrage,
mais provoque *une mise à jour de l'horloge CMOS en fonction de l'heure
système lorsque la machine est arrêtée | rebootée * : la majorité des problèmes 
viennent de là!

Conduite à tenir ( dans un premier temps) :

- débrayer la mise à jour de l'horloge CMOS par l'horloge système lors de l'arrêt | reboot (*pas au démarrage*):

[ fichier /etc/init.d/hwclock.sh]

	stop|restart|reload)
		[ "$GMT" = "-u" ] && GMT="--utc"
#		hwclock --systohc $GMT
^               ^^^^^^^^^^^^^^^^^^^^^^ 
		if [ "$VERBOSE" != no ]
		then
#			echo "CMOS clock updated to `date`."
^                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			echo "CMOS clock *NOT* updated !"
		fi
		;;

- mettre à jour l'horloge CMOS grâce à hwclock ( lisez attentivement la page de
manuel);
- virer le fichier /etc/adjtime, qui, comme son nom ne l'indique pas, est le
fichier créé par hwclock afin de savoir quelle correction apporter à la dérive
prévisible de l'horloge CMOS.
  Au bout de quelques jours, vérifier l'heure de l'horloge CMOS ( qui n'aura été
  modifiée par personne !) et mettez la à jour si besoin est ( en règle générale
elle ne dérive que de quelques secondes par jour, mais de manière linéaire). Un
nouveau fichier /etc/adjtime sera créé, et votre horloge CMOS sera alors stable
et juste.

- Si vous avez beaucoup tripoté les paramètres internes de l'horloge système à
l'aide d'adjtimex, remettez les paramètres par défaut.
Dès lors que l'horloge CMOS est stable, au démarrage de votre système l'heure
sera juste. Vous n'aurez plus alors qu'à régler l'horloge système pour qu'en
partant d'une valeur juste, elle ne dérive pas trop.


Version longue un de ces jours.

A+
-- 
Thierry LARONDE
thierry.laronde@polynum.com
website : http://www.polynum.com


Reply to: