Valid HTML 4.01 Transitional
Prev: Flash your BIOS from Linux Next: NTP Won't Sync to Slow Clocksource
(Index)
Jim Carter's Bugfixes

Will Not Wake from Suspend to RAM or Disc

James F. Carter
2010-12-20
Symptom:

On an x86 or x86_64 machine you set the realtime clock (RTC) wakeup alarm by one of the usual means, namely:

You put the machine to sleep. But it does not wake at the appointed time.

What's going on:

In some BIOSes or motherboards there is a bad interaction between the High Precision Event Timer (HPET) and the realtime clock, which prevents interrupts from the latter, at least when it's configured by the UNIX HPET driver and then put in S3 or S4 state.

How to fix:

See the above wiki for a discussion of fixes. Basically you need to keep the Linux kernel from activating the HPET. This is done by adding to the kernel command line the option hpet=disable. The kernel command line is found, on a SuSE system, in /boot/grub/menu.lst . Other systems (I think Ubuntu is one) may call it grub.conf in some other directory. In this file look for the kernel line(s). The order of the options is unimportant except the filename of the kernel must come first.

It is also possible to experiment by using grub's interactive features to edit the kernel command line while booting.

After you reboot with the HPET disabled, your machine should be able to wake at the time set into the RTC wakeup alarm. There are several possible clocksources and the kernel will pick the best remaining one. However, the HPET is the best clocksource on the machine and it's a shame to not be able to use it. See the next bugfix for how to get NTP to sync with a substitute clocksource.


Prev: Flash your BIOS from Linux Next: NTP Won't Sync to Slow Clocksource
(Index)