Fixing suspend on ACPI 5.0 motherboards

2015-06-09: Current state on Linux 4.0

Today I got really pissed of to see than mw Debian testing machine was still unable to resume correctly from suspend out of the box…
So I decided to upgrade to kernel 4.0 and update motherboard BIOS to the latest release: no luck.

While looking at Google about that issue I finally found out some information… right here, on my own blog. That was quite disappointing.

I figured out I still had all these error message, just like 3 years ago:

So what happened with that patch fixing the issue in 2012 ? Does it got rejected ? Lost somewhere in some random git space ?
I checked the official git master branch and the fix was applied. The idea was good again, no luck.

Finally, I figured out the issue was triggered by some (new?) ACPI/SATA related stuff that were probably not existing in 2012.

The proper fix is simply to boot your kernel with libata.noacpi=1 and resume works again, YAY \o/

To make it permanent on Debian, edit /etc/default/grub and set the following line:

Then regenerate grub config by running update-grub.

After a reboot I checked my ACPI related error message:

That’s a lot less and suspend seems to be reliable so far.


Original post from 2012

There’s a bunch of new motherboard coming which uses ACPI 5.0 however it’s not supported yet by Linux kernel.

If you own a recent Asus motherboard (seems to append on P67, H67 & Z68 chipset based series) and your computer suspend just fine but never wakes up, you may really love this post ๐Ÿ˜‰

Here we go, check if your is affected by this bug:

If you see lines looking like this:

Great, you should be able to fix your suspend issue !

Next step is quite easy. We’re going to build latest 3.2.1 kernel patched with ACPICA_Fix_to_allow_region_arguments_to_reference_other_scopes.

Install latest 3.2 kernel from Debian and compilation tools:

Download and extract 3.2.1 kernel sources:

Download the patch attached to this blog post, and apply it:

Copy debian’s 3.2 kernel config:

Start building…. (Use -j N, N = number of CPU cores)

It will ask for a few new config options (drivers added between 3.2.0-rc7 and 3.2.1), just accept default settings.

Install new kernel:

On my system, the initrd has been updated automatically using the debian way. Despite it’s 100Mb (??), it works as excepted.

After rebooting on this new kernel, you should be able to suspend and resume sucessfully.

References:
GIT commit in linux-next
ArchLinux forum topic who gave me the right fix
ACPI devel mailing list archive

Known motherboard affected by this bug:
Asus P8Z68-V LX
Asus P8Z68-V LE
Asus P8H67

Future:
According to a co-worker (kernel developper), the patch has been committed to linux-next GIT repository, so it should be integrated to official kernel release starting on version 3.4.

7 thoughts on “Fixing suspend on ACPI 5.0 motherboards

  1. Hi, I ve looked low and high for a solution to this problem, Before trying your solution, I have a few questions / comments:

    In the start you have a typo – not dmeg but dmesg

    Next. I do actually grep the AE_NOT_FOUND but it’s not related to any RAMB stuff. What I get is
    [ 0.308757] pci0000:00: ACPI _OSC request failed (AE_NOT_FOUND), returned control mask: 0x1d

    Question is whether grep’ing anything indicates the resume problem or it has to be exactly what you mention. Please clarify that.

    Also you mention some motherboard by name. How do I find my motherboard name?

    Next question, if it makes sense to continue, how will upgrading the kernel manually affect my future package updating. Currently my kernel is 3.0.0-14-generic (A bit old I guess)

    Keep on the good work helping all us who haven’t the experience and time to figure out everything our selves.

  2. Typo fixed.

    I just found my own error message in old kernel logs:
    Jan 14 04:05:25 thrall kernel: [ 0.502152] ACPI Error: [RAMB] Namespace lookup failure, AE_NOT_FOUND (20110623/psargs-359)
    Jan 14 04:05:25 thrall kernel: [ 0.502333] ACPI Exception: AE_NOT_FOUND, Could not execute arguments for [RAMW] (Region) (20110623/nsinit-349)

    I’m not a kernel developper, I can’t clarify anything. All people for whom the patch fixed suspend issue were having such error messages (gone after patching), that’s all I can send.

    Motherboard name is written on it. You’re supposed to know what motherboard you own ๐Ÿ˜€

    It won’t hurt your package manager but this kernel will not be handle by it. This means, in example, it won’t get security updates. I think it’s hamrless, unless you plan to use external kernel modules that may not be able to find this kernel sources (probably need to add something like “make install headers” when installing) or even may not be compatible with a such recent kernel.

    Btw, I just read a news on phoronix:
    http://www.phoronix.com/scan.php?page=news_item&px=MTA0NDE

    It seems the set of ACPI 5.0 patch will be integrated into incoming kernel release (3.3). So you may just relax and wait for your distro to release an updated package using linux 3.3 (won’t be released until several months).

  3. Hi!
    My kernel is 3.0.0-15-generic-pae.
    if I try sudo aptitude, the following message appears.

    sudo: aptitude: command not found

    What’s the next step?

  4. Hi,

    iยดm using the Asus PZ68 V-LX with openSuse 12.2 / Kernel is 3.4.6-2.10.
    I still get those errors:

    [ 1.085504] ACPI Error: [DSSP] Namespace lookup failure, AE_NOT_FOUND (20120320/psargs-359)
    [ 1.085513] ACPI Error: Method parse/execution failed [\_SB_.PCI0.SAT0.SPT2._GTF] (Node ffff880213c911a0), AE_NOT_FOUND (20120320/psparse-536)
    [ 1.089880] ACPI Error: [DSSP] Namespace lookup failure, AE_NOT_FOUND (20120320/psargs-359)
    [ 1.089889] ACPI Error: Method parse/execution failed [\_SB_.PCI0.SAT0.SPT2._GTF] (Node ffff880213c911a0), AE_NOT_FOUND (20120320/psparse-536)
    [ 1.093280] ACPI Error: [DSSP] Namespace lookup failure, AE_NOT_FOUND (20120320/psargs-359)
    [ 1.093289] ACPI Error: Method parse/execution failed [\_SB_.PCI0.SAT0.SPT0._GTF] (Node ffff880213c91290), AE_NOT_FOUND (20120320/psparse-536)
    [ 1.103271] ACPI Error: [DSSP] Namespace lookup failure, AE_NOT_FOUND (20120320/psargs-359)
    [ 1.103280] ACPI Error: Method parse/execution failed [\_SB_.PCI0.SAT0.SPT0._GTF] (Node ffff880213c91290), AE_NOT_FOUND (20120320/psparse-536)

    So, the patch did not make it into an official release?

  5. Pingback: Ubuntu:How to configure motherboard to allow suspension – Ubuntu Linux Questions

  6. Thank you very much !
    GRUB_CMDLINE_LINUX_DEFAULT=”libata.noacpi=1″
    Working on Manjaro and Debian.

Leave a Reply to disposable_hero Cancel reply

Your email address will not be published. Required fields are marked *