.\" -*- coding: UTF-8 -*- '\" t .\" Copyright (c) 1995 Michael Chastain (mec@shell.portal.com), 15 April 1995. .\" and Copyright (C) 2014, 2016 Michael Kerrisk .\" .\" SPDX-License-Identifier: GPL-2.0-or-later .\" .\" Modified 1997-01-31 by Eric S. Raymond .\" Modified 1997-07-30 by Paul Slootman .\" Modified 2004-05-27 by Michael Kerrisk .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH adjtimex 2 "20 juillet 2023" "Pages du manuel de Linux 6.05.01" .SH NOM adjtimex, clock_adjtime, ntp_adjtime \- Régler l'horloge du noyau (kernel clock) .SH BIBLIOTHÈQUE Bibliothèque C standard (\fIlibc\fP, \fI\-lc\fP) .SH SYNOPSIS .nf \fB#include \fP .PP \fBint adjtimex(struct timex *\fP\fIbuf\fP\fB);\fP .PP \fBint clock_adjtime(clockid_t \fP\fIclk_id,\fP\fB struct timex *\fP\fIbuf\fP\fB);\fP .PP \fBint ntp_adjtime(struct timex *\fP\fIbuf\fP\fB);\fP .fi .SH DESCRIPTION Linux utilise l'algorithme d'ajustement d'horloge de David L. Mills (voir la RFC 5905). L'appel système \fBadjtimex\fP() lit et écrit éventuellement les paramètres d'ajustement pour cet algorithme. Il utilise un pointeur sur une structure \fItimex\fP pour mettre à jour les paramètres du noyau avec les valeurs des champs (sélectionnés), et renvoyer la même structure avec les valeurs actuelles du noyau. La structure est déclarée comme suit\ : .PP .in +4n .EX struct timex { int modes; /* choix du mode */ long offset; /* décalage temporel ; nanosecondes, si drapeau STA_NANO est défini, sinon microseconde*/ long freq; /* décalage de fréquence ; unités, voir NOTES */ long maxerror; /* erreur maximale (microseconde) */ long esterror; /* erreur estimée (microseconde) */ int status; /* commande horloge/état */ long constant; /* constante de temps PLL */ long precision; /* précision de l’horloge (microseconde, lecture seule) */ long tolerance; /* tolérance fréquence horloge (lecture seule); unités, voir NOTES */ struct timeval time; /* heure actuelle (lecture seule, sauf pour ADJ_SETOFFSET) ; sur renvoi, time.tv_usec contient nanosecondes, si le drapeau STA_NANO défini, sinon microsecondes */ long tick; /* microsecondes entre tics horloge */ long ppsfreq; /* fréquence PPS (pulse per second) (lecture seule) ; unités, voir NOTES */ long jitter; /* jitter PPS (lecture seule) ; nanosecondes, si drapeau état STA_NANO défini, sinon microsecondes */ int shift; /* durée intervalle PPS (secondes, lecture seule) */ long stabil; /* stabilité PPS (lecture seule); unités, voir NOTES */ long jitcnt; /* nombre PPS dépassements limite de jitter évènements (lecture seule) long calcnt; /* nombre PPS d’intervalles de calibration (lecture seule) */ long errcnt; /* nombre PPS d’erreurs de calibration (lecture seule) */ long stbcnt; /* nombre PPS dépassements limite stabilité évènements (lecture seule) int tai; /* décalage TAI, comme défini par l’opération ADJ_TAI (secondes, lecture seule, depuis Linux 2.6.26) */ /* octets de remplissage supplémentaires pour une extension future*/ }; .EE .in .PP Le champ \fImodes\fP détermine les paramètres éventuels à écrire (comme décrit plus loin dans cette page, les constantes pour \fBntp_adjtime\fP() sont équivalentes mais ont un nom différent). Il s'agit d'un masque binaire contenant une combinaison de OU binaire de zéros ou plusieurs des bits suivants\ : .TP \fBADJ_OFFSET\fP .\" commit 074b3b87941c99bc0ce35385b5817924b1ed0c23 Définir la position de l'heure à partir de \fIbuf.offset\fP. Depuis Linux 2.6.26, la valeur fournie figure sur la plage (\-0.5s, +0.5s). Sur les anciens noyaux, une erreur \fBEINVAL\fP survient si la valeur fournie sort de cette plage. .TP \fBADJ_FREQUENCY\fP .\" commit 074b3b87941c99bc0ce35385b5817924b1ed0c23 Définir la position de la fréquence à partir de \fIbuf.freq\fP. Depuis Linux 2.6.26, la valeur fournie figure sur la plage (\-32768000, +32768000). Sur les anciens noyaux, une erreur \fBEINVAL\fP survient si la valeur fournie sort de cette plage. .TP \fBADJ_MAXERROR\fP Définir l'erreur de temps maximale à partir de \fIbuf.maxerror\fP. .TP \fBADJ_ESTERROR\fP Définir l'erreur de temps estimée à partir de \fIbuf.esterror\fP. .TP \fBADJ_STATUS\fP Définir les bits de l'état de l'horloge à partir de \fIbuf.status\fP. Une description de ces bits est disponible ci\-dessous. .TP \fBADJ_TIMECONST\fP Définir la constante PLL de l'heure à partir de \fIbuf.constant\fP. Si le drapeau d'état \fBSTA_NANO\fP (voir ci\-dessous) est vide, le noyau ajoute \fB4\fP à cette valeur. .TP \fBADJ_SETOFFSET\fP (depuis Linux 2.6.39) .\" commit 094aa1881fdc1b8889b442eb3511b31f3ec2b762 .\" Author: Richard Cochran Ajouter \fIbuf.time\fP à l'heure actuelle. Si \fIbuf.status\fP inclut le drapeau \fBADJ_NANO\fP, \fIbuf.time.tv_usec\fP est interprété comme une valeur en nanoseconde\ ; sinon il est interprété en microseconde. .IP La valeur de \fIbuf.time\fP est la somme de ses deux champs, mais le champ \fIbuf.time.tv_usec\fP doit toujours être positif. L'exemple suivant montre la manière de normaliser une \fItimeval\fP avec une résolution en nanoseconde. .IP .in +4n .EX while (buf.time.tv_usec < 0) { buf.time.tv_sec \-= 1; buf.time.tv_usec += 1000000000; } .EE .in .TP \fBADJ_MICRO\fP (depuis Linux 2.6.26) .\" commit eea83d896e318bda54be2d2770d2c5d6668d11db .\" Author: Roman Zippel Sélectionner la résolution en microseconde. .TP \fBADJ_NANO\fP (depuis Linux 2.6.26) .\" commit eea83d896e318bda54be2d2770d2c5d6668d11db .\" Author: Roman Zippel Sélectionner la résolution en nanoseconde. Vous ne devriez spécifier que \fBADJ_MICRO\fP ou \fBADJ_NANO\fP. .TP \fBADJ_TAI\fP (depuis Linux\ 2.6.26) .\" commit 153b5d054ac2d98ea0d86504884326b6777f683d Définir la position du TAI (temps atomique international) à partir de \fIbuf.constant\fP. .IP \fBADJ_TAI\fP ne devrait pas être utilisé avec \fBADJ_TIMECONST\fP, puisque le dernier mode utilise également le champ \fIbuf.constant\fP. .IP Pour une explication complète du temps atomique international (TAI) et de la différence entre ce temps et celui universel coordonné (UTC), voir .UR http://www.bipm.org/en/bipm/tai/tai.html \fIBIPM\fP .UE .TP \fBADJ_TICK\fP Définir la valeur d'un tic à partir de \fIbuf.tick\fP. .PP .\" In general, the other bits are ignored, but ADJ_OFFSET_SINGLESHOT 0x8001 .\" ORed with ADJ_NANO (0x2000) gives 0xa0001 == ADJ_OFFSET_SS_READ!! Autrement, \fImodes\fP peut être indiqué sous la forme de valeurs suivantes (masque multibit), auquel cas aucun autre bit ne devrait être spécifié dans \fImodes\fP\ : .TP \fBADJ_OFFSET_SINGLESHOT\fP .\" In user space, ADJ_OFFSET_SINGLESHOT is 0x8001 .\" In kernel space it is 0x0001, and must be ANDed with ADJ_ADJTIME (0x8000) \fBadjtime\fP(3) à l'ancienne\ : ajuster (graduellement) l'heure avec des valeurs spécifiées dans \fIbuf.offset\fP, ce qui indique un ajustement en microseconde. .TP \fBADJ_OFFSET_SS_READ\fP (fonctionnel depuis Linux\ 2.6.28) .\" In user space, ADJ_OFFSET_SS_READ is 0xa001 .\" In kernel space there is ADJ_OFFSET_READONLY (0x2000) anded with .\" ADJ_ADJTIME (0x8000) and ADJ_OFFSET_SINGLESHOT (0x0001) to give 0xa001) .\" commit 52bfb36050c8529d9031d2c2513b281a360922ec .\" commit 916c7a855174e3b53d182b97a26b2e27a29726a1 Renvoyer (dans \fIbuf.offset\fP) le temps restant à ajuster après une précédente opération \fBADJ_OFFSET_SINGLESHOT\fP. Cette fonctionnalité a été ajoutée dans Linux 2.6.24, mais elle ne fonctionnait pas correctement jusqu'à Linux 2.6.28. .PP Les utilisateurs normaux sont limités à une valeur de \fImodes\fP nulle ou \fBADJ_OFFSET_SS_READ\fP. Seul le superutilisateur peut écrire n'importe quel paramètre. .PP Le champ \fIbuf.status\fP est un masque de bits utilisé pour définir et/ou récupérer les bits d'état associés à l'implémentation NTP. Certains bits du masque sont lisibles et modifiables, alors que d'autres ne sont qu'en lecture seule. .TP \fBSTA_PLL\fP (lecture\-écriture) Activer les mises à jour «\ phase\-locked loop\ » (PLL) à l’aide de \fBADJ_OFFSET\fP. .TP \fBSTA_PPSFREQ\fP (lecture\-écriture) Activer le mode de fréquence PPS (pulse\-per\-second ou battement par seconde). .TP \fBSTA_PPSTIME\fP (lecture\-écriture) Activer le mode temporel PPS. .TP \fBSTA_FLL\fP (lecture\-écriture) Sélectionner le mode «\ frequency\-locked loop\ » (FLL). .TP \fBSTA_INS\fP (lecture\-écriture) .\" John Stultz; .\" Usually this is written as extending the day by one second, .\" which is represented as: .\" 23:59:59 .\" 23:59:60 .\" 00:00:00 .\" .\" But since posix cannot represent 23:59:60, we repeat the last second: .\" 23:59:59 + TIME_INS .\" 23:59:59 + TIME_OOP .\" 00:00:00 + TIME_WAIT .\" Insérer un saut d’une seconde après la dernière seconde de la journée UTC, ce qui étend ainsi la dernière minute de la journée d'une seconde. L'insertion d'un tel saut s'effectuera chaque jour tant que ce drapeau est positionné. .TP \fBSTA_DEL\fP (lecture\-écriture) .\" John Stultz: .\" Similarly the progression here is: .\" 23:59:57 + TIME_DEL .\" 23:59:58 + TIME_DEL .\" 00:00:00 + TIME_WAIT .\" FIXME Does there need to be a statement that it is nonsensical to set .\" to set both STA_INS and STA_DEL? Supprimer le saut d’une seconde à la dernière seconde de la journée UTC. Une telle suppression se produira chaque jour tant que ce drapeau est positionné. .TP \fBSTA_UNSYNC\fP (lecture\-écriture) Horloge non synchronisée. .TP \fBSTA_FREQHOLD\fP (lecture\-écriture) .\" Following text from John Stultz: Conserver la fréquence. Normalement, il résulte des ajustements effectués avec \fBADJ_OFFSET\fP des ajustements de fréquence amortis. Un seul appel corrige donc la position actuelle, mais comme les compensations dans le même sens se répètent, les petits ajustements de fréquence s'accumuleront pour corriger le décalage à long terme. .IP .\" According to the Kernel Application Program Interface document, .\" STA_FREQHOLD is not used by the NTP version 4 daemon Ce drapeau empêche les petits ajustements de fréquence lors de la correction d'une valeur \fBADJ_OFFSET\fP. .TP \fBSTA_PPSSIGNAL\fP (lecture seule) Un signal PPS (pulse\-per\-second, ou battement par seconde) valable est présent. .TP \fBSTA_PPSJITTER\fP (lecture seule) Fluctuation de signal (jitter) PPS excessive. .TP \fBSTA_PPSWANDER\fP (lecture seule) Dérive de signal (wander) PPS excessive. .TP \fBSTA_PPSERROR\fP (lecture seule) Erreur de calibrage du signal PPS. .TP \fBSTA_CLOCKERR\fP (lecture seule) .\" Not set in current kernel (4.5), but checked in a few places Erreur d'horloge matérielle. .TP \fBSTA_NANO\fP (lecture seule ; depuis Linux 2.6.26) .\" commit eea83d896e318bda54be2d2770d2c5d6668d11db .\" Author: Roman Zippel Résolution (0\ =\ microseconde, 1\ =\ nanoseconde). Positionné à l’aide de \fBADJ_NANO\fP, annulé à l’aide de \fBADJ_MICRO\fP. .TP \fBSTA_MODE\fP (depuis Linux\ 2.6.26) .\" commit eea83d896e318bda54be2d2770d2c5d6668d11db .\" Author: Roman Zippel Mode (0 = Phase Locked Loop, 1 = Frequency Locked Loop). .TP \fBSTA_CLK\fP (en lecture seule ; depuis Linux 2.6.26) .\" commit eea83d896e318bda54be2d2770d2c5d6668d11db .\" Author: Roman Zippel Source de l'horloge (0 = A, 1 = B)\ ; actuellement inusité. .PP .\" Les tentatives de positionner des bits d'\fIétat\fP qui sont en lecture seule sont ignorées silencieusement. .SS "clock_adjtime ()" L'appel système \fBclock_adjtime\fP() (ajouté à Linux 2.6.39) se comporte comme \fBadjtimex\fP() mais il prend un paramètre \fIclk_id\fP supplémentaire pour indiquer sur quelle horloge spécifique agir. .SS "ntp_adjtime ()" La fonction de bibliothèque \fBntp_adjtime\fP() (décrite dans le «\ Kernel Application Program API\ », KAPI) est une interface plus portable pour effectuer la même tâche que \fBadjtimex\fP(). À part les points suivants, elle est identique à \fBadjtimex\fP()\ : .IP \- 3 Les constantes utilisées dans les \fImodes\fP sont préfixées de «\ MOD_\ » au lieu de «\ ADJ_\ » et elles ont les mêmes suffixes (\fBMOD_OFFSET\fP, \fBMOD_FREQUENCY\fP, et ainsi de suite), sauf les exceptions indiquées dans les points suivants. .IP \- \fBMOD_CLKA\fP est le synonyme de \fBADJ_OFFSET_SINGLESHOT\fP. .IP \- \fBMOD_CLKB\fP est le synonyme de \fBADJ_TICK\fP. .IP \- Il n’existe pas de synonyme pour \fBADJ_OFFSET_SS_READ\fP, non décrit dans la KAPI. .SH "VALEUR RENVOYÉE" S'ils réussissent, \fBadjtimex\fP() et \fBntp_adjtime\fP() renvoient l'état de l'horloge\ ; c'est\-à\-dire une des valeurs suivantes\ : .TP 12 \fBTIME_OK\fP Horloge synchronisée, aucun ajustement de saut de seconde en attente. .TP \fBTIME_INS\fP Indication qu'un saut de seconde sera ajouté à la fin de la journée UTC. .TP \fBTIME_DEL\fP Indication que le saut de seconde sera retiré en fin de journée UTC. .TP \fBTIME_OOP\fP L'insertion d'un saut de seconde est en cours. .TP \fBTIME_WAIT\fP L'insertion ou la suppression d'un saut de seconde a été terminée. Cette valeur sera renvoyée jusqu'à ce qu'une prochaine opération \fBADJ_STATUS\fP ne vide les drapeaux \fBSTA_INS\fP et \fBSTA_DEL\fP. .TP \fBTIME_ERROR\fP L'horloge système n'est pas synchronisée avec un serveur fiable. Cette valeur est renvoyée si un des éléments suivants reste vrai\ : .RS .IP \- 3 \fBSTA_UNSYNC\fP ou \fBSTA_CLOCKERR\fP est défini. .IP \- \fBSTA_PPSSIGNAL\fP est vide et soit \fBSTA_PPSFREQ\fP, soit \fBSTA_PPSTIME\fP est positionné. .IP \- \fBSTA_PPSTIME\fP \fBSTA_PPSJITTER\fP sont tous deux définis. .IP \- \fBSTA_PPSFREQ\fP est défini et soit \fBSTA_PPSWANDER\fP, soit \fBSTA_PPSJITTER\fP est défini. .RE .IP Le nom symbolique \fBTIME_BAD\fP est synonyme de \fBTIME_ERROR\fP, fourni pour des raisons de rétrocompatibilité. .PP .\" commit 6b43ae8a619d17c4935c3320d2ef9e92bdeed05d changed to asynchronous .\" operation, so we can no longer rely on the return code. Remarquez qu'à partir de Linux 3.4, l'appel agit de manière asynchrone et la valeur renvoyée ne reflètera en général pas un changement d'état provoqué par l'appel lui\-même. .PP En cas d'échec, ces appels renvoient \fB\-1\fP et définissent \fIerrno\fP pour indiquer l'erreur. .SH ERREURS .TP \fBEFAULT\fP \fIbuf\fP pointe en dehors de l'espace d'adressage accessible en écriture. .TP \fBEINVAL\fP (avant Linux 2.6.26) .\" From a quick glance, it appears there was no clamping or range check .\" for buf.freq before Linux 2.0 Vous avez essayé de positionner \fIbuf.freq\fP sur une valeur au\-delà de la plage (\-33554432, +33554432). .TP \fBEINVAL\fP (avant Linux 2.6.26) Vous avez essayé de positionner \fIbuf.offset\fP sur une valeur au\-delà de la plage autorisée. Avant Linux 2.0, la plage autorisée était (\-131072, +131072). Depuis Linux 2.0, la plage autorisée est (\-512000, +512000). .TP \fBEINVAL\fP Vous avez essayé de positionner \fIbuf.status\fP sur une valeur différente de celles indiquées ci\-dessus. .TP \fBEINVAL\fP Le \fIclk_id\fP donné à \fBclock_adjtime\fP() n'est pas valable pour une de ces deux raisons. Soit la valeur positive de l'ID de l'horloge codée en dur à la manière de System\-V dépasse l'intervalle, soit le \fIclk_id\fP dynamique ne se rapporte pas à une instance valable d'une horloge. Voir \fBclock_gettime\fP(2) pour un point sur les horloges dynamiques. .TP \fBEINVAL\fP Une tentative a été faite de définir \fIbuf.tick\fP en dehors de l'intervalle 900000/\fBHZ\fP à 1100000/\fBHZ\fP, où \fBHZ\fP est la fréquence d'interruption de l’ordonnanceur du système. .TP \fBENODEV\fP Le périphérique qu'on peut brancher à chaud (comme en USB par exemple) représenté par un \fIclk_id\fP dynamique a disparu après avoir été ouvert. Voir \fBclock_gettime\fP(2) pour un point sur les horloges dynamiques. .TP \fBEOPNOTSUPP\fP Le \fIclk_id\fP fourni ne prend pas en charge l'ajustement. .TP \fBEPERM\fP \fIbuf.modes\fP n'est ni nul ni \fBADJ_OFFSET_SS_READ\fP, et l'appelant n'a pas suffisamment de privilèges. Sous Linux, la capacité \fBCAP_SYS_TIME\fP est nécessaire. .SH ATTRIBUTS Pour une explication des termes utilisés dans cette section, consulter \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. Interface Attribut Valeur T{ .na .nh \fB\%ntp_adjtime\fP() T} Sécurité des threads MT\-Safe .TE .sp 1 .SH STANDARDS .TP \fBadjtimex\fP() .TQ \fBclock_adjtime\fP() Linux. .PP L'API préférée pour le démon NTP est \fBntp_adjtime\fP(). .SH NOTES Dans une structure \fItimex\fP, \fIfreq\fP, \fIppsfreq\fP et \fIstabil\fP sont des ppm (parts per million) avec une partie décimale de 16\ bits, ce qui veut dire qu'une valeur de 1 dans un de ces champs veut dire en fait 2\[ha]\-16\ ppm et 2\[ha]16=65536 vaut 1\ ppm. Cela vaut tant pour les valeurs en entrée (dans le cas de \fIfreq\fP) que celles en sortie. .PP Le traitement du saut de seconde effectué par \fBSTA_INS\fP et \fBSTA_DEL\fP se fait par le noyau dans le contexte de l’ordonnanceur. Ainsi, il prendra un tic de la seconde pour insérer ou supprimer un saut de seconde. .SH "VOIR AUSSI" \fBclock_gettime\fP(2), \fBclock_settime\fP(2), \fBsettimeofday\fP(2), \fBadjtime\fP(3), \fBntp_gettime\fP(3), \fBcapabilities\fP(7), \fBtime\fP(7), \fBadjtimex\fP(8), \fBhwclock\fP(8) .PP .ad l .UR http://www.slac.stanford.edu/comp/unix/\:package/\:rtems/\:src/\:ssrlApps/\:ntpNanoclock/\:api.htm NTP "Kernel Application Program Interface" .UE .PP .SH TRADUCTION La traduction française de cette page de manuel a été créée par Christophe Blaess , Stéphan Rafin , Thierry Vignaud , François Micaux, Alain Portal , Jean-Philippe Guérard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas François , Florentin Duneau , Simon Paillard , Denis Barbier , David Prévot et Jean-Philippe MENGUAL . .PP Cette traduction est une documentation libre ; veuillez vous reporter à la .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License version 3 .UE concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE. .PP Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à .MT debian-l10n-french@lists.debian.org .ME .