Rechercher une page de manuel
rtc
Langue: fr
Version: 5 décembre 2005 (ubuntu - 16/08/07)
Section: 4 (Pilotes et protocoles réseau)
NOM
rtc - Horloge temps réelSYNOPSIS
#include <linux/rtc.h>DESCRIPTION
Il s'agit du pilote d'horloge temps réel (RTC).La plupart des ordinateurs disposent d'une horloge matérielle intégrée, généralement appelée l'horloge temps réel. Cette horloge est normalement alimentée par une pile afin de rester à l'heure une fois l'ordinateur éteint. Elle indique l'instant présent en année, mois, jour du mois, heure, minute et seconde.
La RTC est une puce chargée de maintenir l'heure et la date, et capable de générer des interruptions à des instants précis. La puce généralement utilisée est une Motorola MC146818, une Dallas DS12887 ou similaire, mais aujourd'hui cette fonction est d'habitude incluse dans le jeu de puces de la carte mère.
La RTC ne doit pas être confondue avec l'horloge système, qui est une horloge logicielle indépendante gérée par interruptions et maintenue par le noyau. L'horloge logicielle est maintenue par une routine d'interruption de fréquence typique 100, 250 ou 1000 Hz. L'horloge logicielle compte les secondes et microsecondes depuis le « POSIX Epoch », c'est-à-dire le 1er janvier 1970 à 0h00 UTC. Cette horloge n'implique aucun matériel spécial.
La RTC peut être lue et réglée avec hwclock(8).
La RTC n'est pratiquement jamais utilisée par le noyau Linux. À la place, le noyau utilise l'horloge logicielle pour time(2), gettimeofday(2), les étiquettes temporelles des fichiers, etc. Cependant, le noyau initialise lors de l'amorçage son horloge logicielle en lisant la RTC.
En plus du compte de la date et de l'heure, la RTC peut aussi générer des interruptions :
- *
- à chaque mise à jour de l'horloge (i.e. une fois par seconde) ;
- *
- à des intervalles réguliers, de fréquence réglable à une puissance de 2 entre 2 Hz et 8192 Hz ;
- *
- lorsque la date d'une alarme réglée auparavant est atteinte.
Chacune de ces sources d'interruptions peut être activée ou désactivée séparément.
Le périphérique /dev/rtc est en lecture seule et un seul accès simultané est possible. Un processus appelant read(2) ou select(2) est bloqué jusqu'à la réception de l'interruption RTC suivante. Suite à l'interruption, le processus peut lire un entier long, dont l'octet de poids faible contient le type d'interruption qui vient de se produire et les 3 octets restants contiennent le nombre d'interruptions depuis le dernier appel à read(2).
Les ioctl(2) suivants sont disponibles :
- RTC_RD_TIME
- Renvoie l'heure RTC dans la structure suivante :
-
struct rtc_time { int tm_sec; int tm_min; int tm_hour; int tm_mday; int tm_mon; int tm_year; int tm_wday; /* non utilisé */ int tm_yday; /* non utilisé */ int tm_isdst; /* non utilisé */ };
- Les membres de cette structure ont les mêmes sens et les mêmes portées que la ceux de la structure tm décrite dans gmtime(3). Un pointeur vers cette structure est attendu en troisième paramètre pour ioctl().
- RTC_SET_TIME
- Règle l'horloge RTC à l'heure spécifiée par la structure rtc_time vers laquelle pointe le troisième paramètre passé à ioctl(). Pour pouvoir modifier l'heure RTC, le processus doit être privilégié (i.e. disposer du droit CAP_SYS_TIME).
- RTC_ALM_READ, RTC_ALM_SET
- Lit et règle l'heure d'alarme. Le troisième paramètre d'ioctl() est un pointeur vers une structure rtc_time. Seuls les membres tm_sec, tm_min, et tm_hour sont utilisés.
- RTC_IRQP_READ, RTC_IRQP_SET
- Lit et règle la fréquence des interruptions. Le troisième paramètre d'ioctl() est un long * ou un long respectivement. La valeur représente la fréquence en interruptions par seconde. Le jeu des fréquences permises est l'ensemble des multiples de deux entre 2 et 8192. Seul un processus privilégié (i.e. disposant du droit CAP_SYS_RESOURCE) peut régler une fréquence supérieure à celle spécifiée dans /proc/sys/dev/rtc/max-user-freq, par défaut 64.
- RTC_AIE_ON, RTC_AIE_OFF
- Active ou désactive l'interruption liée à l'alarme. Le troisième paramètre d'ioctl() est ignoré.
- RTC_UIE_ON, RTC_UIE_OFF
- Active ou désactive l'interruption à chaque mise à jour de l'horloge. Le troisième paramètre d'ioctl() est ignoré.
- RTC_PIE_ON, RTC_PIE_OFF
- Active ou désactive l'interruption périodique. Le troisième paramètre d'ioctl() est ignoré. Seul un processus privilégié (i.e. disposant du droit CAP_SYS_RESOURCE) peut régler une fréquence supérieure à celle spécifiée dans /proc/sys/dev/rtc/max-user-freq.
- RTC_EPOCH_READ, RTC_EPOCH_SET
- La RTC code l'année dans un registre de 8 bits, interprété soit comme un nombre binaire de 8 bits, soit comme un nombre BCD. Dans les deux cas, le nombre est interprété relativement au Epoch RTC. Le Epoch RTC est initialisé à 1900 sur la plupart des systèmes, sauf sur Alpha et Mips où il peut être initialisé à 1952, 1980 ou 2000, suivant la valeur du registre RTC destiné à l'année. Ces opérations peuvent être utilisées respectivement pour lire ou régler l'Epoch RTC. Pour régler l'Epoch RTC, le processus doit être privilégié (i.e. disposer du droit CAP_SYS_TIME).
FICHIERS
/dev/rtc : le fichier spécial en mode caractère de la RTC./proc/driver/rtc : état de la RTC.
NOTES
Lorsque l'horloge du noyau est synchronisée avec une référence externe en utilisant adjtimex(2), le noyau met à jour la RTC toutes les 11 minutes. Pour y parvenir, le noyau doit arrêter brièvement les interruptions périodiques, ce qui peut affecter les programmes utilisant la RTC.L'Epoch de la RTC n'a rien à voir avec l'Epoch POSIX, utilisé uniquement pour l'horloge système.
Si l'année relative à l'Epoch RTC et au registre de l'année dans la RTC est inférieure à 1970, on considère que l'année est de 100 ans supérieure, i.e. entre 2000 et 2069.
VOIR AUSSI
hwclock(8), date(1), time(2), stime(2), gettimeofday(2), settimeofday(2), adjtimex(2), gmtime(3), time(7), /usr/src/linux/Documentation/rtc.txtTRADUCTION
Cette page de manuel a été traduite et mise à jour par Christophe Blaess <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis par Alain Portal <aportal AT univ-montp2 DOT fr> jusqu'en 2006.La traduction de cette page de manuel est basée sur les traductions disponibles sur http://manpagesfr.free.fr/, mais est gérée par l'équipe francophone de traduction de Debian au travers de la liste de discussion debian-l10n-french.
Veuillez signaler toute erreur de traduction par un rapport de bogue sur le paquet manpages-fr.
Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « man -L C <section> <page_de_man> ».
-+- François Rabelais (1494?-1553), Tiers livre (chap. 34) -+-
Contenus ©2006-2009 Benjamin Poulain
Design ©2006-2009 Maxime Vantorre