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 🙃)

  • @cerement@slrpnk.net
    link
    fedilink
    410 months ago

    recently switched from Nvidia to AMD graphics card and now my desktop won’t go to sleep – I haven’t had any luck on a fix yet, but I stumbled across How To Suspend Pop!_OS in the process which described the same steps of working through /proc/acpi/wakeup and showed how to make the fix permanent if you’re working with systemd

    • @shaked_coffeeOP
      link
      110 months ago

      Thank you! I’ll check it out and see if I can turn it into a permanent fix

  • @burtek@programming.dev
    link
    fedilink
    410 months ago

    Have same issue with my LMDE, so interested in what answers you’ll receive here cause it might be something similar on my side

  • Pat
    link
    fedilink
    310 months ago

    Having a similar problem on endeavour os. When I try to sleep or hibernate it gives it a shot but I get a quick flash of a message about a device preventing sleep. Nothing plugged into the laptop, no fancy built in accessories.

    • Frater Mus
      link
      fedilink
      110 months ago

      I get a quick flash of a message about a device preventing sleep

      In my case it was the NIC. Not using it so I disabled it in BIOS and sleep started working again.

  • @treadful@lemmy.zip
    link
    fedilink
    English
    310 months ago

    I would also love to know if this is logged somewhere to be able to narrow it down. One of my Arch installs keeps waking up and killing the battery and shutting off overnight. Been pretty frustrating.

    • @shaked_coffeeOP
      link
      English
      110 months ago

      I’ve tried to look at kernel logs opening journalctl -f or sudo dmsg -H -W before suspending the system but I’m not an expert and I didn’t found anything weird to me. It just seems that immediately after the sleep state was reached I asked the system to wake up

      • @treadful@lemmy.zip
        link
        fedilink
        English
        110 months ago

        If there was anything relevant, it would be logged during waking up, not before suspending. Mine doesn’t wake as immediate as yours, but the cause might be the same.