Comment 50 for bug 43745

Revision history for this message
Konstantin Isakov (dragonroot) wrote : The solution to resume the clock

Stumbled upon the same problem. I have a Sony Vaio SZ250P notebook. Something ugly happened (sky2 ethernet fault?), got a kernel panic, and after reboot I started to have that 'select() to /dev/rtc to wait for clock tick timed out' messages, which were persistent across reboots. After a bit of investigating, I found out that my RTC clock had just stopped counting -- it had frozen on some particular time moment and just was not updating anymore. Removing the battery from the notebook wasn't helpful -- it seemed like these notebooks had a separate coin-cell battery inside. Since the device was on warranty and I was too lazy to get myself to service and had the device opened and battery removed there, I started to tinker with the RTC clock CMOS registers, and finally found a way to resume the clock from software, without any physical intervention. The RTC has a 'disable update' bit -- it is sufficient to set it first, and then to clear it again. I'm attaching a simple C program that does just that. Compile it with 'gcc rtc-resume.c -o rtc-resume', and then run './rtc-resume' as root. Hope this helps.

Still no understanding on why that happened, but at least a simple way to fix it when it happens.