kevin diggs <diggskevi...@gmail.com> writes: > [root@PowerMac8600B root]# hwclock --debug > hwclock from util-linux-2.12pre > Using /dev/rtc interface to clock. > Last drift adjustment done at 1317444443 seconds after 1969 > Last calibration done at 1317444443 seconds after 1969 > Hardware clock is on local time > Assuming hardware clock is kept in local time. > Waiting for clock tick... > /dev/rtc does not have interrupt functions. Waiting in loop for time > from /dev/rtc to change > RTC_RD_TIME: Invalid argument
Perhaps the RTC was reset due to battery running out? That would set the year to 1900, but the kernel RTC interface cannot represent dates before 1970. Unfortunately hwclock insists on reading the RTC even when you just want to write to it, so you cannot fix that with hwclock -w. When the battery of my iBook has run out I'm using the following to reset RTC to current time so that it is usable again. Andreas. #include <time.h> #include <fcntl.h> #include <sys/ioctl.h> #include <linux/rtc.h> int main (void) { time_t now; struct tm gmt; struct rtc_time rtc; int fd; now = time (0); gmt = *gmtime (&now); rtc.tm_sec = gmt.tm_sec; rtc.tm_min = gmt.tm_min; rtc.tm_hour = gmt.tm_hour; rtc.tm_mday = gmt.tm_mday; rtc.tm_mon = gmt.tm_mon; rtc.tm_year = gmt.tm_year; rtc.tm_wday = gmt.tm_wday; rtc.tm_yday = gmt.tm_yday; rtc.tm_isdst = gmt.tm_isdst; fd = open ("/dev/rtc", O_RDONLY); if (fd < 0) fd = open ("/dev/rtc0", O_RDONLY); if (fd < 0) { perror ("/dev/rtc"); return 1; } if (ioctl (fd, RTC_SET_TIME, &rtc) < 0) { perror ("RTC_SET_TIME"); return 1; } return 0; } -- Andreas Schwab, sch...@linux-m68k.org GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different." _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev