[ltp] X40: APM hibernate broken by kernel upgrade to 2.6.15

Norman Ramsey linux-thinkpad@linux-thinkpad.org
Wed, 24 May 2006 12:25:50 -0400


 > > I have an X40 that I've just upgraded from an old Emperor Linux kernel
 > > to a 2.6.15 kernel from the Debian project.  This upgrade fixed what I
 > > needed it to fix (ALSA instead of OSS), but in the process, APM
 > > hibernation has broken.
 > > 
 > > Symptoms:
 > > 
 > >   * Suspend to RAM with Fn-F4 works fine; the kernel detects the APM
 > >     event and runs suitable scripts (which unload and reload USB
 > >     drivers).  Resume from this state also works fine.
 > > 
 > >   * Suspend to disk with Fn-F12 does not work:
 > >       - The APM event scripts are not run.
 > >       - The display blanks and the 'crescent moon' light flashes,
 > >         but there is only brief disk activity.  (Normally the disk
 > >         runs for several minutes, because it takes a long time to
 > >         write a 1.5GB image.
 > 
 > Is APM detected by the kernel? (dmesg output)?

Yes; here is the dmesg output (I have the apm module listed in /etc/modules):

  IBM machine detected. Enabling interrupts during APM calls.
  apm: BIOS version 1.2 Flags 0x03 (Driver version 1.16ac)

 > If not, is the APM driver in the kernel? Since it's a modularized
 > Debian kernel, you should check if the apm modile is loaded:
 > 
 > lsmod | grep apm

Also yes:

  : nr@toller 10956 ; lsmod | grep apm
  apm                    18924  2 


And here is a funny thing: last night I used Fn-F4 to put the machine
in sleep mode (since it will not hibernate).  But then, during the
night, it went into hibernation (as it normally does after sleeping
for an hour) and today it came out correctly.  So the hibernation
function does work, just not with Fn-F12.  And it's clear that the
Fn-F12 event is not being delivered to apmd as expected.  Here's
what's running:

  : nr@toller 10959 ; ps ax | grep apm 
   5205 ?        S      0:00 [kapmd]
   5958 ?        Ss     0:00 /usr/sbin/apmd -P /etc/apm/apmd_proxy --proxy-timeout 30


Any other suggestions warmly appreciated.


Norman