Power Management: Difference between revisions
imported>Lelgenio Add workaround for systems that immediatly wakeup after beign suspended |
imported>Skylark Drop a redlink, add See also: Laptop which overlaps with this article |
||
Line 13: | Line 13: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
It is also possible | It is also possible to use the <code>post-resume</code> target directly to make a service. | ||
<syntaxhighlight lang="nix"> | <syntaxhighlight lang="nix"> | ||
Line 30: | Line 29: | ||
=== Troubleshooting === | === Troubleshooting === | ||
==== System | ==== System immediately wakes up from suspend ==== | ||
Particularly in some | Particularly in some Gigabyte motherboards with NVMe drives, the system may immediately wake up from being suspended. | ||
This can be worked around by disabling the wakeup triggers for the offending components: | This can be worked around by disabling the wakeup triggers for the offending components: | ||
===== Solution 1: Disabling wakeup triggers for all PCIe devices ===== | ===== Solution 1: Disabling wakeup triggers for all PCIe devices ===== | ||
If you don't need your system to wakeup via PCIe components you can simply disable it for all without needing to | If you don't need your system to wakeup via PCIe components you can simply disable it for all without needing to determine which component is causing problems. | ||
<syntaxhighlight lang="nix"> | <syntaxhighlight lang="nix"> | ||
Line 45: | Line 44: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
===== Solution 2: | ===== Solution 2: Disable a common NVMe interface ===== | ||
Specifically on Gigabyte motherboards you can try targetting only the NVMe ports. | Specifically on Gigabyte motherboards you can try targetting only the NVMe ports. | ||
Line 55: | Line 54: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
===== Solution 3: | ===== Solution 3: Disable a single device's wakeup triggers ===== | ||
If you wish to be more granular in what components should no longer be able to wakeup your system you can | If you wish to be more granular in what components should no longer be able to wakeup your system, you can find out which component is causing the wakeup events. | ||
First, list all components and their current wakeup status: | First, list all components and their current wakeup status: | ||
Line 72: | Line 71: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
You can temporarily toggle a device by | You can temporarily toggle a device by writing its "Device" name back into <code>/proc/acpi/wakeup</code> | ||
<syntaxhighlight lang="sh"> | <syntaxhighlight lang="sh"> | ||
Line 87: | Line 86: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
And finally use those values in a udev rule: | And finally use those values in a <code>udev</code> rule: | ||
<syntaxhighlight lang="nix"> | <syntaxhighlight lang="nix"> | ||
Line 94: | Line 93: | ||
''; | ''; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== See also == | |||
* [[Laptop]] | |||
== External resources == | == External resources == | ||
* {{manual:nixos|sec=#sec-rebooting|chapter=Chapter 23. Rebooting and Shutting Down}} | * {{manual:nixos|sec=#sec-rebooting|chapter=Chapter 23. Rebooting and Shutting Down}} |