Provided by: manpages-es-extra_0.8a-17_all bug

NOMBRE

       hwclock - interroga y pone en hora el Reloj del Hardware (RTC)

SINOPSIS

       hwclock --show
       hwclock --set --date=nuevafecha
       hwclock --systohc
       hwclock --hctosys
       hwclock --getepoch
       hwclock --setepoch --epoch=a~no
       hwclock --adjust
       hwclock --version

       otras opciones:

       --utc  --directisa --test --debug

       Las  abreviaciones  minimas de todas las opciones son aceptables, si no
       hay ambiguedad.

       Tambien se aceptan las opciones equivalentes -r, -w, -s, -a, -v,  -u  y
       -D, por compatibilidad con el programa "clock".

DESCRIPCI'ON

       hwclock  es  una  herramienta  para  acceder al Reloj del Hardware. Ud.
       puede mostrar la hora actual, poner el Reloj del Hardware  a  una  hora
       especificada,  poner  el  Reloj  del  Hardware a la Hora del Sistema, y
       poner el Tiempo del Sistema desde el Reloj del Hardware.

       Ud. tambien puede  ejecutar  hwclock  periodicamente  para  insertar  o
       quitar  tiempo  del  Reloj  del  Hardware  para  compensar desviaciones
       sistematicas (en las que el reloj gana o pierde tiempo consistentemente
       a una cierta velocidad si se deja solo).

OPCIONES

       Ud.  necesita exactamente una de las siguientes opciones para decirle a
       hwclock que funcion realizar:

       --show Lee el Reloj del  Hardware  y  muestra  la  hora  en  la  salida
              estandar.

       --set  Pone el Reloj del Hardware a la hora dada por la opcion --date.

       --hctosys
              Pone el Tiempo del Sistema a partir del Reloj del Hardware. Esta
              es una buena opcion para poner en uno de los guiones de arranque
              del sistema.

       --systohc
              Pone el Reloj del Hardware a la hora del sistema actual.

       --adjust
              Anade  o  sustrae  tiempo  del  Reloj del Hardware para tener en
              cuenta el desvio sistematico desde la ultima vez que el reloj se
              puso o se ajusto. Vea la discusion al respecto mas adelante.

       --getepoch
              Muestra en la salida estandar el valor de la epoca del Reloj del
              Hardware del nucleo. Esto es el numero de anos en la Era al  que
              se  refiere  el ano cero del Reloj del Hardware. Por ejemplo, si
              Ud. emplea el convenio de que el contador de anos  en  su  Reloj
              del  Hardware  contiene  el numero de anos completos desde 1952,
              entonces el valor de la epoca del contador de anos del Reloj del
              Hardware debe ser 1952.

              Este valor de la epoca se emplea cada vez que hwclock lee o pone
              el Reloj del Hardware.

       --setepoch
              Pone el valor de la epoca del Reloj del Hardware del  nucleo  al
              valor  especificado  por  la  opcion  --epoch.   Vea  la  opcion
              --getepoch para mas detalles.

       --version
              Muestra la version de hwclock en la salida estandar.

              Si Ud. especifica la opcion --set, necesita la opcion siguiente.
              Si no, no es tenida en consideracion.

       --date=nuevafecha
              Especifica  la  hora  a  la cual poner el Reloj del Hardware. El
              valor de esta opcion es un argumento  valido  para  el  programa
              date(1).  Por ejemplo,

              hwclock --set --date="9/22/96 16:45:05"

       --epoch=a~no
              Especifica  el ano que es el principio de la epoca del Reloj del
              Hardware. Esto es el numero de anos en  la  Era  a  la  cual  se
              refiere  un  valor  cero  en  el  contador de anos del Reloj del
              Hardware.

              Por ejemplo,

              hwclock --setepoch --epoch=1952

       Las opciones siguientes se aplican a la mayoria de las funciones.

       --utc  Indica que el Reloj  del  Hardware  se  mantiene  en  el  Tiempo
              Universal Coordinado (UTC). Es cosa suya si mantiene su reloj en
              hora local o UTC, pero nada en el reloj le dice que es lo que ha
              escogido.  Asi que con esta opcion es como le da esa informacion
              a hwclock.

       Si no  especifica  --utc  cuando  debiera,  o  viceversa,  el  poner  y
       preguntar la hora del reloj del hardware acabaran funcionando mal.

       --directisa
              tiene sentido solamente en una maquina ISA. Para todas las otras
              maquinas no tiene efecto. Esta opcion le dice a hwclock que  use
              instrucciones  de  E/S  explicitas  para  acceder  al  reloj del
              hardware.  Sin  esta  opcion,  hwclock  intentara   emplear   el
              dispositivo  /dev/rtc  (que  supone  que  esta controlado por el
              controlador del dispositivo rtc). Si  es  incapaz  de  abrir  el
              dispositivo   (para   lectura),   empleara   las   instrucciones
              explicitas de E/S, de todas formas.

       El controlador de dispositivo rtc fue introducido en Linux version 2.

       --test Hace todo excepto actualizar realmente el Reloj del  Hardware  o
              cualquier  otra  cosa. Esto es util, especialmente en conjuncion
              con --debug, para aprender sobre como funciona hwclock.

       --debug
              Muestra un monton de  informacion  sobre  lo  que  hwclock  esta
              haciendo  internamente.  Algo  de  su funcion es compleja y esta
              salida puede ayudarle a comprender como funciona el programa.

