UPDATE:
After some more testing, trying to disable one by one the entries on proc/acpi/wakeup
and comparing them with the output of lspci
, I think I found out that the problem is related with the PCIE components that idk why send a wake-up signal to the system every time it enters sleep mode.
As a temporary fix, I created a service that runs a script to disable those four lines every time I start / reboot the system, waiting for a proper fix in a future kernel update.
Here are the two files I created:
/etc/systemd/system/disable-PCIE-wakeup.service
:
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/local/bin/disable-PCIE-wakeup.sh
[Install]
WantedBy=multi-user.target
/usr/local/bin/disable-PCIE-wakeup.sh
:
#!/bin/sh
for i in $(cat /proc/acpi/wakeup | grep RP | grep enabled | grep S4 | awk '{print $1}');
do
echo $i > /proc/acpi/wakeup;
done
(and after creating those files, I enabled the new service with sudo systemctl enable disable-PCIE-wakeup.service
)
ORIGINAL POST:
Some time ago I posted on Fedora Discussion because my Fedora system (MSI Summit e16 flip running Fedora 38) started having problems with sleep mode after a kernel update (actually, starting from kernel 6.3.x and with all later versions).
Unfortunately I didn't receive that many replies there, so I tried to troubleshoot by myself and I found out that what's causing this problem is probably an internal device of the laptop that is supposed to be used to wake up the laptop from sleep (like the touchpad or the fingerprint reader? idk) and that instead is misfunctioning and waking it up immediately after it reached the sleep state.
I'm saying so because I tried to temporarily disable all the lines in /proc/acpi/wakeup
using this simple script below that I found somewhere online and, after doing that until the next time I reboot, the laptop stays asleep as expected.
So now my question is: how do I isolate which device is causing the problem? And how can I permanently fix this issue? I suspect that the problematic device could be the fingerprint reader since it was unsupported up until Fedora 38 and doesn't still work properly since it keeps forgetting the fingerprints I add... is there a way for me to disable it completely and try to see if it fixes the issue?
(I’m not sure about if this is the proper place to ask questions like this, or if I should report this issue somewhere else, since it seems more a kernel issue. Recommendations about better place to ask it are welcomed 🙃)
In my case it was the NIC. Not using it so I disabled it in BIOS and sleep started working again.