Laptop fails to enter sleep after upgrading to kernel 6.7.6

I don’t see any kernel: ACPI: PM: waking up, but there is some additional text that appears after the laptop wakes up. There are a few errors but I’m not sure if they are related.

bře 02 13:11:14 localhost.localdomain kernel: PM: suspend entry (s2idle)
bře 02 13:11:14 localhost.localdomain dns-dnsmasq.sh[5432]: <debug> NETWORKMANAGER_DNS_FORWARDER is not set to "dnsmasq" in /etc/sysconfig/network/config -> exit
bře 02 13:11:14 localhost.localdomain kernel: Filesystems sync: 0.012 seconds
bře 02 13:11:20 localhost.localdomain kernel: Freezing user space processes
bře 02 13:11:20 localhost.localdomain kernel: Freezing user space processes completed (elapsed 0.017 seconds)
bře 02 13:11:20 localhost.localdomain kernel: OOM killer disabled.
bře 02 13:11:20 localhost.localdomain kernel: Freezing remaining freezable tasks
bře 02 13:11:20 localhost.localdomain kernel: Freezing remaining freezable tasks completed (elapsed 0.001 seconds)
bře 02 13:11:20 localhost.localdomain kernel: printk: Suspending console(s) (use no_console_suspend to debug)
bře 02 13:11:20 localhost.localdomain kernel: queueing ieee80211 work while going to suspend
bře 02 13:11:20 localhost.localdomain kernel: ACPI: EC: interrupt blocked
bře 02 13:11:20 localhost.localdomain kernel: ACPI: EC: interrupt unblocked
bře 02 13:11:20 localhost.localdomain kernel: [drm] PCIE GART of 1024M enabled (table at 0x000000F47FC00000).
bře 02 13:11:20 localhost.localdomain kernel: amdgpu 0000:04:00.0: amdgpu: SMU is resuming...
bře 02 13:11:20 localhost.localdomain kernel: amdgpu 0000:04:00.0: amdgpu: SMU is resumed successfully!
bře 02 13:11:20 localhost.localdomain kernel: amdgpu 0000:04:00.0: [drm] *ERROR* Error queueing DMUB command: status=4
bře 02 13:11:20 localhost.localdomain kernel: nvme nvme0: 16/0/0 default/read/poll queues
bře 02 13:11:20 localhost.localdomain kernel: usb 9-1.5: reset high-speed USB device number 3 using xhci_hcd
bře 02 13:11:20 localhost.localdomain kernel: usb 9-1.5: PM: dpm_run_callback(): usb_dev_resume+0x0/0x20 [usbcore] returns -5
bře 02 13:11:20 localhost.localdomain kernel: usb 9-1.5: PM: failed to resume async: error -5
bře 02 13:11:20 localhost.localdomain kernel: [drm] VCN decode and encode initialized successfully(under DPG Mode).
bře 02 13:11:20 localhost.localdomain kernel: [drm] JPEG decode initialized successfully.
bře 02 13:11:20 localhost.localdomain kernel: amdgpu 0000:04:00.0: amdgpu: ring gfx_0.0.0 uses VM inv eng 0 on hub 0
bře 02 13:11:20 localhost.localdomain kernel: amdgpu 0000:04:00.0: amdgpu: ring comp_1.0.0 uses VM inv eng 1 on hub 0
bře 02 13:11:20 localhost.localdomain kernel: amdgpu 0000:04:00.0: amdgpu: ring comp_1.1.0 uses VM inv eng 4 on hub 0
bře 02 13:11:20 localhost.localdomain kernel: amdgpu 0000:04:00.0: amdgpu: ring comp_1.2.0 uses VM inv eng 5 on hub 0
bře 02 13:11:20 localhost.localdomain kernel: amdgpu 0000:04:00.0: amdgpu: ring comp_1.3.0 uses VM inv eng 6 on hub 0
bře 02 13:11:20 localhost.localdomain kernel: amdgpu 0000:04:00.0: amdgpu: ring comp_1.0.1 uses VM inv eng 7 on hub 0
bře 02 13:11:20 localhost.localdomain kernel: amdgpu 0000:04:00.0: amdgpu: ring comp_1.1.1 uses VM inv eng 8 on hub 0
bře 02 13:11:20 localhost.localdomain kernel: amdgpu 0000:04:00.0: amdgpu: ring comp_1.2.1 uses VM inv eng 9 on hub 0
bře 02 13:11:20 localhost.localdomain kernel: amdgpu 0000:04:00.0: amdgpu: ring comp_1.3.1 uses VM inv eng 10 on hub 0
bře 02 13:11:20 localhost.localdomain kernel: amdgpu 0000:04:00.0: amdgpu: ring kiq_0.2.1.0 uses VM inv eng 11 on hub 0
bře 02 13:11:20 localhost.localdomain kernel: amdgpu 0000:04:00.0: amdgpu: ring sdma0 uses VM inv eng 12 on hub 0
bře 02 13:11:20 localhost.localdomain kernel: amdgpu 0000:04:00.0: amdgpu: ring vcn_dec_0 uses VM inv eng 0 on hub 8
bře 02 13:11:20 localhost.localdomain kernel: amdgpu 0000:04:00.0: amdgpu: ring vcn_enc_0.0 uses VM inv eng 1 on hub 8
bře 02 13:11:20 localhost.localdomain kernel: amdgpu 0000:04:00.0: amdgpu: ring vcn_enc_0.1 uses VM inv eng 4 on hub 8
bře 02 13:11:20 localhost.localdomain kernel: amdgpu 0000:04:00.0: amdgpu: ring jpeg_dec uses VM inv eng 5 on hub 8
bře 02 13:11:20 localhost.localdomain kernel: OOM killer enabled.
bře 02 13:11:20 localhost.localdomain kernel: Restarting tasks ... 
bře 02 13:11:20 localhost.localdomain kernel: usb 9-1.5: USB disconnect, device number 3
bře 02 13:11:20 localhost.localdomain kernel: done.
bře 02 13:11:20 localhost.localdomain kernel: random: crng reseeded on system resumption
bře 02 13:11:20 localhost.localdomain dns-dnsmasq.sh[5450]: <debug> NETWORKMANAGER_DNS_FORWARDER is not set to "dnsmasq" in /etc/sysconfig/network/config -> exit
bře 02 13:11:20 localhost.localdomain unix_chkpwd[5513]: password check failed for user (yorimirus)
bře 02 13:11:20 localhost.localdomain kscreenlocker_greet[5280]: pam_unix(kde:auth): authentication failure; logname=yorimirus uid=1000 euid=1000 tty= ruser= rhost=  user=yorimirus
bře 02 13:11:20 localhost.localdomain kernel: usb 9-1.5: new high-speed USB device number 4 using xhci_hcd
bře 02 13:11:20 localhost.localdomain systemd-sleep[5391]: System returned from sleep state.
bře 02 13:11:20 localhost.localdomain kernel: PM: suspend exit
bře 02 13:11:20 localhost.localdomain systemd-sleep[5565]: INFO: Skip running /usr/lib/systemd/system-sleep/grub2.sleep for suspend
bře 02 13:11:20 localhost.localdomain systemd[1]: systemd-suspend.service: Deactivated successfully.
bře 02 13:11:20 localhost.localdomain kernel: usb 9-1.5: New USB device found, idVendor=2109, idProduct=8888, bcdDevice= 0.01
bře 02 13:11:20 localhost.localdomain kernel: usb 9-1.5: New USB device strings: Mfr=1, Product=2, SerialNumber=3
bře 02 13:11:20 localhost.localdomain kernel: usb 9-1.5: Product: USB Billboard Device   
bře 02 13:11:20 localhost.localdomain kernel: usb 9-1.5: Manufacturer: VIA Labs, Inc.         
bře 02 13:11:20 localhost.localdomain kernel: usb 9-1.5: SerialNumber: 0000000000000001
bře 02 13:11:20 localhost.localdomain systemd[1]: Finished System Suspend.
bře 02 13:11:20 localhost.localdomain systemd[1]: Stopped target Sleep.
bře 02 13:11:20 localhost.localdomain systemd[1]: Reached target Suspend.
bře 02 13:11:20 localhost.localdomain systemd[1]: Stopped target Suspend.
bře 02 13:11:20 localhost.localdomain systemd-logind[1669]: Operation 'sleep' finished.
bře 02 13:11:20 localhost.localdomain ModemManager[1710]: <info>  [sleep-monitor-systemd] system is resuming
bře 02 13:11:20 localhost.localdomain NetworkManager[1723]: <info>  [1709381480.8502] manager: sleep: wake requested (sleeping: yes  enabled: yes)
bře 02 13:11:20 localhost.localdomain kdeconnectd[3150]: Error sending UDP packet: QAbstractSocket::NetworkError
bře 02 13:11:20 localhost.localdomain bluetoothd[1712]: Failed to set mode: Failed (0x03)
bře 02 13:11:20 localhost.localdomain NetworkManager[1723]: <info>  [1709381480.8505] device (enp5s0f4u1u3): state change: unavailable -> unmanaged (reason 'sleeping', sys-iface-state: 'managed')
bře 02 13:11:20 localhost.localdomain kded5[2821]: kf.bluezqt: PendingCall Error: "Failed"
bře 02 13:11:20 localhost.localdomain NetworkManager[1723]: <info>  [1709381480.8549] device (wlp1s0): state change: unmanaged -> unavailable (reason 'managed', sys-iface-state: 'external')
bře 02 13:11:20 localhost.localdomain NetworkManager[1723]: <info>  [1709381480.8660] device (enp5s0f4u1u3): state change: unmanaged -> unavailable (reason 'managed', sys-iface-state: 'external')
bře 02 13:11:20 localhost.localdomain NetworkManager[1723]: <info>  [1709381480.8699] device (p2p-dev-wlp1s0): state change: unmanaged -> unavailable (reason 'managed', sys-iface-state: 'external')
bře 02 13:11:20 localhost.localdomain NetworkManager[1723]: <info>  [1709381480.8700] manager: NetworkManager state is now DISCONNECTED
bře 02 13:11:20 localhost.localdomain NetworkManager[1723]: <info>  [1709381480.9249] device (wlp1s0): supplicant interface state: internal-starting -> disconnected
bře 02 13:11:20 localhost.localdomain NetworkManager[1723]: <info>  [1709381480.9250] device (p2p-dev-wlp1s0): state change: unavailable -> unmanaged (reason 'removed', sys-iface-state: 'removed')
bře 02 13:11:20 localhost.localdomain NetworkManager[1723]: <info>  [1709381480.9253] Wi-Fi P2P device controlled by interface wlp1s0 created
bře 02 13:11:20 localhost.localdomain NetworkManager[1723]: <info>  [1709381480.9254] manager: (p2p-dev-wlp1s0): new 802.11 Wi-Fi P2P device (/org/freedesktop/NetworkManager/Devices/5)
bře 02 13:11:20 localhost.localdomain NetworkManager[1723]: <info>  [1709381480.9255] device (p2p-dev-wlp1s0): state change: unmanaged -> unavailable (reason 'managed', sys-iface-state: 'external')
bře 02 13:11:20 localhost.localdomain NetworkManager[1723]: <info>  [1709381480.9257] device (wlp1s0): state change: unavailable -> disconnected (reason 'supplicant-available', sys-iface-state: 'managed')
bře 02 13:11:20 localhost.localdomain NetworkManager[1723]: <info>  [1709381480.9259] device (p2p-dev-wlp1s0): state change: unavailable -> disconnected (reason 'none', sys-iface-state: 'managed')
bře 02 13:11:23 localhost.localdomain NetworkManager[1723]: <info>  [1709381483.1938] policy: auto-activating connection 'Walachova_4G' (7db97e30-ef03-41d1-b555-74b2e8028e2b)
bře 02 13:11:23 localhost.localdomain NetworkManager[1723]: <info>  [1709381483.1942] device (wlp1s0): Activation: starting connection 'Walachova_4G' (7db97e30-ef03-41d1-b555-74b2e8028e2b)