NOTAS

Relojes en un sistema Linux

       Hay dos relojes principales en un sistema Linux:

       El Reloj del Hardware: Esto es un reloj que corre independientemente de
       cualquier  programa  de control ejecutandose en la CPU e incluso cuando
       la maquina esta apagada.

       En un sistema ISA, este reloj esta especificado como parte del estandar
       ISA.  El programa de control puede leer o poner este reloj a un segundo
       entero, pero el programa de control tambien puede detectar los  limites
       de  los pulsos del reloj de 1 segundo, asi que el reloj realmente tiene
       una precision virtualmente infinita.

       Este reloj se llama comunmente el  Reloj  del  Hardware,  el  reloj  de
       tiempo real, el RTC, el reloj de la BIOS, y el reloj CMOS. El Reloj del
       Hardware, en esta forma con las iniciales en mayusculas, se acuno  para
       el uso en hwclock porque todos los otros nombres son inapropiados hasta
       el punto de llevar a confusion.

       El Tiempo del Sistema: Esto es el tiempo  mantenido  por  un  reloj  de
       dentro   del   nucleo   Linux   y  controlado  por  un  interruptor  de
       temporizacion. (En una maquina ISA, el interruptor de temporizacion  es
       parte  del  estandar  ISA.)  Solo  tiene  sentido  mientras  Linux esta
       ejecutandose en la maquina. El Tiempo  del  Sistema  es  el  numero  de
       segundos  desde  las  00:00:00 horas del 1 de Enero de 1970, UTC (o mas
       sucintamente, el numero de segundos desde 1969). El Tiempo del  Sistema
       no es un entero, sin embargo. Tiene precision virtualmente infinita.

       El  Tiempo del Sistema es el que tiene importancia. El proposito basico
       del Reloj del Hardware en un sistema Linux es mantener la hora mientras
       que  Linux  no  esta  ejecutandose. Ud. inicia el Tiempo del Sistema al
       tiempo del Reloj del Hardware cuando Linux arranca,  y  ya  no  utiliza
       nunca  mas  el  Reloj  del  Hardware. Observe que en DOS, para quien se
       diseno ISA, el Reloj del Hardware es el unico reloj de tiempo real.

       Es importante que el Tiempo del Sistema no tenga discontinuidades  como
       las  que  podrian  ocurrir  si  Ud.  empleara  el programa date(1) para
       ponerlo en hora mientras el sistema este en ejecucion. Sin embargo, Ud.
       puede hacer lo que quiera con el Reloj del Hardware mientras el sistema
       este ejecutandose, y la siguiente vez que Linux arrancara, lo haria con
       la  nueva  hora ajustada del Reloj del Hardware.  Tambien puede emplear
       el programa adjtimex(8) para ajustar suavemente el Tiempo  del  Sistema
       mientras que el sistema esta ejecutandose.

C'omo hwclock accede al Reloj del Hardware

       hwclock  utiliza muchas formas diferentes de obtener y poner valores en
       el Reloj del Hardware.  La forma mas normal es hacer E/S en el  fichero
       especial  de  dispositivo  /dev/rtc,  que  se  supone controlado por el
       controlador del dispositivo rtc.  Sin  embargo,  este  metodo  no  esta
       siempre  disponible.  Por  una  cosa: el controlador rtc es una adicion
       relativamente reciente a Linux. Sistemas mas antiguos no lo tienen.

       En sistemas mas viejos, el metodo de  acceder  al  Reloj  del  Hardware
       depende del hardware del sistema.

       En  un  sistema ISA, hwclock puede acceder directamente a los registros
       de la "memoria CMOS" que  constituye  el  reloj,  haciendo  E/S  a  los
       puertos  0x70 y 0x71. Esto solo lo puede hacer si se ejecuta con el UID
       efectivo 0 (esto es, con privilegios de super-usuario).

       Esto es realmente un pobre metodo de acceder al reloj, por la razon  de
       que  los  programas en el espacio de usuario se supone generalmente que
       no deben hacer E/S directa y deshabilitar  interrupciones.  Hwclock  lo
       proporciona  porque es el unico metodo disponible con nucleos Linux mas
       antiguos para maquinas ISA.

       En un sistema m68k (68000 de Motorola), hwclock puede acceder al  reloj
       a  traves  del  controlador de consola, mediante el fichero especial de
       dispositivo /dev/tty1.

       En un Alpha, de DEC, /dev/rtc es la unica posibilidad.

       Hay o habia algunos sistemas Linux en Alpha que no  tienen  /dev/rtc  y
       hay  o  habia  programas  que  accedian  al  reloj a traves de E/S casi
       directa usando /dev/port. Sin embargo, esto no es un metodo  tan  bueno
       como  el  de  /dev/rtc  y  tales  programas  no  fueron tan ampliamente
       empleados como para  que  hwclock  tuviera  ninguna  necesidad  de  ser
       compatible  hacia  atras  con  ellos. Asi que hwclock no proporciona el
       metodo de /dev/port y consecuentemente no funcionara en un Alpha que no
       tenga /dev/rtc.

       hwclock intenta emplear /dev/rtc. Si se ha compilado para un nucleo que
       no tiene esa funcion o es incapaz de abrir /dev/rtc, hwclock  intentara
       otro  metodo,  si  hay alguno disponible. En una maquina ISA, Ud. puede
       forzar a hwclock a usar la manipulacion directa de los registros de  la
       CMOS   sin  ni  siquiera  intentar  /dev/rtc  especificando  la  opcion
       --directisa.

