{"id":24,"date":"2015-06-09T22:46:08","date_gmt":"2015-06-09T20:46:08","guid":{"rendered":"http:\/\/blog.le-vert.net\/?p=24"},"modified":"2015-06-09T22:47:05","modified_gmt":"2015-06-09T20:47:05","slug":"fixing-suspend-on-acpi-5-0-motherboards","status":"publish","type":"post","link":"https:\/\/blog.le-vert.net\/?p=24","title":{"rendered":"Fixing suspend on ACPI 5.0 motherboards"},"content":{"rendered":"<div class=\"twttr_buttons\"><div class=\"twttr_twitter\">\n\t\t\t\t\t<a href=\"http:\/\/twitter.com\/share?text=Fixing+suspend+on+ACPI+5.0+motherboards\" class=\"twitter-share-button\" data-via=\"\" data-hashtags=\"\"  data-size=\"default\" data-url=\"https:\/\/blog.le-vert.net\/?p=24\"  data-related=\"\" target=\"_blank\">Tweet<\/a>\n\t\t\t\t<\/div><\/div><p><strong>2015-06-09: Current state on Linux 4.0<\/strong><\/p>\n<p>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&#8230;<br \/>\nSo I decided to upgrade to kernel 4.0 and update motherboard BIOS to the latest release: no luck.<\/p>\n<p>While looking at Google about that issue I finally found out some information&#8230; right here, on my own blog. That was quite disappointing.<\/p>\n<p>I figured out I still had all these error message, just like 3 years ago:<\/p>\n<pre>Jun  9 23:06:04 thrall kernel: [    0.162246] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\\_S2_] (20150204\/hwxface-580)\r\nJun  9 23:06:04 thrall kernel: [    1.154306] ACPI Error: [DSSP] Namespace lookup failure, AE_NOT_FOUND (20150204\/psargs-359)\r\nJun  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)\r\nJun  9 23:06:04 thrall kernel: [    1.154820] ACPI Error: [DSSP] Namespace lookup failure, AE_NOT_FOUND (20150204\/psargs-359)\r\nJun  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)\r\nJun  9 23:06:04 thrall kernel: [    1.155221] ACPI Error: [DSSP] Namespace lookup failure, AE_NOT_FOUND (20150204\/psargs-359)\r\nJun  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)\r\nJun  9 23:06:04 thrall kernel: [    1.156398] ACPI Error: [DSSP] Namespace lookup failure, AE_NOT_FOUND (20150204\/psargs-359)\r\nJun  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)\r\nJun  9 23:06:04 thrall kernel: [    1.161873] ACPI Error: [DSSP] Namespace lookup failure, AE_NOT_FOUND (20150204\/psargs-359)\r\nJun  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)\r\nJun  9 23:06:04 thrall kernel: [    1.165882] ACPI Error: [DSSP] Namespace lookup failure, AE_NOT_FOUND (20150204\/psargs-359)\r\nJun  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)\r\nJun  9 23:06:04 thrall kernel: [    1.184009] ACPI Error: [DSSP] Namespace lookup failure, AE_NOT_FOUND (20150204\/psargs-359)\r\nJun  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)\r\nJun  9 23:06:04 thrall kernel: [    1.213989] ACPI Error: [DSSP] Namespace lookup failure, AE_NOT_FOUND (20150204\/psargs-359)\r\nJun  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)<\/pre>\n<p>So what happened with that patch fixing the issue in 2012 ? Does it got rejected ? Lost somewhere in some random git space ?<br \/>\nI checked the official git master branch and the fix was applied. The idea was good again, no luck.<\/p>\n<p>Finally, I figured out the issue was triggered by some (new?) ACPI\/SATA related stuff that were probably not existing in 2012.<\/p>\n<p>The proper fix is simply to <strong>boot your kernel with libata.noacpi=1<\/strong> and resume works again, YAY \\o\/<\/p>\n<p>To make it permanent on Debian, edit <strong>\/etc\/default\/grub<\/strong> and set the following line:<\/p>\n<pre>GRUB_CMDLINE_LINUX_DEFAULT=\"libata.noacpi=1\"<\/pre>\n<p>Then regenerate grub config by running <strong>update-grub<\/strong>.<\/p>\n<p>After a reboot I checked my ACPI related error message:<\/p>\n<pre>Jun  9 23:26:00 thrall kernel: [    0.170951] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\\_S2_] (20150204\/hwxface-580)<\/pre>\n<p>That&#8217;s a lot less and suspend seems to be reliable so far.<\/p>\n<hr\/>\n<p><strong>Original post from 2012<\/strong><\/p>\n<p>There&#8217;s a bunch of new motherboard coming which uses ACPI 5.0 however it&#8217;s not supported yet by Linux kernel.<\/p>\n<p>If you own a recent Asus motherboard (seems to append on P67, H67 &amp; Z68 chipset based series) and your computer suspend just fine but never wakes up, you may really love this post \ud83d\ude09<\/p>\n<p>Here we go, check if your is affected by this bug:<\/p>\n<pre>dmesg | grep AE_NOT_FOUND<\/pre>\n<p>If you see lines looking like this:<\/p>\n<pre>ACPI Error: [RAMB] Namespace lookup failure, AE_NOT_FOUND (20110112\/psargs-359)<\/pre>\n<p>Great, you should be able to fix your suspend issue !<\/p>\n<p>Next step is quite easy. We&#8217;re going to build latest 3.2.1 kernel patched with <a href=\"http:\/\/blog.le-vert.net\/wp-content\/uploads\/2012\/01\/ACPICA_Fix_to_allow_region_arguments_to_reference_other_scopes1.patch\">ACPICA_Fix_to_allow_region_arguments_to_reference_other_scopes<\/a>.<\/p>\n<p>Install latest 3.2 kernel from Debian and compilation tools:<\/p>\n<pre>sudo aptitude install linux-image-3.2.0-rc7-amd64 build-essential<\/pre>\n<p>Download and extract 3.2.1 kernel sources:<\/p>\n<pre>wget ftp:\/\/ftp.kernel.org\/pub\/linux\/kernel\/v3.x\/linux-3.2.1.tar.bz2<\/pre>\n<pre>tar xvjf linux-3.2.1.tar.bz2<\/pre>\n<p>Download the patch attached to this blog post, and apply it:<\/p>\n<pre>cd linux-3.2.1<\/pre>\n<pre>patch -d drivers -p0 &lt; \/tmp\/ACPICA_Fix_to_allow_region_arguments_to_reference_other_scopes.patch<\/pre>\n<p>Copy debian&#8217;s 3.2 kernel config:<\/p>\n<pre>cp \/boot\/config-3.2.0-rc7-amd64 .config<\/pre>\n<p>Start building&#8230;. (Use -j N, N = number of CPU cores)<\/p>\n<pre>make -j 4<\/pre>\n<p>It will ask for a few new config options (drivers added between 3.2.0-rc7 and 3.2.1), just accept default settings.<\/p>\n<p>Install new kernel:<\/p>\n<pre>make modules_install<\/pre>\n<pre>make install<\/pre>\n<p>On my system, the initrd has been updated automatically using the debian way. Despite it&#8217;s 100Mb (??), it works as excepted.<\/p>\n<p>After rebooting on this new kernel, you should be able to suspend and resume sucessfully.<\/p>\n<p>References:<br \/>\n<a title=\"GIT commit in linux-next\" href=\"http:\/\/git.kernel.org\/?p=linux\/kernel\/git\/next\/linux-next.git;a=commit;h=f2b19261fb47d2512eb5b8ddfc6d2c410d3cb598\">GIT commit in linux-next<\/a><br \/>\n<a title=\"ArchLinux forum topic who gave me the right fix\" href=\"https:\/\/bbs.archlinux.org\/viewtopic.php?id=117643&amp;p=2\">ArchLinux forum topic who gave me the right fix<\/a><br \/>\n<a title=\"ACPI devel mailing list archive\" href=\"http:\/\/thread.gmane.org\/gmane.linux.acpi.devel\/51405\/focus=51407\">ACPI devel mailing list archive<\/a><\/p>\n<p>Known motherboard affected by this bug:<br \/>\nAsus P8Z68-V LX<br \/>\nAsus P8Z68-V LE<br \/>\nAsus P8H67<\/p>\n<p>Future:<br \/>\nAccording 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.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>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&#8230; So I decided to upgrade to kernel 4.0 and &hellip; <a href=\"https:\/\/blog.le-vert.net\/?p=24\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/blog.le-vert.net\/index.php?rest_route=\/wp\/v2\/posts\/24"}],"collection":[{"href":"https:\/\/blog.le-vert.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.le-vert.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.le-vert.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.le-vert.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=24"}],"version-history":[{"count":14,"href":"https:\/\/blog.le-vert.net\/index.php?rest_route=\/wp\/v2\/posts\/24\/revisions"}],"predecessor-version":[{"id":128,"href":"https:\/\/blog.le-vert.net\/index.php?rest_route=\/wp\/v2\/posts\/24\/revisions\/128"}],"wp:attachment":[{"href":"https:\/\/blog.le-vert.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=24"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.le-vert.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=24"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.le-vert.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=24"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}