  En Hora mini-COMO
  Ron Bean, rbean@execp.com
  Traducido por Rodolfo Pilas, rodolfo@linux.org.uy

  Cmo configurar y mantener el reloj de su computadora en hora.
  ______________________________________________________________________

  ndice General:

  1.      Introduccin

  2.      Uso del programa clock

  2.1.    Revisin de su sistema

  2.2.    Clculo de las variaciones de su reloj

  2.3.    Ejemplo

  2.3.1.  Estableciendo la hora

  2.3.2.  Restablecimiento de la hora y clculo de la desviacin.

  2.3.3.  Clculo del factor de correccin

  3.      Algunas consideraciones sobre xntpd

  4.      Anexo: Grupos LiNUXeros en Espaa.
  ______________________________________________________________________

  1.  Introduccin

  Los chips de reloj-de-tiempo-real (real-time-clock) que son usados en
  las placas madres de los PC (y tambin en las costosas estaciones de
  trabajo) son notoriamente inexactos. Linux dispone de una forma simple
  de corregir esto por software, haciendo que el reloj sea
  potencialmente muy exacto sin necesidad de una fuente externa de
  confirmacin del tiempo.  Pero muchas personas no reparan en esto, por
  varias razones:

  1. No es mencionado en la mayora de la documentacin sobre "Cmo
     configurar Linux", y es bastante difcil de configurar
     automticamente en el momento de la instalacin (sin embargo, sera
     posible en teora, si se dispusiera de un mdem).

  2. Si revisa "man clock" ver clock(3), que no es lo que se quiere.
     (pruebe "man 8 clock").

  3. La mayora de las personas no prestan mucha atencin a la hora.

  4. Aquellos pocos que s lo hacen, buscan usar el paquete xntpd de
     http://louie.udel.edu para sincronizar con una fuente externa el
     reloj, como un servidor de hora de red o un radio-reloj.

  Este mini-COMO describe un acercamiento sencillo al tema. Si Usted
  est completamente interesado en esto, le recomiendo encarecidamente
  que invierta un tiempo en http://www.eecis.udel.edu/~ntp/ donde
  encontrar todo lo relativo a este interesante asunto, incluyendo
  informacin completa sobre xntpd y enlaces para NIST y USNO (hay ms
  comentarios sobre xntpd al finalizar).

  Nota:

       Si usa ms de un sistema operativo en su mquina, debe dejar
       que solamente uno de ellos corrija el reloj del CMOS, para
       evitar que uno se confunda con otro. Si regularmente corre
       Linux y Windows en la misma mquina, puede echar una mirada
       a algn programa de reloj shareware que este disponible para
       Windows (siga los enlaces del url indicado arriba).

  2.  Uso del programa clock

  Todo lo que necesita saber est en la pgina man de clock(8), y este
  mini-COMO lo guiar a travs del proceso.

  Nota:

       Debe ser root para ejecutar "clock", o cualquier otro pro
       grama que afecte la hora del sistema o el reloj del CMOS.

  2.1.  Revisin de su sistema

  Revise sus archivos de inicio del sistema buscando una lnea de
  comando semejante a "clock -a" o "clock -ua".  Dependiendo de la
  distribucin que est utilizando, puede estar en /etc/rc.local o en
  /etc/rc.d/rc.sysinit, /etc/rc.d/init.d o algn otro lugar similar.

  Si aparece como "clock -s" o "clock -us", cambie la "s" por una "a", y
  compruebe si tiene el archivo /etc/adjtime, que contiene una sola
  lnea semejante a esta:

       0.000000 842214901 0.000000

  Estos nmeros son el factor de correccin (en segundos por da), el
  momento que reloj fue corregido por ltima vez (en segundos desde
  Enero 1, 1970), y el momento (segundo) en que fue corregido por ltima
  vez.  Si no dispone de este archivo, entre en el sistema como root y
  crelo, con una nica lnea que como esta (todo en cero):

       0.0 0 0.0

  Ejecute "clock -a" o "clock -ua"  manualmente desde la lnea de
  comando para actualizar el segundo nmero (use la "u" si su reloj esta
  marcando la hora Universal en lugar el tiempo local).

  2.2.  Clculo de las variaciones de su reloj

  Primero, necesita saber qu hora es :-).  Su hora del da puede estar
  o no ajustada.  Mi mtodo favorito es llamar al servicio WWV al (303)
  499-7111 (es una llamada por voz).  Si dispone de acceso a un servidor
  de horario en la red, puede utilizar el programa ntpdate del paquete
  xntpd (utilice el parmetro -b para permitir que el kernel actualice
  el reloj del CMOS).  De lo contrario use date -s hh:mm:ss para poner
  en hora el reloj del kernel a mano, y entonces clock -w para el reloj
  del CMOS, tomando la hora del reloj del kernel.  Deber recordar
  cundo puso en hora el reloj por ltima vez, lo mejor es escribir la
  fecha en algn lugar donde no la pierda. Si utiliz ntpdate, con date
  +%s" puede registrar el nmero de segundos desde Enero 1, 1970.

  Entonces, vuelva algunos das o semanas despus para ver cunto se ha
  desviado su reloj.  Si puso la hora a mano, le recomiendo espere al
  menos dos semanas para poder calcular la desviacin lo ms aproximada
  a .1 seg/da.  Despus de algunos meses le ser posible determinarla
  con exactitud cercana a .01 seg/da (algunas personas prefieren ms
  exactitud an, pero yo ya soy conservador a estas alturas).  Si ha
  utilizado ntpdate no es necesario que espere tanto tiempo, pero
  siempre podr hacer un mejor ajuste cuanto ms tiempo pase.

  Puede ejecutar con cron el comando "clock -a" a intervalos regulares
  para mantener la hora del sistema ajustada con el horario (corregido)
  de la CMOS. Este comando puede ejecutarse tambin desde algn archivo
  de inicio en el momento del arranque, si Vd hace esto (como lo hacemos
  casi todos nosotros) ser suficiente para sus propsitos.

  Tenga en cuenta que algunos programas pueden quejarse si el sistema
  salta ms de un segundo a la vez, o si va para atrs. Si tiene este
  problema, puede utilizar xntpd o ntpdate para corregir el tiempo ms
  gradualmente.

  2.3.  Ejemplo

  2.3.1.  Estableciendo la hora

  Entre como root. Llame al (303) 499-711 (voz), escuche el anuncio de
  la hora y escriba:

       date -s hh:mm:ss

  pero no presione ENTER hasta no escuchar el beep (puede utilizar
  ntpdate aqu en lugar de date, y evitar la llamada por telfono.  Esto
  establece la hora del ncleo (kernel time).  Luego escriba:

       clock -w

  Esto pone en hora la CMOS a partir de la hora del ncleo. Y ahora
  escriba:

       date +%j

  (o date +%s si ha usado ntpdate en lugar de date arriba) y escriba el
  resultado, para la prxima vez.

  2.3.2.  Restablecimiento de la hora y clculo de la desviacin.

  Busque la fecha en que ajust la hora la vez anterior. Entre como root
  y escriba:

       clock -a

  Esto hace que el ncleo tome la hora de la CMOS. Llame al (303)
  499-7111 (voz) y escuche el anuncio. Entonces escriba:

       date

  Presionando ENTER en el momento que escuche el beep, pero mientras
  est esperando, apunte la hora que escucha y no cuelgue an.  Lo que
  escucha es la hora que debera tener su mquina cuando se encuentra
  exacta en el minuto. Escriba:

       date hh:mm:00

  usando el minuto siguiente al cual acaba de escuchar y presionando
  ENTER en el momento en que escuche el beep nuevamente (ahora puede
  colgar).  Para hh utilice su hora local.  Esto coloca la hora del
  ncleo (kernel time). Teclee:

       clock -w

  el cual establecer la nueva hora (correcta) en el reloj del CMOS.
  Escriba:

       date +%j

  (o date +%s si es lo que ha utilizado anteriormente)

  Ahora dispone de tres nmeros (dos fechas y un intervalo de tiempo)
  que le permitirn calcular el desvo horario.

  2.3.3.  Clculo del factor de correccin

  Cundo ejecut date en el minuto, su mquina iba atrasada o
  adelantada?  Si iba adelantada, deber descontar algunos segundos,
  aunque le resulte un nmero negativo.  Si estaba retrasada, deber
  agregar algunos segundos, aunque resulte un nmero positivo.

  Ahora reste ambas fechas.  Si us "date +%j" , el nmero representando
  el da del ao (1-365 o 1-366 en ao bisiesto). Si Usted ha pasado el
  1 de Enero entre la primera y segunda fecha entonces deber agregar
  365 (o 366) al segundo nmero.  Si us date +%s su nmero est en
  segundos y deber dividirlo por 86400 para obtener das.

  Si ya tiene un factor de correccin en /etc/adjtime, deber tomar en
  consideracin el nmero de segundos que ha corregido. Si ha corregido
  adelantando, este nmero tendr el signo opuesto al del que ha medido;
  si ha corregido atrasando tendr el mismo signo.  Multiplique el
  antiguo factor de correccin por el nmero de das, y aada el nmero
  de segundos resultante (adicin con signos - si ambos nmeros tienen
  el mismo signo: obtendr un nmero mayor; si tienen signos opuestos,
  obtendr un nmero menor).

  Divida el nmero total de segundos por el nmero de das para tener el
  nuevo factor de correccin, y colquelo en /etc/adjtime en lugar del
  anterior.  Registre la nueva fecha (en segundos o das) para la
  prxima vez.

  He aqu mi /etc/adjtime:

       -9.600000 845082716 -0.250655

  (Ntese que 9.6 segundos por da es aproximadamente cinco minutos al
  mes!)

  3.  Algunas consideraciones sobre xntpd

  Su sistema actualmente dispone de dos relojes - el alimentado por la
  batera reloj de tiempo real (real time clock) que mantiene la hora
  cuando el sistema est apagado (tambin conocido como el reloj de la
  CMOS (CMOS clock, Hardware clock o RTC) y la hora del ncleo (kernel
  time o tambin conocido como software clock o system clock)  que est
  basado en interrupciones de tiempo y que es inicializado con el reloj
  del CMOS en el momento del arranque. Ambos relojes pueden diferir en
  el tiempo que marcan, de hecho gradualmente difieren uno de otro a
  medida que pasa el tiempo, y tambin difieren de la "hora real".

  Todas las referencias al "reloj" (the clock) en la documentacin de
  xntpd se refieren a la hora del ncleo. Cuando ejecute xntpd o timed
  (o cualquier otro programa que ajusta la llamada del sistema de
  adjtimex), el ncleo de linux asume que la hora del ncleo es ms
  precisa que el reloj del CMOS, y ajusta el reloj del CMOS cada 11
  minutos (hasta que apague el sistema).

  Esto significa que clock no sabr ms cundo el reloj del CMOS fue
  ajustado por ltima vez, y no podr utilizar el factor de correccin
  en /etc/adjtime.  Puede usar ntpdate en su archivo de inicializacin
  para poner en hora el reloj desde un servidor de tiempo en red, antes
  de iniciar xntpd.  Si no dispone de una fuente de hora fiable de forma
  continua cuando arranque la mquina, puede ser algo complicado, ya que
  xntpd realmente no ha sido diseado para ser usado en situaciones como
  esta.

  xntpd incluye controladores para muchos radio relojes, y puede ser
  tambin puesto en hora llamando peridicamente al servicio telefnico
  NIST (asegrese de calcular el efecto en su cuenta telefnica cuando
  configure el intervalo entre llamadas). Esto tambin sirve para
  obtener el factor de correccin al reloj del ncleo si se pierde el
  contacto con las otras fuentes de ajuste por un perodo largo de
  tiempo.

  La mayora de los radio-reloj cuestan $3-4K, pero puede hacer planes
  para tener una "caja negra" (actualmente un mdem de 300 baudios) que
  est ubicada entre su computador y una radio de onda corta sintonizada
  en la estacin de tiempo CHU de Canad (vea
  ftp://ftp.udel.edu/pub.ntp.gadget.tar.Z).

  El receptor Heatkit WWV (el "reloj ms exacto") est an disponible
  (aunque no como kit), y cuesta alrededor de $4-500. La seal de los
  GPS tambin contiene informacin de la hora, y algunos receptores de
  GPS pueden ser conectados a un puerto serie.  Esto podra constituir
  una solucin de bajo costo en un futuro cercano.

  En teora, cualquiera puede escribir un programa para usar los
  servicios telefnicos de NIST, a fin de calcular la variacin de
  tiempo entre el reloj del CMOS y el del ncleo automticamente. No
  tengo noticia de ningn programa que haga esto por si slo, pero la
  mayora del cdigo podra obtenerse de xntpd.

  4.  Anexo: Grupos LiNUXeros en Espaa.

  Francisco Jos Montilla, pacopepe@iname.com, FidoNet 2:345/402.22 es
  coordinador del INSFLUG: (Impatient & Novatous Spanish Fidonet LiNUX
  Users Group) uno de los varios grupos de usuarios existentes en
  Espaa, y ms concretamente en la mejor ;-) rea de FidoNet: R34.LINUX
  junto con LuCas (LinUx en CAStellano).

  El INSFLUG se orienta preferentemente a la traduccin de documentos
  breves, como los COMOs y PUFs (-- Preguntas de Uso Frecuente, las
  FAQs. :)--) , etc.

  LuCas Coordina y realiza las traducciones de las guides, es decir,
  documentos ms extensos.

  Por supuesto, la orientacin de cada grupo no tiene carcter
  excluyente;  si quiere colaborar en las dos, mejor! ;-).

  Otra fuente de informacin obligada para el recin incorporado son las
  PUF elaboradas a partir del correo circulante por R34.LINUX por Pablo
  Gmez, pgomez@arrakis.es, 2:341/43.40, disponibles prximamente en los
  formatos habituales de documentacin (.ps, especificados ms adelante,
  as como en el mismo rea.

  Necesitamos su colaboracin para futuras traducciones! si quiere
  unirse a nosotros pngase en contacto con:

  INSFLUG: (Traduccin y autora de COMOs)

  Francisco Jos Montilla, pacopepe@iname.com, FidoNet 2:345/402.22

  LuCas:  (Traduccin y autora de guas)

  1. Juan Jos Amor, jjamor@ls.fi.upm.es, FidoNet 2:341/12.19

  2. Alfonso Belloso, alfon@bipv02.bi.ehu.es, FidoNet 2:344/17.2

  Por ltimo, recordar que un inmejorable lugar para estar informado,
  as como consultar y discutir todo lo relacionado con LiNUX lo tiene
  en FidoNet, en R34.LINUX.

  Actualmente, ambos grupos poseen las siguientes listas de correo:

    LuCas: lucas@bipv02.bi.ehu.es

    INSFLUG: insflug@nova.es

  Ambas son listas tipo majordomo; para suscribirse:

  enve un email a majordomo@nova.es, con "subscribe insflug" en el
  cuerpo del mensaje.

  En el caso de LuCAS sera a majordomo@infor.es, con "subscribe lucas"
  en el cuerpo del mensaje.

  Dispone de todos los ``COMOs'' traducidos hasta ahora, as como
  informacin puntual sobre el INSFLUG y temas relacionados en:

  http://www.insflug.nova.es en sus versiones html (-- Actualizacin
  lenta--) , y listas para bajar, en

  ftp://ftp.insflug.nova.es/es (-- Este es el lugar actualizado con ms
  frecuencia; en Sunsite y sus mirrors est replicado en el directorio

  ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/translations/es

  De todos modos, probablemente con su distribucin de Linux vengan
  incluidos.--)

  Otro buen punto de bsqueda, consulta, y obtencin de la documentacin
  traducida, en formato HTML, con links a los dems formatos, as como
  las traducciones de las guas traducidas por LuCAS es:

  http://www.infor.es/LuCAS/

  junto con su ftp:

  ftp://ftp.infor.es/pub/LuCAS/

  Tanto el INSFLUG, como LuCAS, y todos los traductores implicados,
  esperamos que esta traduccin le haya sido de utilidad.