This text does not appear when trying to sleep without the hub. Maybe the kernel gets stuck between the
bře 02 13:11:14 localhost.localdomain kernel: PM: suspend entry (s2idle)

and

bře 02 13:11:14 localhost.localdomain dns-dnsmasq.sh[5432]: <debug> NETWORKMANAGER_DNS_FORWARDER is not set to "dnsmasq" in /etc/sysconfig/network/config -> exit

part?

Yeah I will go file a bug report.

1 Like

That is the complete suspend sequence; as you can see the last few lines are recorded after resume (13:11:20). I cannot see anything suspect there; maybe connecting something to the USB bus sends the suspend process down a different path avoiding a troubled spot.

The issue seems to still present in 6.7.7 update.

Try the LTS kernel (kernel-longterm) if you haven’t already.

1 Like

Nice! Seems like the long term kernel works fine. I was worried that I would need to stay on 6.7.5 for a long time. Is there something I can do to make GRUB pick it as the default one? I don’t want to keep selecting it every time I boot up my laptop.

Thanks for telling me that exists. I will stay on it until the next major kernel release and see if things get any better.

EDIT: Nevermind I figured that out myself

1 Like

Curious, how did you set the default kernel to a lower version? :thinking:

A search will reveal …

1 Like

You have to choose the kernel every time from the Grub menu?
I get it’s possible to save the choice as default.