La Funci'on de Ajuste

       El Reloj del Hardware no es usualmente muy preciso. Sin embargo,  mucha
       de  su  imprecision es completamente predecible; gana o pierde la misma
       cantidad de tiempo cada dia. Esto se llama desviacion sistematica.   La
       funcion   de   "ajuste"   de  hwclock  le  permite  hacer  correcciones
       sistematicas para corregir la desviacion sistematica.

       Funciona asi: Hwclock mantiene un fichero, /etc/adjtime,  que  mantiene
       alguna informacion historica. Este fichero se llama el fichero adjtime.

       Suponga  que  Ud. empieza sin fichero adjtime. Ud. da una orden hwclock
       --set para poner el Reloj del Hardware  a  la  hora  verdadera  actual.
       Hwclock  crea  el  fichero adjtime y graba en el la hora actual como la
       ultima vez que el reloj se calibro.  5 dias  mas  tarde,  el  reloj  ha
       ganado  10  segundos,  asi  que  Ud.  da  otra orden hwclock --set para
       ponerlo con 10 segundos menos.  Hwclock ajusta el fichero adjtime  para
       mostrar  la  hora  actual como la ultima vez que el reloj se calibro, y
       graba dos segundos por dia como la velocidad de desviacion sistematica.
       Pasan  24 horas, y entonces Ud. da una orden hwclock --adjust.  Hwclock
       consulta el fichero adjtime y ve que el reloj gana 2 segundos  por  dia
       cuando  se le deja solo, y que se le ha dejado solo exactamente un dia.
       Asi que sustrae 2 segundos del Reloj del Hardware.  Entonces  graba  la
       hora  actual  como la ultima vez que se ajusto el reloj. Otras 24 horas
       pasan y Ud. da otra orden hwclock --adjust.   Hwclock  hace  lo  mismo:
       sustrae  2  segundos  y actualiza el fichero adjtime con la hora actual
       como la ultima vez que el reloj se ajusto.

       Cada vez que Ud. calibra (pone en hora) el reloj, hwclock recalcula  la
       velocidad  de  desviacion sistematica basado en cuanto tiempo ha pasado
       desde la ultima calibracion, cuanto tiempo ha pasado  desde  el  ultimo
       ajuste,  que velocidad de desviacion se suponia en cualesquiera ajustes
       intervinientes, y la cantidad que el reloj esta desviado actualmente de
       la hora verdadera.

       Se  arrastra  una pequena cantidad de error en cualquier momento en que
       hwclock pone el reloj en hora, de forma que rehusa hacer un ajuste  que
       vaya  a ser de menos de 1 segundo. Mas tarde, cuando Ud. pida un ajuste
       de nuevo, la desviacion acumulada sera de mas de un segundo  y  hwclock
       hara el ajuste entonces.

       Es bueno hacer un hwclock --adjust justo antes del hwclock --hctosys en
       la hora del arranque del sistema, y quizas periodicamente mientras  que
       el sistema esta ejecutandose, mediante cron.

       El formato del fichero adjtime es:

       Linea  1: 3 numeros: 1) velocidad de desviacion sistematica en segundos
       por dia, numero en base diez en coma flotante; 2) numero resultante  de
       segundos  desde  1969 UTC del mas reciente ajuste o calibracion, entero
       en base diez; 3) cero (por compatibilidad con clock ).

       Linea 2: 1 numero: El numero resultante de segundos desde 1969  UTC  de
       la calibracion mas reciente.

       Ud.  puede  emplear  con  hwclock  un  fichero  adjtime que fuera usado
       previamente con el programa clock.

FICHEROS

       /etc/adjtime

V'EASE TAMBI'EN

       adjtimex(8), date(1), gettimeofday(2), settimeofday(2), crontab(1)

AUTORES

       Escrito por Bryan Henderson, en  Septiembre  de  1996  (bryanh@giraffe-
       data.com),  basandose  en  el  trabajo  hecho  en  el programa clock de
       Charles Hedrick, Rob Hooft y Harald Konig.  Mire el codigo fuente  para
       la historia completa y los creditos.

                                 2 Marzo 1998                       HWCLOCK(8)