CMOS checksums (was: Re: SC520 and reboot )

From: Barry Bouwsma <freebsd-misuser_at_remove-NOSPAM-to-reply.NOSPAM.dyndns.dk>
Date: Tue, 23 Dec 2003 01:04:19 +0100 (CET)
[Drop my IPv6 address for any replies or hostname-only for IPv4...]


Bruce Evans <bde_at_zeta.org.au> wrote...

> On Sat, 13 Dec 2003, Poul-Henning Kamp wrote:
> > If you run adjkerntz -a it fiddles the CMOS RTC clock and possibly the
> > "century" byte I think.  If your BIOS uses a checksum on the RTC and
> > adjkerntz doesn't know about it, your BIOS will think the contents is
> > trashed.

> Actually, adjkerntz -a uses the MI interface resettodr() to set the
> hardware clock, CMOS or otherwise.  This has the same tiny chance of

This sounds like what my latest found motherboard is suffering from.
It has two problems affecting shutdowns:
1)  Often, the CMOS checksum is claimed to be invalid at poweron, so my
    BIOS settings are lost, but not always;
2)  It appears to stop keeping time at poweroff, I think.  When I boot
    back up, ntpdate steps the time by an amount comparable to the time
    I had it off to swap cards or whatnot.

I had to replace the on-board lithium battery, otherwise I'd lose CMOS
checksums every time.

Ideally I'd rather never powerdown, but I'm wondering if it's possible
for FreeBSD to ignore the CMOS clock -- never updating it, either with
resettodr() (in sys/kern/kern_time.c that I've found; haven't done a
rigorous search yet) or any other call that jerks around the CMOS time,
so I can avoid, hopefully, the checksum errors that pop up now and then.

Meaning my CMOS time would remain 2008 or 1986 or whatever it's set
itself to randomly, or 2003/2004 but losing a few minutes each poweroff,
while the system time would be set at boot (ntpdate/ntpd) and remain
accurate.  There would be no correlation between the two, other than
that the CMOS time ticks so long as power is applied.

Is this possible, or am I going to break something, more than the
occasional CMOS checksum failures I get now?  Seems like I'd comment
out any resettodr() calls I find, and if anything else adjusts the
CMOS clock, I'd have to find and comment it out too.

Comments?

The motherboard seems of vintage 1994-1997-ish, intended for Pentiums of
roughly 75-150MHz speed.  It has other minor issues too, but seems to
work otherwise...


thanks
barry bouwsma
scrap computer collector
Received on Mon Dec 22 2003 - 15:05:00 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:35 UTC