Man page - rtc(4)
Packages contains this manual
- shm_overview(7)
- nss(5)
- proc_mtrr(5)
- intro(7)
- tcp(7)
- iso_8859-9(7)
- armscii-8(7)
- proc_kpagecount(5)
- initrd(4)
- mouse(4)
- proc_stat(5)
- x25(7)
- proc_interrupts(5)
- fifo(7)
- repertoiremap(5)
- icmp(7)
- futex(7)
- feature_test_macros(7)
- lp(4)
- bpf-helpers(7)
- epoll(7)
- proc_sys_dev(5)
- namespaces(7)
- proc_sysrq-trigger(5)
- proc_bus(5)
- cp1251(7)
- proc_pid_maps(5)
- proc_sys_vm(5)
- proc_pid_projid_map(5)
- st(4)
- proc_pid(5)
- issue(5)
- pid_namespaces(7)
- unicode(7)
- inode(7)
- hosts.equiv(5)
- iso-8859-13(7)
- proc_fb(5)
- proc_modules(5)
- proc_pid_autogroup(5)
- keyrings(7)
- sysvipc(7)
- proc_kmsg(5)
- cgroups(7)
- latin6(7)
- proc_pid_uid_map(5)
- unix(7)
- proc_pid_io(5)
- pts(4)
- packet(7)
- ld-linux.so(8)
- tzselect(8)
- iconv(1)
- proc_pid_syscall(5)
- proc_pid_net(5)
- proc_pid_pagemap(5)
- tty(4)
- proc_profile(5)
- standards(7)
- proc_pid_mounts(5)
- filesystems(5)
- iso-8859-15(7)
- locale(5)
- iso_8859_3(7)
- xattr(7)
- iso-8859-2(7)
- proc_uptime(5)
- persistent-keyring(7)
- credentials(7)
- proc_pid_timers(5)
- utmpx(5)
- vcsa(4)
- proc_pid_exe(5)
- proc_net(5)
- proc_timer_stats(5)
- ip(7)
- proc_pid_fd(5)
- ptmx(4)
- user_namespaces(7)
- resolv.conf(5)
- url(7)
- iso_8859_5(7)
- iso_8859-8(7)
- urn(7)
- process-keyring(7)
- proc_pid_auxv(5)
- proc_ksyms(5)
- proc_ide(5)
- veth(4)
- ldd(1)
- proc_swaps(5)
- landlock(7)
- proc_vmstat(5)
- system_data_types(7)
- cp1252(7)
- lirc(4)
- proc_kpageflags(5)
- random(7)
- precedence(7)
- cpuset(7)
- proc_pid_ns(5)
- acct(5)
- latin4(7)
- proc_pid_cgroup(5)
- proc_cpuinfo(5)
- iso_8859-2(7)
- proc_keys(5)
- charsets(7)
- pldd(1)
- proc_pid_stat(5)
- rtnetlink(7)
- netlink(7)
- ram(4)
- mem(4)
- iso-8859-6(7)
- proc_key-users(5)
- iso_8859_15(7)
- fanotify(7)
- proc_sys_net(5)
- sysfs(5)
- math_error(7)
- latin1(7)
- proc_pid_root(5)
- nptl(7)
- proc_cgroups(5)
- proc_iomem(5)
- proc_pid_statm(5)
- sem_overview(7)
- hier(7)
- full(4)
- proc_pid_status(5)
- proc_pid_cwd(5)
- proc_pid_cpuset(5)
- proc_scsi(5)
- uri(7)
- proc_diskstats(5)
- iso_8859_6(7)
- latin2(7)
- latin5(7)
- man-pages(7)
- ld.so(8)
- uts_namespaces(7)
- proc_pid_mountstats(5)
- intro(3)
- proc_pid_seccomp(5)
- proc_pid_wchan(5)
- attributes(7)
- symlink(7)
- mount_namespaces(7)
- charmap(5)
- tis-620(7)
- iso-8859-10(7)
- getent(1)
- proc_buddyinfo(5)
- ttytype(5)
- rtc(4)
- proc_malloc(5)
- suffixes(7)
- sln(8)
- signal(7)
- proc_sys_abi(5)
- signal-safety(7)
- time_namespaces(7)
- proc_pid_comm(5)
- raw(7)
- gai.conf(5)
- proc_crypto(5)
- locale(1)
- iso-8859-3(7)
- motd(5)
- proc_meminfo(5)
- iso-8859-8(7)
- protocols(5)
- proc_pid_map_files(5)
- pthreads(7)
- null(4)
- proc(5)
- zdump(8)
- socket(7)
- proc_sys_kernel(5)
- ddp(7)
- memusagestat(1)
- hd(4)
- iso-8859-14(7)
- shells(5)
- pipe(7)
- glob(7)
- proc_self(5)
- network_namespaces(7)
- utmp(5)
- proc_kcore(5)
- nsswitch.conf(5)
- sd(4)
- iso-8859-5(7)
- iso_8859_16(7)
- man(7)
- iso_8859-6(7)
- dir_colors(5)
- mq_overview(7)
- vsock(7)
- ascii(7)
- thread-keyring(7)
- fs(5)
- proc_pid_attr(5)
- proc_sys_debug(5)
- proc_sys(5)
- proc_pid_cmdline(5)
- pty(7)
- services(5)
- cgroup_namespaces(7)
- securetty(5)
- netdevice(7)
- iso_8859_13(7)
- host.conf(5)
- proc_pid_setgroups(5)
- proc_slabinfo(5)
- sock_diag(7)
- iso_8859-14(7)
- iso-8859-11(7)
- iso_8859_11(7)
- operator(7)
- regex(7)
- wavelan(4)
- proc_sys_fs(5)
- nologin(5)
- proc_pci(5)
- koi8-r(7)
- erofs(5)
- intro(2)
- utf8(7)
- proc_kallsyms(5)
- proc_sysvipc(5)
- queue(7)
- proc_sys_sunrpc(5)
- intro(5)
- latin8(7)
- mtrace(1)
- ipc_namespaces(7)
- dsp56k(4)
- iso_8859_4(7)
- proc_pid_smaps(5)
- proc_cmdline(5)
- rpc(5)
- proc_tty(5)
- proc_version(5)
- smartpqi(4)
- proc_pid_timerslack_ns(5)
- aio(7)
- session-keyring(7)
- resolver(5)
- slabinfo(5)
- wtmp(5)
- iso_8859_9(7)
- proc_locks(5)
- mailaddr(7)
- proc_pid_oom_score(5)
- kmem(4)
- iconvconfig(8)
- iso_8859-7(7)
- glibc(7)
- hostname(7)
- proc_thread-self(5)
- ipv6(7)
- iso_8859_7(7)
- proc_kpagecgroup(5)
- core(5)
- time(7)
- units(7)
- proc_dma(5)
- loop(4)
- address_families(7)
- zero(4)
- intro(4)
- procfs(5)
- iso_8859-4(7)
- vdso(7)
- tmpfs(5)
- iso-8859-16(7)
- iso_8859_10(7)
- user-session-keyring(7)
- libc(7)
- proc_fs(5)
- koi8-u(7)
- latin3(7)
- proc_tid_children(5)
- proc_pid_limits(5)
- proc_pid_coredump_filter(5)
- iso_8859-15(7)
- arp(7)
- urandom(4)
- iso_8859-10(7)
- hpsa(4)
- proc_pid_environ(5)
- boot(7)
- ftm(7)
- ld-linux(8)
- proc_driver(5)
- loop-control(4)
- iso_8859-16(7)
- proc_filesystems(5)
- tzfile(5)
- sprof(1)
- proc_pid_task(5)
- proc_pid_oom_score_adj(5)
- proc_mounts(5)
- iso-8859-4(7)
- iso_8859-1(7)
- utf-8(7)
- iso_8859-13(7)
- intro(6)
- proc_timer_list(5)
- rtld-audit(7)
- iso_8859-3(7)
- group(5)
- sched(7)
- proc_pid_clear_refs(5)
- hosts(5)
- iso_8859-11(7)
- numa(7)
- iso_8859_2(7)
- locale(7)
- iso-8859-1(7)
- fuse(4)
- proc_tid(5)
- proc_execdomains(5)
- proc_pid_mountinfo(5)
- intro(8)
- iso_8859_8(7)
- proc_loadavg(5)
- proc_pid_oom_adj(5)
- re_format(7)
- iso_8859_14(7)
- zic(8)
- bootparam(7)
- inotify(7)
- posixoptions(7)
- proc_partitions(5)
- iso-8859-9(7)
- proc_pid_mem(5)
- networks(5)
- proc_sys_user(5)
- udp(7)
- proc_zoneinfo(5)
- latin10(7)
- proc_pid_fdinfo(5)
- proc_pid_stack(5)
- memusage(1)
- spufs(7)
- pkeys(7)
- path_resolution(7)
- proc_ioports(5)
- intro(1)
- ldconfig(8)
- msr(4)
- svipc(7)
- port(4)
- proc_pid_personality(5)
- cciss(4)
- latin9(7)
- capabilities(7)
- localedef(1)
- vcs(4)
- iso_8859-5(7)
- elf(5)
- proc_sys_proc(5)
- console_codes(4)
- random(4)
- iso-8859-7(7)
- termcap(5)
- cpuid(4)
- environ(7)
- string_copying(7)
- proc_pid_gid_map(5)
- queue(3)
- termio(7)
- user-keyring(7)
- complex(7)
- latin7(7)
- proc_config.gz(5)
- udplite(7)
- kernel_lockdown(7)
- proc_devices(5)
- proc_apm(5)
- iso_8859_1(7)
- proc_pid_numa_maps(5)
apt-get install manpages
Available languages:
en fr ja ro deManual
rtc
NOMSYNOPSIS
DESCRIPTION
RTC vs horloge systĂšme
FonctionnalitĂ©s dâune RTC
Interface ioctl(2)
FICHIERS
NOTES
VOIR AUSSI
TRADUCTION
NOM
rtc â Horloge temps rĂ©el
SYNOPSIS
#include <linux/rtc.h>
int ioctl( fd , RTC_ request , param );
DESCRIPTION
Il sâagit dâune interface aux pilotes pour les horloges temps rĂ©el (RTC).
La plupart des ordinateurs disposent dâune ou plusieurs horloges matĂ©rielles intĂ©grĂ©es, enregistrant lâheure locale. Elles sont appelĂ©es « horloges temps rĂ©el » (RTC). Lâune dâentre elles est gĂ©nĂ©ralement alimentĂ©e par une pile afin de rester Ă lâheure une fois lâordinateur Ă©teint. Les RTC permettent souvent dâutiliser des alarmes et dâautres interruptions.
Tous les PC i386 et les systĂšmes basĂ©s sur ACPI ont une RTC compatible avec la puce Motorola MC146818 du PC/AT dâorigine. Aujourdâhui lâhorloge est gĂ©nĂ©ralement intĂ©grĂ©e au jeu de composants de la carte mĂšre (« south bridge ») et utilise une pile de secours remplaçable de la taille dâune piĂšce de monnaie.
Les systĂšmes autres que les PC, comme les systĂšmes embarquĂ©s construits autour de processeurs embarquant tout le systĂšme, utilisent dâautres mises en Ćuvre. GĂ©nĂ©ralement, ils nâoffrent pas les mĂȘmes fonctionnalitĂ©s quâune RTC de PC/AT.
RTC vs horloge systĂšme
Les RTC ne doivent pas ĂȘtre confondues avec lâhorloge systĂšme, qui est une horloge logicielle gĂ©rĂ©e par le noyau et utilisĂ©e dans gettimeofday (2) et time (2), ainsi que pour le marquage temporel des fichiers, etc. Lâhorloge systĂšme indique le nombre de secondes et microsecondes Ă©coulĂ©es depuis un instant de dĂ©part, dĂ©fini comme depuis lâĂ©poque POSIX : 1er janvier 1970 Ă 00:00:00 (UTC). (Une mise en Ćuvre usuelle compte le nombre dâinterruptions, une par pulsation Ă une frĂ©quence de 100, 250 ou 1000 Hz.) Câest-Ă -dire quâelle est supposĂ©e renvoyer lâheure locale, comme le font les RTC.
Une diffĂ©rence clĂ© entre une RTC et lâhorloge systĂšme est quâune RTC fonctionne mĂȘme lorsque le systĂšme est dans un Ă©tat de veille dâalimentation (incluant « éteint ») et que lâhorloge systĂšme ne peut fonctionner. JusquâĂ son initialisation, lâhorloge systĂšme ne peut indiquer que le temps Ă©coulĂ© depuis le dĂ©marrage du systĂšme mais pas celui depuis lâĂ©poque POSIX. Ainsi, au dĂ©marrage et aprĂšs la sortie de veille, lâhorloge systĂšme sera souvent rĂ©glĂ©e Ă lâheure locale actuelle en utilisant une RTC. Les systĂšmes sans RTC ont besoin de rĂ©gler leur horloge systĂšme par un autre moyen, peut-ĂȘtre Ă travers le rĂ©seau ou en entrant les valeurs Ă la main.
FonctionnalitĂ©s dâune RTC
Les RTC peuvent ĂȘtre lues et rĂ©glĂ©es avec hwclock (8), ou directement en utilisant les ioctl (2) listĂ©s ci-dessous.
En plus du compte de la date et de lâheure, de nombreuses RTC peuvent aussi gĂ©nĂ©rer des interruptions :
|
- |
Ă chaque mise Ă jour de lâhorloge (câest-Ă -dire 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. Sur de nombreux systĂšmes, lâinterruption venant de lâalarme peut ĂȘtre configurĂ©e comme un Ă©vĂ©nement dĂ©clenchant le rĂ©veil du systĂšme, et ainsi sortir le systĂšme dâun Ă©tat de veille dâalimentation comme la veille en RAM (STR, appelĂ©e S3 dans les systĂšmes ACPI), lâhibernation (appelĂ©e S4 dans les systĂšmes ACPI) ou mĂȘme lâextinction (appelĂ©e S5 dans les systĂšmes ACPI). Sur certains systĂšmes, la pile de secours de la RTC ne peut gĂ©nĂ©rer dâinterruptions, alors quâune autre le peut.
Le pĂ©riphĂ©rique /dev/rtc (ou /dev/rtc0 , /dev/rtc1 , etc.) 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).
Interface ioctl(2)
Les appels
ioctl
(2) suivants sont définis sur les
descripteurs des fichiers associés aux
périphériques RTC :
RTC_RD_TIME
Renvoie lâheure de cette 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 (2).
RTC_SET_TIME
RĂšgle cette horloge RTC Ă lâheure spĂ©cifiĂ©e par la structure rtc_time vers laquelle pointe le troisiĂšme paramĂštre passĂ© Ă ioctl (2). Pour pouvoir modifier lâheure RTC, le processus doit ĂȘtre privilĂ©giĂ© (câest-Ă -dire disposer du droit CAP_SYS_TIME ).
RTC_ALM_READ
RTC_ALM_SET
Lit et rĂšgle lâheure dâalarme, pour les horloges RTC qui gĂšrent les alarmes. Lâinterruption venant de lâalarme doit ĂȘtre activĂ©e ou dĂ©sactivĂ©e sĂ©parĂ©ment en utilisant respectivement les requĂȘtes RTC_AIE_ON ou RTC_AIE_OFF . Le troisiĂšme paramĂštre dâ ioctl (2) est un pointeur vers une structure rtc_time . Seuls les champs tm_sec , tm_min , et tm_hour de cette structure sont utilisĂ©s.
RTC_IRQP_READ
RTC_IRQP_SET
Lit et rĂšgle la frĂ©quence des interruptions, pour les horloges RTC gĂ©rant les interruptions pĂ©riodiques. Lâinterruption pĂ©riodique doit ĂȘtre activĂ©e ou dĂ©sactivĂ©e sĂ©parĂ©ment en utilisant respectivement les requĂȘtes RTC_PIE_ON ou RTC_PIE_OFF . Le troisiĂšme paramĂštre dâ ioctl (2) est un unsigned long * ou un unsigned 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Ă© (câest-Ă -dire 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 venant de lâalarme, pour les RTC qui gĂšrent les alarmes. Le troisiĂšme paramĂštre dâ ioctl (2) est ignorĂ©.
RTC_UIE_ON
RTC_UIE_OFF
Active ou dĂ©sactive lâinterruption Ă chaque mise Ă jour, pour les horloges gĂ©rant cette interruption envoyĂ©e chaque seconde. Le troisiĂšme paramĂštre dâ ioctl (2) est ignorĂ©.
RTC_PIE_ON
RTC_PIE_OFF
Active ou dĂ©sactive lâinterruption pĂ©riodique, pour les RTC gĂ©rant ces interruptions pĂ©riodiques. Le troisiĂšme paramĂštre dâ ioctl (2) est ignorĂ©. Seul un processus privilĂ©giĂ© (câest-Ă -dire 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
De nombreuses RTC codent 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 Ă lâĂ©poque de cette RTC. LâĂ©poque de la 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. Avec certaines RTC, ces opĂ©rations peuvent ĂȘtre utilisĂ©es respectivement pour lire ou rĂ©gler lâĂ©poque de la RTC. Le troisiĂšme paramĂštre ioctl (2) est respectivement un unsigned long * ou un unsigned long , et la valeur renvoyĂ©e (ou assignĂ©e) est lâĂ©poque. Pour rĂ©gler lâĂ©poque RTC, le processus doit ĂȘtre privilĂ©giĂ© (câest-Ă -dire disposer de la capacitĂ© CAP_SYS_TIME ).
RTC_WKALM_RD
RTC_WKALM_SET
Certaines RTC disposent dâune interface pour les alarmes plus puissante, utilisant ces ioctl pour lire ou Ă©crire lâheure de lâalarme de la RTC avec cette structure :
struct
rtc_wkalrm {
unsigned char enabled;
unsigned char pending;
struct rtc_time time;
};
Lâattribut enabled est utilisĂ© pour activer ou dĂ©sactiver lâinterruption venant de lâalarme, ou pour lire son Ă©tat actuel ; lorsque ces appels sont utilisĂ©s, RTC_AIE_ON et RTC_AIE_OFF ne sont pas utilisĂ©s. Lâattribut pending est utilisĂ© par RTC_WKALM_RD pour signaler une interruption en attente (câest en gĂ©nĂ©ral inutile sous Linux, exceptĂ© lors du dialogue avec la RTC gĂ©rĂ©e par un microcode EFI). Le champ time est autant utilisĂ© par RTC_ALM_READ et RTC_ALM_SET , exceptĂ© que les champs tm_mday , tm_mon et tm_year sont Ă©galement valides. Un pointeur vers cette structure doit ĂȘtre passĂ© en troisiĂšme paramĂštre ioctl (2).
FICHIERS
/dev/rtc
/dev/rtc0
/dev/rtc1
|
... |
Fichiers spéciaux de périphérique caractÚre des différentes RTC. |
/proc/driver/rtc
Ătat de la (premiĂšre) RTC.
NOTES
Lorsque lâhorloge du noyau est synchronisĂ©e avec une rĂ©fĂ©rence externe en utilisant adjtimex (2), le noyau met Ă jour une RTC dĂ©signĂ©e 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 cette RTC.
LâĂ©poque dâune RTC nâa rien Ă voir avec lâĂ©poque POSIX, utilisĂ© uniquement pour lâhorloge systĂšme.
Si lâannĂ©e relative Ă lâĂ©poque de la RTC et au registre de lâannĂ©e est infĂ©rieure Ă 1970, on considĂšre que lâannĂ©e est de 100 ans supĂ©rieure, c.-Ă -d. entre 2000 et 2069.
Certaines RTC gĂšrent les caractĂšres gĂ©nĂ©riques (« wildcard  ») dans les champs des alarmes, destinĂ©s aux scĂ©narios comme les alarmes pĂ©riodiques toutes les quinze minutes aprĂšs chaque heure, ou au premier jour de chaque mois. Une telle utilisation nâest pas portable ; un code en espace utilisateur portable nâattend quâune seule interruption dâalarme, puis dĂ©sactivera ou rĂ©initialisera cette alarme aprĂšs lâavoir reçue.
Certaines RTC gĂšrent des interruptions de pĂ©riodes multiples dâune seconde plutĂŽt quâen fractions de secondes, des alarmes multiples, la programmation de signaux de sortie dâhorloge, la mĂ©moire non volatile, et dâautres possibilitĂ©s matĂ©rielles qui ne sont pas accessibles par cette API.
VOIR AUSSI
date (1), adjtimex (2), gettimeofday (2), settimeofday (2), stime (2), time (2), gmtime (3), time (7), hwclock (8)
Documentation/rtc.txt dans les sources du noyau Linux.
TRADUCTION
La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org>, David Prévot <david@tilapin.org> et Jean-Pierre Giraud <jean-pierregiraud@neuf.fr>
Cette traduction est une documentation libre ; veuillez vous reporter Ă la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il nây a aucune RESPONSABILITĂ LĂGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org .