Fix Suspend Breaking Immediately
Testing "Fix"
I was using a gigabyte b550i aorus motherboard that caused this, if you have this mobo or a variant you have to disable GPP0 wakeup which is a GPP bridge to the NVMe drive in M.2 slot.
Check your wakeup table using cat /proc/acpi/wakeup and look at GPP0. It should say *enabled. Using sudo /bin/sh -c '/bin/echo GPP0 > /proc/acpi/wakeup' you can set it to *disabled. PC should suspend normally then.
If it does then you can use a systemd (if you use it) service to run that command at boot.
I use this and it works.
[Unit]
Description=Fix for the suspend issue
[Service]
Type=oneshot
ExecStart=/bin/sh -c "echo GPP0 > /proc/acpi/wakeup"
[Install]
WantedBy=multi-user.target
Creating Service to Start on Boot
Your .service file should look like this:
[Unit]
Description=Fix for the suspend issue
[Service]
Type=oneshot
ExecStart=/bin/sh -c "echo GPP0 > /proc/acpi/wakeup"
[Install]
WantedBy=multi-user.target
Now, take a few more steps to enable and use the .service file:
-
Place it in
/etc/systemd/systemfolder with a name likedisableGPP0startup.service -
Start it:
sudo systemctl start disableGPP0startup.service -
Enable it to run at boot:
sudo systemctl enable disableGPP0startup.service