Stuck on splash screen after hibernation


It looks like it’s a firmware related issue. I’ve followed the hibernation debugging docs and at the point 1.c resume is working fine without firmware interactions.

For the last few days I was fighting with the hibernation feature and it seems like I can’t manage to do it myself so I decided to open this thread. I was doing everything with the documentation. I am relatively new to the Linux OS and maybe I am doing somewhere a trivial mistake and you can help me.

# inxi -Fazy
  Kernel: 5.9.11-3-MANJARO x86_64 bits: 64 compiler: gcc v: 10.2.0 
  parameters: BOOT_IMAGE=/boot/vmlinuz-5.9-x86_64 
  root=UUID=1d749f9d-e9d4-4923-8e53-04be44e98eef rw reboot=acpi quiet 
  apparmor=1 security=apparmor udev.log_priority=3 
  resume=UUID=1d749f9d-e9d4-4923-8e53-04be44e98eef resume_offset=2887680 
  Desktop: KDE Plasma 5.20.4 tk: Qt 5.15.2 wm: kwin_x11 dm: SDDM 
  Distro: Manjaro Linux 
  Type: Laptop System: LENOVO product: 81SX v: Legion Y540-15IRH 
  serial: <filter> Chassis: type: 10 v: Legion Y540-15IRH serial: <filter> 
  Mobo: LENOVO model: LNVNB161216 v: NO DPK serial: <filter> UEFI: LENOVO 
  v: BHCN39WW date: 06/23/2020 
  ID-1: BAT0 charge: 51.7 Wh condition: 51.7/57.0 Wh (91%) volts: 12.9/11.5 
  model: SMP L17M3PG2 type: Li-poly serial: <filter> status: Full cycles: 45 
  Device-1: hidpp_battery_0 model: Logitech G603 Wireless Gaming Mouse 
  serial: <filter> charge: 55% (should be ignored) rechargeable: yes 
  status: Discharging 
  Device-2: hidpp_battery_1 model: Logitech Wireless Keyboard K270 
  serial: <filter> charge: 100% (should be ignored) rechargeable: yes 
  status: Discharging 
  Info: 6-Core model: Intel Core i7-9750H bits: 64 type: MT MCP 
  arch: Kaby Lake family: 6 model-id: 9E (158) stepping: A (10) microcode: DE 
  L2 cache: 12.0 MiB 
  flags: avx avx2 lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx 
  bogomips: 62431 
  Speed: 1000 MHz min/max: 1000/2500 MHz Core speeds (MHz): 1: 1000 2: 999 
  3: 1000 4: 1000 5: 1000 6: 999 7: 1000 8: 1000 9: 1000 10: 1000 11: 1001 
  12: 1000 
  Vulnerabilities: Type: itlb_multihit status: KVM: VMX disabled 
  Type: l1tf 
  mitigation: PTE Inversion; VMX: conditional cache flushes, SMT vulnerable 
  Type: mds mitigation: Clear CPU buffers; SMT vulnerable 
  Type: meltdown mitigation: PTI 
  Type: spec_store_bypass 
  mitigation: Speculative Store Bypass disabled via prctl and seccomp 
  Type: spectre_v1 
  mitigation: usercopy/swapgs barriers and __user pointer sanitization 
  Type: spectre_v2 mitigation: Full generic retpoline, IBPB: conditional, 
  IBRS_FW, STIBP: conditional, RSB filling 
  Type: srbds mitigation: Microcode 
  Type: tsx_async_abort status: Not affected 
  Device-1: Intel UHD Graphics 630 vendor: Lenovo driver: i915 v: kernel 
  bus ID: 00:02.0 chip ID: 8086:3e9b 
  Device-2: NVIDIA TU116M [GeForce GTX 1660 Ti Mobile] vendor: Lenovo 
  driver: nvidia v: 455.45.01 alternate: nouveau,nvidia_drm bus ID: 01:00.0 
  chip ID: 10de:2191 
  Device-3: Chicony Integrated Camera (1280x720@30) type: USB driver: uvcvideo 
  bus ID: 1-6:4 chip ID: 04f2:b604 serial: <filter> 
  Display: x11 server: X.Org 1.20.10 compositor: kwin_x11 
  driver: modesetting,nvidia display ID: :0 screens: 1 
  Screen-1: 0 s-res: 5760x1080 s-dpi: 91 s-size: 1605x301mm (63.2x11.9") 
  s-diag: 1633mm (64.3") 
  Monitor-1: HDMI-0 res: 1920x1080 hz: 60 dpi: 93 size: 527x296mm (20.7x11.7") 
  diag: 604mm (23.8") 
  Monitor-2: DP-3 res: 1920x1080 hz: 60 dpi: 93 size: 527x296mm (20.7x11.7") 
  diag: 604mm (23.8") 
  Monitor-3: eDP-1-1 res: 1920x1080 hz: 60 dpi: 142 
  size: 344x194mm (13.5x7.6") diag: 395mm (15.5") 
  OpenGL: renderer: GeForce GTX 1660 Ti/PCIe/SSE2 v: 4.6.0 NVIDIA 455.45.01 
  direct render: Yes 
  Device-1: Intel Cannon Lake PCH cAVS vendor: Lenovo driver: snd_hda_intel 
  v: kernel alternate: snd_soc_skl,snd_sof_pci bus ID: 00:1f.3 
  chip ID: 8086:a348 
  Device-2: NVIDIA TU116 High Definition Audio vendor: Lenovo 
  driver: snd_hda_intel v: kernel bus ID: 01:00.1 chip ID: 10de:1aeb 
  Sound Server: ALSA v: k5.9.11-3-MANJARO 
  Device-1: Intel Wireless-AC 9560 [Jefferson Peak] driver: iwlwifi v: kernel 
  port: 5000 bus ID: 00:14.3 chip ID: 8086:a370 
  IF: wlp0s20f3 state: up mac: <filter> 
  Device-2: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet 
  vendor: Lenovo driver: r8169 v: kernel port: 3000 bus ID: 07:00.0 
  chip ID: 10ec:8168 
  IF: enp7s0 state: down mac: <filter> 
  Local Storage: total: 931.51 GiB used: 43.78 GiB (4.7%) 
  SMART Message: Unable to run smartctl. Root privileges required. 
  ID-1: /dev/nvme0n1 vendor: Western Digital model: WDS100T3X0C-00SJG0 
  size: 931.51 GiB block size: physical: 512 B logical: 512 B speed: 31.6 Gb/s 
  lanes: 4 serial: <filter> rev: 111110WD scheme: GPT 
  ID-1: / raw size: 200.00 GiB size: 196.36 GiB (98.18%) 
  used: 43.76 GiB (22.3%) fs: ext4 dev: /dev/nvme0n1p5 
  Kernel: swappiness: 60 (default) cache pressure: 100 (default) 
  ID-1: swap-1 type: file size: 17.00 GiB used: 0 KiB (0.0%) priority: -2 
  file: /swapfile 
  System Temperatures: cpu: 55.0 C mobo: N/A gpu: nvidia temp: 47 C 
  Fan Speeds (RPM): N/A 
  Processes: 315 Uptime: 36m Memory: 15.52 GiB used: 2.84 GiB (18.3%) 
  Init: systemd v: 246 Compilers: gcc: 10.2.0 Packages: pacman: 1325 lib: 378 
  flatpak: 0 Shell: Bash v: 5.0.18 running in: yakuake inxi: 3.1.08

Additional info:
I am using the optimus-switch-sddm in order to have the ability to switch GPU, TLP for power management and cpupower in order to limit cpu frequencies causing thermal throttling.

my devices

# lsblk -f
NAME        FSTYPE FSVER LABEL        UUID                                 FSAVAIL FSUSE% MOUNTPOINT
├─nvme0n1p1 ntfs         Odzyskiwanie 9E20F2BC20F29B0B                                    
├─nvme0n1p2 vfat   FAT32              74F3-AA9F                              70,7M    26% /boot/efi
├─nvme0n1p4 ntfs                      8EE0F94BE0F93A53                                    
└─nvme0n1p5 ext4   1.0                1d749f9d-e9d4-4923-8e53-04be44e98eef  144,1G    22% /

swap_device UUID

# findmnt -no UUID -T /swapfile


# sudo filefrag -v /swapfile | awk '{ if($1=="0:"){print $4} }'

I edited /etc/default/grub to add kernel parameters so it looks like this

GRUB_CMDLINE_LINUX_DEFAULT="quiet apparmor=1 security=apparmor udev.log_priority=3 resume=UUID=1d749f9d-e9d4-4923-8e53-04be44e98eef resume_offset=2887680"

I also edited my /etc/fstab file after creating swap file

UUID=74F3-AA9F                            /boot/efi      vfat    umask=0077 0 2
UUID=1d749f9d-e9d4-4923-8e53-04be44e98eef /              ext4    defaults,noatime 0 1
/swapfile none swap defaults 0 0

and I edited HOOKS in my /etc/mkinitcpio.conf file

HOOKS="base udev autodetect modconf block keyboard keymap filesystems resume"

After all I did

  • sudo grub-mkconfig -o /boot/grub/grub.cfg
  • sudo update-grub
  • sudo mkinitcpio -p linux59
  • reboot

Then I’ve hibernated the system, waited until the laptop will power off completely, and booted up again.
Now I’m stuck on this splash screen and the only way to boot into the system is by power off and booting up again.

Any ideas?


Easy possible solution: install and run package ‘hibernator’:

$ sudo pacman -S hibernator
$ sudo hibernator

It will detect any existing swap configuration and add possibly missing parameters/steps.

If that didn’t work, take a look at Power management/Suspend and hibernate - ArchWiki

Thank you for your response, but I’ve already tried it and as it only automates the steps I described above it doesn’t help. I was doing everything with documentation and also followed the hibernation and suspend debugging docs and eventually, I’ve found out that the problem is my firmware that I can’t fix myself.