Provided by: manpages-es-extra_0.8a-19_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ño
       hwclock --adjust
       hwclock --version

       otras opciones:

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

       Las abreviaciones mínimas de todas las opciones son aceptables, si no hay ambigüedad.

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

DESCRIPCIÓN

       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. también puede ejecutar hwclock periódicamente para insertar o quitar tiempo del  Reloj  del  Hardware
       para compensar desviaciones sistemáticas (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 qué función realizar:

       --show Lee el Reloj del Hardware y muestra la hora en la salida estándar.

       --set  Pone el Reloj del Hardware a la hora dada por la opción --date.

       --hctosys
              Pone el Tiempo del Sistema a partir del Reloj del Hardware. Ésta es una buena opción para poner en
              uno de los guiones de arranque del sistema.

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

       --adjust
              Añade  o sustrae tiempo del Reloj del Hardware para tener en cuenta el desvío sistemático desde la
              última vez que el reloj se puso o se ajustó. Vea la discusión al respecto más adelante.

       --getepoch
              Muestra en la salida estándar el valor de la época del Reloj del Hardware del núcleo. Esto  es  el
              número de años en la Era al que se refiere el año cero del Reloj del Hardware. Por ejemplo, si Ud.
              emplea el convenio de que el contador de años en su Reloj del Hardware contiene el número de  años
              completos  desde  1952,  entonces el valor de la época del contador de años del Reloj del Hardware
              debe ser 1952.

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

       --setepoch
              Pone el valor de la época del Reloj del Hardware del núcleo al valor especificado  por  la  opción
              --epoch.  Vea la opción --getepoch para más detalles.

       --version
              Muestra la versión de hwclock en la salida estándar.

              Si  Ud.  especifica  la  opción  --set,  necesita  la  opción  siguiente.  Si  no, no es tenida en
              consideración.

       --date=nuevafecha
              Especifica la hora a la cual poner el Reloj del Hardware. El valor de esta opción es un  argumento
              válido para el programa date(1).  Por ejemplo,

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

       --epoch=año
              Especifica  el  año  que  es el principio de la época del Reloj del Hardware. Esto es el número de
              años en la Era a la cual se refiere un valor cero en el contador de años del Reloj del Hardware.

              Por ejemplo,

              hwclock --setepoch --epoch=1952

       Las opciones siguientes se aplican a la mayoría 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 qué es lo que ha escogido.
              Así que con esta opción es como le da esa información a hwclock.

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

       --directisa
              tiene  sentido  solamente  en una máquina ISA. Para todas las otras máquinas no tiene efecto. Esta
              opción le dice a hwclock que use instrucciones  de  E/S  explícitas  para  acceder  al  reloj  del
              hardware.  Sin esta opción, hwclock intentará emplear el dispositivo /dev/rtc (que supone que está
              controlado por el controlador del dispositivo rtc). Si es incapaz de abrir  el  dispositivo  (para
              lectura), empleará las instrucciones explícitas de E/S, de todas formas.

       El controlador de dispositivo rtc fue introducido en Linux versión 2.

       --test Hace  todo excepto actualizar realmente el Reloj del Hardware o cualquier otra cosa. Esto es útil,
              especialmente en conjunción con --debug, para aprender sobre cómo funciona hwclock.

       --debug
              Muestra un montón de información sobre lo que hwclock  está  haciendo  internamente.  Algo  de  su
              función es compleja y esta salida puede ayudarle a comprender cómo 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
       ejecutándose en la CPU e incluso cuando la máquina está apagada.

       En un sistema ISA, este reloj está especificado como parte del estándar ISA. El programa de control puede
       leer  o  poner  este  reloj  a  un segundo entero, pero el programa de control también puede detectar los
       límites de los pulsos del reloj de 1 segundo, así que el reloj realmente tiene una precisión virtualmente
       infinita.

       Este  reloj  se  llama  comúnmente 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  mayúsculas,  se  acuñó
       para  el  uso  en  hwclock  porque  todos  los  otros nombres son inapropiados hasta el punto de llevar a
       confusión.

       El Tiempo del Sistema: Esto es el tiempo mantenido por un reloj de dentro del núcleo Linux  y  controlado
       por  un  interruptor  de temporización. (En una máquina ISA, el interruptor de temporización es parte del
       estándar ISA.) Sólo tiene sentido mientras Linux está ejecutándose en la máquina. El Tiempo  del  Sistema
       es  el  número  de  segundos desde las 00:00:00 horas del 1 de Enero de 1970, UTC (o más sucintamente, el
       número de segundos desde 1969). El Tiempo del Sistema no es  un  entero,  sin  embargo.  Tiene  precisión
       virtualmente infinita.

       El  Tiempo  del  Sistema  es  el  que tiene importancia. El propósito básico del Reloj del Hardware en un
       sistema Linux es mantener la hora mientras que Linux no está  ejecutándose.  Ud.  inicia  el  Tiempo  del
       Sistema  al  tiempo  del  Reloj del Hardware cuando Linux arranca, y ya no utiliza nunca más el Reloj del
       Hardware. Observe que en DOS, para quien se diseñó ISA, el Reloj del Hardware es el único reloj de tiempo
       real.

       Es  importante  que  el  Tiempo del Sistema no tenga discontinuidades como las que podrían ocurrir si Ud.
       empleara el programa date(1) para ponerlo en hora mientras el sistema esté en ejecución. Sin embargo, Ud.
       puede hacer lo que quiera con el Reloj del Hardware mientras el sistema esté ejecutándose, y la siguiente
       vez que Linux arrancara, lo haría con la nueva hora ajustada  del  Reloj  del  Hardware.   También  puede
       emplear  el  programa  adjtimex(8)  para ajustar suavemente el Tiempo del Sistema mientras que el sistema
       está ejecutándose.

Cómo hwclock accede al Reloj del Hardware

       hwclock utiliza muchas formas diferentes de obtener y poner valores en el Reloj del Hardware.   La  forma
       más  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 método no está siempre disponible. Por  una  cosa:  el
       controlador rtc es una adición relativamente reciente a Linux. Sistemas más antiguos no lo tienen.

       En sistemas más viejos, el método 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 sólo lo puede hacer  si  se  ejecuta  con  el  UID
       efectivo 0 (esto es, con privilegios de súper-usuario).

       Esto es realmente un pobre método de acceder al reloj, por la razón 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 único método disponible con núcleos Linux más antiguos para máquinas ISA.

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

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

       Hay o había algunos sistemas Linux en Alpha que no tienen /dev/rtc y hay o había programas  que  accedían
       al  reloj a través de E/S casi directa usando /dev/port. Sin embargo, esto no es un método 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 atrás con ellos. Así que hwclock no proporciona el método de
       /dev/port y consecuentemente no funcionará en un Alpha que no tenga /dev/rtc.

       hwclock intenta emplear /dev/rtc. Si se ha compilado para un núcleo que no tiene esa función o es incapaz
       de abrir /dev/rtc, hwclock intentará otro método, si hay alguno disponible. En una máquina ISA, Ud. puede
       forzar a hwclock a usar la manipulación directa de los registros de la  CMOS  sin  ni  siquiera  intentar
       /dev/rtc especificando la opción --directisa.

La Función de Ajuste

       El Reloj del Hardware no es usualmente muy preciso. Sin embargo, mucha de su imprecisión es completamente
       predecible; gana o pierde la misma cantidad de tiempo cada día. Esto se llama desviación sistemática.  La
       función  de  "ajuste"  de  hwclock le permite hacer correcciones sistemáticas para corregir la desviación
       sistemática.

       Funciona así: Hwclock mantiene un fichero, /etc/adjtime, que mantiene alguna información histórica.  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 él la hora  actual  como
       la  última vez que el reloj se calibró.  5 días más tarde, el reloj ha ganado 10 segundos, así 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 última vez que el reloj se calibró, y graba dos segundos por día como la
       velocidad de desviación sistemática. 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 día cuando se le deja solo, y
       que se le ha dejado solo exactamente un día. Así que sustrae 2 segundos del Reloj del Hardware.  Entonces
       graba  la hora actual como la última vez que se ajustó 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 última vez que el reloj se ajustó.

       Cada  vez  que  Ud.  calibra  (pone  en  hora)  el  reloj,  hwclock  recalcula la velocidad de desviación
       sistemática basado en cuánto tiempo ha pasado desde la última calibración, cuánto tiempo ha pasado  desde
       el  último  ajuste,  qué  velocidad de desviación se suponía en cualesquiera ajustes intervinientes, y la
       cantidad que el reloj está desviado actualmente de la hora verdadera.

       Se arrastra una pequeña cantidad de error en cualquier momento en que hwclock pone el reloj en  hora,  de
       forma  que  rehúsa  hacer  un  ajuste que vaya a ser de menos de 1 segundo. Más tarde, cuando Ud. pida un
       ajuste de nuevo, la desviación acumulada será de más de un segundo y hwclock hará el ajuste entonces.

       Es bueno hacer un hwclock --adjust justo antes del hwclock --hctosys en la hora del arranque del sistema,
       y quizás periódicamente mientras que el sistema está ejecutándose, mediante cron.

       El formato del fichero adjtime es:

       Línea  1:  3  números: 1) velocidad de desviación sistemática en segundos por día, número en base diez en
       coma flotante; 2) número resultante de segundos desde 1969 UTC del más  reciente  ajuste  o  calibración,
       entero en base diez; 3) cero (por compatibilidad con clock ).

       Línea 2: 1 número: El número resultante de segundos desde 1969 UTC de la calibración más reciente.

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

FICHEROS

       /etc/adjtime

VÉASE TAMBIÉN

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

AUTORES

       Escrito  por  Bryan  Henderson,  en Septiembre de 1996 (bryanh@giraffe-data.com), basándose en el trabajo
       hecho en el programa clock de Charles Hedrick, Rob Hooft y Harald König.  Mire el código fuente  para  la
       historia completa y los créditos.

                                                  2 Marzo 1998                                        HWCLOCK(8)