Package: linux-2.6
Version: 3.2.4-1
Subject: rtc no longer available under linux 3.2.4-1
I have an asus eeePC 900. lshw reports it as:
description: Notebook
product: 900 (90OAM09AB5312111U205Q)
vendor: ASUSTeK Computer INC.
version: 0704
When it wakes from sleep under 3.2.4-1, the system's clock is off by
days, which caused me to look into the real-time clock. Apparently
something changed between 3.2.1-1 and 3.2.4-1.
When i booted it with 3.2.1-1, the kernel would record the following info about
the rtc:
[ 1.505626] rtc_cmos 00:03: RTC can wake from S4
[ 1.505886] rtc_cmos 00:03: rtc core: registered rtc_cmos as rtc0
[ 1.505999] rtc0: alarms up to one month, 114 bytes nvram, hpet irqs
[ 1.517779] rtc_cmos 00:03: setting system clock to 2012-01-22 18:22:12 UTC (1327256532)
Booting it with 3.2.4-1, i see this info instead:
[ 1.503620] rtc_cmos 00:03: RTC can wake from S4
[ 1.503887] rtc_cmos 00:03: rtc core: registered rtc_cmos as rtc0
[ 1.503980] rtc_cmos 00:03: only 24-hr supported
[ 1.515880] /build/buildd-linux-2.6_3.2.4-1-i386-61WrTr/linux-2.6-3.2.4/debian/build/source_i386_none/drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
Also, trying to talk to the hardware clock now gives me:
0 pip:~# hwclock --show --debug
hwclock from util-linux 2.20.1
hwclock: Open of /dev/rtc failed: No such file or directory
No usable clock interface found.
hwclock: Cannot access the Hardware Clock via any known method.
70 pip:~#
Whereas before it would report as expected.
looking for the cause of the change, i see that:
https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.2
suggests there's been a change in the rtc code:
-------------
commit 36a8176166397d103352670327e1b20d334b5c7d
Author: Ben Hutchings <ben@decadent.org.uk>
Date: Tue Jan 10 15:11:02 2012 -0800
drivers/rtc/interface.c: fix alarm rollover when day or month is out-of-range
commit e74a8f2edb92cb690b467cea0ab652c509e9f624 upstream.
Commit f44f7f96a20a ("RTC: Initialize kernel state from RTC") introduced a
potential infinite loop. If an alarm time contains a wildcard month and
an invalid day (> 31), or a wildcard year and an invalid month (>= 12),
the loop searching for the next matching date will never terminate. Treat
the invalid values as wildcards.
Fixes <http://bugs.debian.org/646429>, <http://bugs.debian.org/653331>
-------------
however, /usr/share/doc/linux-image-3.2.0-1-686-pae/changelog.Debian.gz
suggests that 3.1.8-1 had already introduced the same change by bwh:
* rtc: Fix alarm rollover when day or month is out-of-range (Closes: #646429)
So i'm not sure what to make of the situation, but i'm happy to provide
any additional debugging info that would be useful.
Regards,
--dkg
Attachment:
pgp7guqctkmlS.pgp
Description: PGP signature