System crashes on Suspend/ScreenLock, cannot Hibernate

Hi! I’m new here. I’ve just installed OpenSuse Tumbleweed with Gnome on my Dell 7373 laptop (model 2017, Intel i5). This device cannot sleep/suspend - the screen goes black, the power button is on, the fan is on and nothing happens except you do the hard reset.

On Linux, this happens even if I do Super+L or Lock Screen from the menu.

On Windows the solution to these crashes was to hibernate, and with it the device was usable.

But there on Linux I cannot make it work, and I can’t make the device safe to use, either, because I can’t lock the screen or even turn it off. I figured out how to set the system to ignore it when I close the lid, but it doesn’t lock the screen that way.

Important thing: I need encryption and password login, so I encrypted my system upon installation with LUKS2. I know it’s easier to set up hibernation when there’s no encryption.

I used the instructions from The Linux Cast to install the system and configure it (zypper, snapshots, updates and such). Then I started with these two guides:
https://en.opensuse.org/SDB:Encrypted_root_file_system
https://doc.opensuse.org/documentation/tumbleweed/power/

At first, neither worked, but after some googling and trying I was able to figure out how to set up the root key for both partitions and now I only need to input the password once during the boot.

Hibernation doesn’t work though.

I have the /dev/mapper/cr_swap’s UUID mentioned in the bootloader in Yast, but there is some confusion between /dev/sda2 (the initial encrypted swap partition), the /dev/mapper/cr_swap (the one that blkid shows) and the /dev/dm-1 or now /dev/dm-0 (the one that the swapon --show shows).

TPM2.0 also doesn’t work, the system sees the module and recognizes it as 2.0, but fails during the “fdectl regenerate-key”, saying it’s TPM1.3. I’ve cleared the module in UEFI, but to no avail.

I have since abandoned the plan to make TPM work and subsequently abandoned my hopes to enable the hibernation.

Now I tinker with the System Sleep States, systemctl commands, and /etc/systemd/sleep.conf.d/*.conf files.

At one moment I was able to make the Super+L and Lock Screen work without crashing, but now I can’t recreate it. I tried to fix mem_sleep=s2idle in the BootLoader and/or disable the “suspend” option everywhere but no luck. I think I’ve googled my way to most of existing threads on the topic already, nothing seems to work, but then again, I’m not good at it.

So, wrapping up! I have 3 desirable outcomes:

  1. disable sleep/suspend entirely and just have screen lock
  2. enable stable hibernation (sleep/suspend disabled)
  3. enable TPM2.0 encryption (really heavily optional at this point)

What do you think? Sorry for the messy text, will provide any clarification, code or output if needed.

If someone’s there,

I turned off PCIe support in UEFI memory settings (I have SATA and I’ve seen a hint that the PCIe drivers may cause problems with the memory), masked all the sleep/suspend/hibernate options via systemcl, and created a *.conf file in /etc/systemd/sleep.conf.d/ folder that says “no” to every option.

Now I can use Super+L screen lock and so I can have the minimal amount of safety regarding my device and my apps/files.

Will go from there, still hope to have hibernation as an option in the future. If you have any idea how to achieve this, please put it there. My device says it supports S0 S1 S3 S4 S5, so it can have hibernation. But the main obstacle might be the kernel lockdown that comes with the secure boot.

nope! didn’t work, after the screen dims it waits and then crashes.