readclock - read the AT's real time clock

     readclock [-bcnw]

     Readclock reads the AT's real time clock and sets the machine's time.  It
     is  usually  the second thing done in /etc/rc, the first thing is setting
     the time zone by sourcing /etc/timeinfo.  This means that  the  clock  is
     assumed to tell the wall clock time.  If you want to run the clock in GMT
     then you can set  the  TZ  boot  environment  variable  to  GMT  to  tell
     readclock  the  time  zone  the  hardware clock is running in.  Any other
     timezone is possible too, so you can run the clock  in  winter  time  for

     /etc/timeinfo is also the place where readclock looks for information  on
     how  to  calibrate a badly running clock.  This information consists of a
     base and two offsets.  The base  is  the  time  the  internal  clock  was
     exactly  equal  to  wall  clock  time,  the first offset is the number of
     seconds the hardware clock has ticked since the last time it was correct,
     the  second offset is the number of seconds it should have ticked.  These
     offsets are used to compute the clock gain or loss since the base time.


     -b   Rebase.  The hardware clock has been adjusted to the  current  time,
          so  a  new  base  needs  to  be used.  Before doing this or the next
          option, first set the time of the system using date(1), or stime(1).

     -c   Calibrate.  The correction offsets must  be  recomputed.   Run  this
          just  now  and  then to recompute the calibration offsets.  The more
          time between this and the last rebase the better.

     -n   Play-act, don't set the time nor change the calibration  data,  just
          show what would be done.

     -w   Write the current time to the CMOS clock.  Dangerous, see BUGS.

     -W   Like -w, but also sets the status registers of  the  CMOS  clock  to
          their proper values.  (For if the clock suddenly runs at an odd pace
          or has stopped and the BIOS doesn't repair it.)

  How To Calibrate
     First set system time precisely with date or stime.  Then use the -w  and
     -b  options  to  set  the  hardware clock and the calibration base to the
     current time, like this:  readclock -bw.

     After a week or so when the clock's mistake  becomes  apparent,  set  the
     system  time  again  with  date  or  stime and run readclock -c.  You can
     repeat this every now and then to set the offsets more accurately.

     If after some time you want to set the hardware clock  right  again,  set
     system  time and rerun readclock -bw.  You don't need to run readclock -c
     anymore after this, the offsets are now known.


     /etc/timeinfo       Timezone and calibration data.

     date(1), utime(1), rdate(8).

     Reported to not work on some AT's.

     May mess up the clock royally when setting it (-w).  Only if you  have  a
     very  standard  AT and you are not afraid of having your CMOS setup reset
     to the default with a "checksum error" should you use  readclock  to  set
     the time of the CMOS clock.  You have been warned.

     The clock must be reliably wrong for the calibration to work.

     Kees J. Bot (