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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
Jun 9 23:06:04 thrall kernel: [ 0.162246] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S2_] (20150204/hwxface-580) Jun 9 23:06:04 thrall kernel: [ 1.154306] ACPI Error: [DSSP] Namespace lookup failure, AE_NOT_FOUND (20150204/psargs-359) Jun 9 23:06:04 thrall kernel: [ 1.154314] ACPI Error: Method parse/execution failed [\_SB_.PCI0.SAT0.SPT1._GTF] (Node ffff8802160bc478), AE_NOT_FOUND (20150204/psparse-536) Jun 9 23:06:04 thrall kernel: [ 1.154820] ACPI Error: [DSSP] Namespace lookup failure, AE_NOT_FOUND (20150204/psargs-359) Jun 9 23:06:04 thrall kernel: [ 1.154828] ACPI Error: Method parse/execution failed [\_SB_.PCI0.SAT0.SPT2._GTF] (Node ffff8802160bc400), AE_NOT_FOUND (20150204/psparse-536) Jun 9 23:06:04 thrall kernel: [ 1.155221] ACPI Error: [DSSP] Namespace lookup failure, AE_NOT_FOUND (20150204/psargs-359) Jun 9 23:06:04 thrall kernel: [ 1.155229] ACPI Error: Method parse/execution failed [\_SB_.PCI0.SAT0.SPT1._GTF] (Node ffff8802160bc478), AE_NOT_FOUND (20150204/psparse-536) Jun 9 23:06:04 thrall kernel: [ 1.156398] ACPI Error: [DSSP] Namespace lookup failure, AE_NOT_FOUND (20150204/psargs-359) Jun 9 23:06:04 thrall kernel: [ 1.156406] ACPI Error: Method parse/execution failed [\_SB_.PCI0.SAT0.SPT2._GTF] (Node ffff8802160bc400), AE_NOT_FOUND (20150204/psparse-536) Jun 9 23:06:04 thrall kernel: [ 1.161873] ACPI Error: [DSSP] Namespace lookup failure, AE_NOT_FOUND (20150204/psargs-359) Jun 9 23:06:04 thrall kernel: [ 1.161881] ACPI Error: Method parse/execution failed [\_SB_.PCI0.SAT0.SPT3._GTF] (Node ffff8802160bc388), AE_NOT_FOUND (20150204/psparse-536) Jun 9 23:06:04 thrall kernel: [ 1.165882] ACPI Error: [DSSP] Namespace lookup failure, AE_NOT_FOUND (20150204/psargs-359) Jun 9 23:06:04 thrall kernel: [ 1.165891] ACPI Error: Method parse/execution failed [\_SB_.PCI0.SAT0.SPT3._GTF] (Node ffff8802160bc388), AE_NOT_FOUND (20150204/psparse-536) Jun 9 23:06:04 thrall kernel: [ 1.184009] ACPI Error: [DSSP] Namespace lookup failure, AE_NOT_FOUND (20150204/psargs-359) Jun 9 23:06:04 thrall kernel: [ 1.184017] ACPI Error: Method parse/execution failed [\_SB_.PCI0.SAT0.SPT0._GTF] (Node ffff8802160bc4f0), AE_NOT_FOUND (20150204/psparse-536) Jun 9 23:06:04 thrall kernel: [ 1.213989] ACPI Error: [DSSP] Namespace lookup failure, AE_NOT_FOUND (20150204/psargs-359) Jun 9 23:06:04 thrall kernel: [ 1.213997] ACPI Error: Method parse/execution failed [\_SB_.PCI0.SAT0.SPT0._GTF] (Node ffff8802160bc4f0), AE_NOT_FOUND (20150204/psparse-536) |
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:
1 |
GRUB_CMDLINE_LINUX_DEFAULT="libata.noacpi=1" |
Then regenerate grub config by running update-grub.
After a reboot I checked my ACPI related error message:
1 |
Jun 9 23:26:00 thrall kernel: [ 0.170951] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S2_] (20150204/hwxface-580) |
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:
1 |
dmesg | grep AE_NOT_FOUND |
If you see lines looking like this:
1 |
ACPI Error: [RAMB] Namespace lookup failure, AE_NOT_FOUND (20110112/psargs-359) |
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:
1 |
sudo aptitude install linux-image-3.2.0-rc7-amd64 build-essential |
Download and extract 3.2.1 kernel sources:
1 |
wget ftp://ftp.kernel.org/pub/linux/kernel/v3.x/linux-3.2.1.tar.bz2 |
1 |
tar xvjf linux-3.2.1.tar.bz2 |
Download the patch attached to this blog post, and apply it:
1 |
cd linux-3.2.1 |
1 |
patch -d drivers -p0 < /tmp/ACPICA_Fix_to_allow_region_arguments_to_reference_other_scopes.patch |
Copy debian’s 3.2 kernel config:
1 |
cp /boot/config-3.2.0-rc7-amd64 .config |
Start building…. (Use -j N, N = number of CPU cores)
1 |
make -j 4 |
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:
1 |
make modules_install |
1 |
make install |
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.