Re: RTC-Clock misfunction on AS 400

From: Andries.Brouwer@cwi.nl
Date: Mon Mar 20 2000 - 08:59:36 EST


From: Ruediger Oertel <ro@suse.de>

> I don't really think it's userspace,
> cat /proc/rtc
> rtc_time : 10:13:02
> rtc_date : 2052-03-20
> rtc_epoch : 1952
> and this _is_ already wrong without using any userspace-tools but "cat".

Looks like your RTC has year=0 and rtc_init() concluded
epoch = 1952, while it should have left epoch as 1900.
Probably it would be much better if the kernel didnt try
to guess at all and left it to userspace (hwclock --setepoch)
to set the epoch. But if you want the kernel to guess, then
replacing

        if (year > 10 && year < 44) {
                epoch = 1980;
                guess = "ARC console";
        } else if (year < 96) {
                epoch = 1952;
                guess = "Digital UNIX";
        }

by

        if (year >= 20 && year < 48) {
                epoch = 1980;
                guess = "ARC console";
        } else if (year >= 48 && year < 100) {
                epoch = 1952;
                guess = "Digital UNIX";
        }

will work for a few years.

Andries

PS This is in linux/drivers/char/rtc.c



This archive was generated by hypermail 2b29 : Thu Mar 23 2000 - 21:00:42 EST