But do sudo pbl --default-settings pick it up? It’s important for those using kexec to reboot.

Did you actually read the other thread? You need to boot ONCE via the advanced menu. This makes sure your actual session uses the longterm kernel. In this session remove kernel-default. After the deletion of kernel-default it will boot into kernel-longterm…

kernel-default and kernel-longterm are different packages. So if kernel-default is not installed, what do you think your system is running with? Right: kernel-longterm
And vice versa…

If you want to keep both packages installed at the same time, you can use „YaST bootloader“ to chose your default kernel…

The only thing that choosing the default kernel in Yast bootloader settings does is change which option is highlighted in the GRUB. I set it to longterm and the only thing it did is that instead of the first menu entry being selected first, the second one (advanced options for openSUSE tumbleweed) was selected instead.

Selecting the first option still runs the 6.7.5 kernel for me.

Anything I can do to make the first boot option actually run the longterm kernel without deleting the 6.7.5 version? I would rather keep the last known working kernel version in case the longterm version breaks to me as well one day. Once I delete it, I won’t be able to install it anymore. Or at least I couldn’t figure out how.

1 Like

I just uninstalled the newer, broken versions and kept the last working version. I actually added it do Yast configuration so that it doesn’t remove the 6.7.5 version no matter what.

This is what I wanted, but the option to choose older kernel is not present in Yast bootloader.

pavin@suse-pc:~> ll /usr/lib/modules
total 0
drwxr-xr-x 1 root root 644 Feb 28 23:55 6.6.11-1-default
drwxr-xr-x 1 root root 614 Feb 29 00:32 6.7.4-1-default
pavin@suse-pc:~> sudo pbl --default-settings
Please enter the PIN: 
Please touch the device.
kernel=/usr/lib/modules/6.7.4-1-default/vmlinuz
initrd=/boot/initrd-6.7.4-1-default
append='splash=silent mitigations=auto quiet crashkernel=421M,high crashkernel=72M,low security=apparmor'

Alright I have found a way to get the 6.7.5 kernel after uninstalling. In the openSUSE tumbleweed snapshot history, you can download the rpm for all packages that were available that day. I will just download the rpm from there and keep it in case I need it.

You can find the kernel by searching ‘kernel’ here: https://download.opensuse.org/history/20240222/tumbleweed/repo/oss/x86_64/

Afterwards I just delete all the default kernels and the LTS kernel should be booted by default.

I’m not quite sure why you can’t see the LTS kernel in YaST though, I can see it just fine. Can you boot the LTS kernel normally through GRUB?

1 Like

Excellent, thank you!

I don’t have kernel-longterm installed as it (6.6.18) too has a bug that prevents me from using kexec reboot, but I have 6.6.11 and 6.7.4 installed currently as part of the kernel-default package. Currently I have a lock on all kernel* packages so as not to update it and break kexec reboot until upstream can issue a fix for this regression.

What I’d like to do is remove the zypper lock and let the kernel and associated packages update while keeping the last working kernel using zypp.conf. To do this successfully and have kexec reboot me into the right kernel I need to find a way to let the bootloader and pbl choose an older kernel as default.

I see. Sorry, I don’t know much about kexec or pbl so I don’t think I can help you with that. YaST doesn’t seem to cooperate with me much either, that’s why I chose to delete the 6.7 kernels so that the lts kernel boots by default.

@pavinjoseph no need to lock, use zypper config and multiversion and can keep them all for as long as you want… you can set version numbers so if there are some specific ones needed.

2 Likes

YaST-bootloader shows all currently installed kernels, and apparently you only have 6.6.11 and 6.7.4 at the moment, so if you want older kernels you have to install them (or avoid them being deleted on update via zypper config as @malcolmlewis suggested).

Thank you! I confirm this too. It appears @hui was correct after all :wink:
Yast didn’t show the 6.6.11 on my main machine because it appears its entries are not available in /boot dir where it should have been.

None of these methods help with choosing the default kernel for kexec though, as kexec-bootloader gets the current kernel info from pbl which gets it by doing readlink -f /boot/vmlinuz. This symlink always points to the newest kernel when a new kernel is installed.
I have now edited kexec-load.service ExecStart param to call a specific old kernel that I know to be working.

Thank you all for your help :slightly_smiling_face:

1 Like

Sleep issue has been fixed. kernel-default works properly now.
Fixed with commit drm/amdgpu: Fix the runtime resume failure issue · torvalds/linux@bbfaf2a · GitHub

Kernel 6.7.7 by itself didn’t work but with the today’s kernel-amdgpu package update, issue has been fixed.

4 Likes