Laptop stopped hibernating

I setup hibernate on my laptop using instructions from a few sources that I combined and saved as my own guide, which is below for reference. Hibernate was working for months until the last couple of days. The system no longer goes into hibernation after 2 hours or manually. When I try to hibernate the system the screen will go dark and after 10-20 seconds the login screen will appear.

2 days ago there was a large system update and after checking the pacman log the kernel updating from 6.18.1-1 to 6.18.4-1 is the only real change I can notice. I have not changed anything manually for a while.

I was able to disable, delete, and then recreate the swap partition and hibernate worked one time. It seems hibernate will work once after a reboot, but after resuming it does not work again.

#instructions used to make hibernation work
sudo su

#Make swapfile, check guide for size https://wiki.manjaro.org/index.php?title=Swap
btrfs filesystem mkswapfile --size 38G --uuid clear /swap/swapfile

#Enable swapfile
swapon /swap/swapfile

#check output
swapon --show

NAME           TYPE SIZE USED PRIO
/swap/swapfile file  38G   0B   -2

#Add swapfile info the fstab
echo /swap/swapfile none swap defaults 0 0 > /etc/fstab

#Set swapfile offset value
btrfs inspect-internal map-swapfile -r /swap/swapfile > /sys/power/resume_offset

#Get the UUID from the partition with the swapfile
blkid

/dev/nvme0n1p2: UUID="6b027c88-6eb9-4ede-8986-d7e790d03cfd"

#Get swapfile offset value, note this can change
btrfs inspect-internal map-swapfile -r /swap/swapfile

37233920

#Add resume=UUID and resume_offset
nano /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT='resume=UUID=6b027c88-6eb9-4ede-8986-d7e790d03cfd resume_offset=37233920

#Regenerate grub
grub-mkconfig -o /boot/grub/grub.cfg

#Add "resume", no quotes to the end of the Hooks= line
nano /etc/mkinitcpio.conf

#Regenerate config
mkinitcpio -P

#Edit sleep config
nano /etc/systemd/sleep.conf
#Uncomment and edit line to MemorySleepMode=deep
#Uncomment and edit line to HibernateDelaySec=2h

#Set swapfile device so resume works without a reboot
lsblk
#Find the MAJ:MIN value for the device with the /swap/swapfile on it
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
nvme0n1     259:0    0 953.9G  0 disk  
├─nvme0n1p1 259:1    0   300M  0 part /boot/efi
└─nvme0n1p2 259:2    0 953.6G  0 part /var/cache
                                     /home
                                     /var/log
                                     /
echo 259:2 > /sys/power/resume
#Use said value in above command

systemctl hibernate
#Test if it works

inxi -zv8
System:
  Kernel: 6.18.4-1-MANJARO arch: x86_64 bits: 64 compiler: gcc v: 15.2.1
    clocksource: tsc avail: acpi_pm
    parameters: BOOT_IMAGE=/@/boot/vmlinuz-6.18-x86_64
    root=UUID=6b027c88-6eb9-4ede-8986-d7e790d03cfd rw rootflags=subvol=@
    resume=UUID=6b027c88-6eb9-4ede-8986-d7e790d03cfd resume_offset=37233920
    quiet splash udev.log_priority=3
  Desktop: KDE Plasma v: 6.5.4 tk: Qt v: N/A info: frameworks v: 6.21.0
    wm: kwin_wayland vt: 1 dm: SDDM Distro: Manjaro base: Arch Linux
Machine:
  Type: Convertible System: LENOVO product: 83LC v: Yoga 9 2-in-1 14ILL10
    serial: <superuser required> Chassis: type: 31 v: Yoga 9 2-in-1 14ILL10
    serial: <superuser required>
  Mobo: LENOVO model: LNVNB161216 v: SDK0T76576 WIN
    serial: <superuser required> part-nu: LENOVO_MT_83LC_BU_idea_FM_Yoga 9
    2-in-1 14ILL10 uuid: <superuser required> Firmware: UEFI vendor: LENOVO
    v: Q9CN22WW date: 01/09/2025
Battery:
  ID-1: BAT0 charge: 28.5 Wh (38.8%) condition: 73.3/75 Wh (97.8%)
    power: 5.3 W volts: 7.62 min: 7.7 model: ATL L24N4PH2 type: Li-poly
    serial: <filter> charging: status: discharging type: standard
    avail: long_life,standard cycles: 13
Memory:
  System RAM: total: 32 GiB available: 30.86 GiB used: 6.18 GiB (20.0%)
  Message: For most reliable report, use superuser + dmidecode.
  Array-1: capacity: 32 GiB slots: 8 modules: 8 EC: None
    max-module-size: 4 GiB note: est.
  Device-1: Controller0-ChannelA type: LPDDR5 detail: synchronous
    size: 4 GiB speed: 8533 MT/s volts: curr: 0.5 width (bits): data: 16
    total: 16 manufacturer: Micron Technology part-no: N/A serial: <filter>
  Device-2: Controller0-ChannelB type: LPDDR5 detail: synchronous
    size: 4 GiB speed: 8533 MT/s volts: curr: 0.5 width (bits): data: 16
    total: 16 manufacturer: Micron Technology part-no: N/A serial: <filter>
  Device-3: Controller0-ChannelC type: LPDDR5 detail: synchronous
    size: 4 GiB speed: 8533 MT/s volts: curr: 0.5 width (bits): data: 16
    total: 16 manufacturer: Micron Technology part-no: N/A serial: <filter>
  Device-4: Controller0-ChannelD type: LPDDR5 detail: synchronous
    size: 4 GiB speed: 8533 MT/s volts: curr: 0.5 width (bits): data: 16
    total: 16 manufacturer: Micron Technology part-no: N/A serial: <filter>
  Device-5: Controller1-ChannelA type: LPDDR5 detail: synchronous
    size: 4 GiB speed: 8533 MT/s volts: curr: 0.5 width (bits): data: 16
    total: 16 manufacturer: Micron Technology part-no: N/A serial: <filter>
  Device-6: Controller1-ChannelB type: LPDDR5 detail: synchronous
    size: 4 GiB speed: 8533 MT/s volts: curr: 0.5 width (bits): data: 16
    total: 16 manufacturer: Micron Technology part-no: N/A serial: <filter>
  Device-7: Controller1-ChannelC type: LPDDR5 detail: synchronous
    size: 4 GiB speed: 8533 MT/s volts: curr: 0.5 width (bits): data: 16
    total: 16 manufacturer: Micron Technology part-no: N/A serial: <filter>
  Device-8: Controller1-ChannelD type: LPDDR5 detail: synchronous
    size: 4 GiB speed: 8533 MT/s volts: curr: 0.5 width (bits): data: 16
    total: 16 manufacturer: Micron Technology part-no: N/A serial: <filter>
PCI Slots:
  Permissions: Unable to run dmidecode. Root privileges required.
CPU:
  Info: model: Intel Core Ultra 7 258V bits: 64 type: MCP arch: Lunar Lake
    level: v3 note: check built: 2024+ process: TSMC n3b (3nm) family: 6
    model-id: 0xBD (189) stepping: 1 microcode: 0x125
  Topology: cpus: 1x dies: 1 clusters: 5 cores: 8 smt: <unsupported> cache:
    L1: 832 KiB desc: d-4x32 KiB, 4x48 KiB; i-8x64 KiB L2: 14 MiB
    desc: 4x2.5 MiB, 1x4 MiB L3: 12 MiB desc: 1x12 MiB
  Speed (MHz): avg: 400 min/max: 400/4700:4800:3700 scaling:
    driver: intel_pstate governor: powersave cores: 1: 400 2: 400 3: 400 4: 400
    5: 400 6: 400 7: 400 8: 400 bogomips: 52838
  Flags: 3dnowprefetch abm acpi adx aes aperfmperf apic arat
    arch_capabilities arch_lbr arch_perfmon art avx avx2 avx_vnni bmi1 bmi2
    bts bus_lock_detect clflush clflushopt clwb cmov constant_tsc cpuid
    cpuid_fault cx16 cx8 de ds_cpl dtes64 dtherm dts epb ept ept_ad erms est
    f16c flexpriority flush_l1d fma fpu fsgsbase fsrm fxsr gfni hfi ht hwp
    hwp_act_window hwp_epp hwp_notify hwp_pkg_req ibpb ibrs ibrs_enhanced ibt
    ida intel_pt invpcid lahf_lm lam lm mca mce md_clear mmx monitor movbe
    movdir64b movdiri msr mtrr nonstop_tsc nopl nx ospke pae pat pbe pcid
    pclmulqdq pconfig pdcm pdpe1gb pebs pge pku pln pni popcnt pse pse36 pts
    rdpid rdrand rdseed rdt_a rdtscp rep_good sdbg sep serialize sha_ni smap
    smep smx split_lock_detect ss ssbd sse sse2 sse4_1 sse4_2 ssse3 stibp
    syscall tm tm2 tpr_shadow tsc tsc_adjust tsc_deadline_timer
    tsc_known_freq umip user_shstk vaes vme vmx vnmi vpclmulqdq vpid waitpkg
    wbnoinvd x2apic xgetbv1 xsave xsavec xsaveopt xsaves xtopology xtpr
  Vulnerabilities:
  Type: gather_data_sampling status: Not affected
  Type: ghostwrite status: Not affected
  Type: indirect_target_selection status: Not affected
  Type: itlb_multihit status: Not affected
  Type: l1tf status: Not affected
  Type: mds status: Not affected
  Type: meltdown status: Not affected
  Type: mmio_stale_data status: Not affected
  Type: old_microcode status: Not affected
  Type: reg_file_data_sampling status: Not affected
  Type: retbleed status: Not affected
  Type: spec_rstack_overflow status: Not affected
  Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via
    prctl
  Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer
    sanitization
  Type: spectre_v2 mitigation: Enhanced / Automatic IBRS; IBPB:
    conditional; PBRSB-eIBRS: Not affected; BHI: BHI_DIS_S
  Type: srbds status: Not affected
  Type: tsa status: Not affected
  Type: tsx_async_abort status: Not affected
  Type: vmscape mitigation: IBPB before exit to userspace
Graphics:
  Device-1: Intel Lunar Lake [Intel Arc Graphics 130V / 140V] vendor: Lenovo
    driver: xe v: kernel arch: Xe2 process: TSMC n3 (3nm) built: 2024+ ports:
    active: eDP-1 empty: DP-1,DP-2,DP-3 bus-ID: 00:02.0 chip-ID: 8086:64a0
    class-ID: 0300
  Device-2: Luxvisions Innotech Integrated Camera
    driver: hid-sensor-hub,usbhid,uvcvideo type: USB rev: 2.0 speed: 480 Mb/s
    lanes: 1 mode: 2.0 bus-ID: 3-4:2 chip-ID: 30c9:00f7 class-ID: fe01
    serial: <filter>
  Display: wayland server: X.org v: 1.21.1.21 with: Xwayland v: 24.1.9
    compositor: kwin_wayland driver: X: loaded: modesetting
    alternate: fbdev,vesa dri: iris gpu: xe display-ID: 0
  Monitor-1: eDP-1 model: Samsung 0x415a built: 2020 res: mode: 3840x2400
    hz: 60 scale: 200% (2) to: 1920x1200 dpi: 323 gamma: 1.2 chroma: red:
    x: 0.682 y: 0.322 green: x: 0.235 y: 0.725 blue: x: 0.137 y: 0.047 white:
    x: 0.314 y: 0.329 size: 302x189mm (11.89x7.44") diag: 356mm (14")
    ratio: 16:10 modes: 3840x2400
  API: EGL v: 1.5 hw: drv: intel iris platforms: device: 0 drv: iris
    device: 1 drv: swrast gbm: drv: iris surfaceless: drv: iris wayland:
    drv: iris x11: drv: iris
  API: OpenGL v: 4.6 compat-v: 4.5 vendor: intel mesa v: 25.3.3-arch1.1
    glx-v: 1.4 direct-render: yes renderer: Mesa Intel Graphics (LNL)
    device-ID: 8086:64a0 memory: 30.13 GiB unified: yes display-ID: :1.0
  API: Vulkan v: 1.4.335 layers: 2 device: 0 type: integrated-gpu
    name: Intel Graphics (LNL) driver: mesa intel v: 25.3.3-arch1.1
    device-ID: 8086:64a0 surfaces: N/A
  Info: Tools: api: clinfo, eglinfo, glxinfo, vulkaninfo
    de: kscreen-console,kscreen-doctor wl: wayland-info x11: xdpyinfo,xprop
Audio:
  Device-1: Intel Lunar Lake-M HD Audio vendor: Lenovo
    driver: sof-audio-pci-intel-lnl
    alternate: snd_sof_pci_intel_lnl,snd_hda_intel bus-ID: 00:1f.3
    chip-ID: 8086:a828 class-ID: 0401
  API: ALSA v: k6.18.4-1-MANJARO status: kernel-api with: aoss
    type: oss-emulator tools: alsactl,alsamixer,amixer
  Server-1: JACK v: 1.9.22 status: off tools: N/A
  Server-2: PipeWire v: 1.4.9 status: active with: 1: pipewire-pulse
    status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
    tools: pactl,pw-cat,pw-cli,wpctl
Network:
  Device-1: Intel BE201 320MHz driver: iwlwifi v: kernel port: N/A
    bus-ID: 00:14.3 chip-ID: 8086:a840 class-ID: 0280
  IF: wlp0s20f3 state: up mac: <filter>
  IP v4: <filter> type: dynamic noprefixroute scope: global
    broadcast: <filter>
  IP v6: <filter> type: noprefixroute scope: link
  Info: services: NetworkManager, systemd-timesyncd, wpa_supplicant
  WAN IP: <filter>
Bluetooth:
  Device-1: Intel driver: btintel_pcie v: 0.1 bus-ID: 00:14.7
    chip-ID: 8086:a876 class-ID: 0d11
  Report: rfkill ID: hci0 rfk-id: 2 state: up address: see --recommends
Logical:
  Message: No logical block device data found.
RAID:
  Message: No RAID data found.
Drives:
  Local Storage: total: 953.87 GiB used: 134.08 GiB (14.1%)
  SMART Message: Required tool smartctl not installed. Check --recommends
  ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Western Digital model: WD PC
    SN7100S SDFPMSL-1T00-1101 size: 953.87 GiB block-size: physical: 512 B
    logical: 512 B speed: 63.2 Gb/s lanes: 4 tech: SSD serial: <filter>
    fw-rev: 7611M001 temp: 22.9 C scheme: GPT
  Message: No optical or floppy data found.
Partition:
  ID-1: / raw-size: 953.57 GiB size: 953.57 GiB (100.00%)
    used: 134.07 GiB (14.1%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
    label: N/A uuid: 6b027c88-6eb9-4ede-8986-d7e790d03cfd
  ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%)
    used: 12.6 MiB (4.2%) fs: vfat dev: /dev/nvme0n1p1 maj-min: 259:1 label: N/A
    uuid: FDE1-39FB
  ID-3: /home raw-size: 953.57 GiB size: 953.57 GiB (100.00%)
    used: 134.07 GiB (14.1%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
    label: N/A uuid: 6b027c88-6eb9-4ede-8986-d7e790d03cfd
  ID-4: /var/cache raw-size: 953.57 GiB size: 953.57 GiB (100.00%)
    used: 134.07 GiB (14.1%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
    label: N/A uuid: 6b027c88-6eb9-4ede-8986-d7e790d03cfd
  ID-5: /var/log raw-size: 953.57 GiB size: 953.57 GiB (100.00%)
    used: 134.07 GiB (14.1%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
    label: N/A uuid: 6b027c88-6eb9-4ede-8986-d7e790d03cfd
Swap:
  Kernel: swappiness: 60 (default) cache-pressure: 100 (default) zswap: yes
    compressor: zstd max-pool: 20%
  ID-1: swap-1 type: file size: 38 GiB used: 849.7 MiB (2.2%) priority: -2
    file: /swap/swapfile
Unmounted:
  Message: No unmounted partitions found.
USB:
  Hub-1: 1-0:1 info: hi-speed hub with single TT ports: 1 rev: 2.0
    speed: 480 Mb/s (57.2 MiB/s) lanes: 1 mode: 2.0 chip-ID: 1d6b:0002
    class-ID: 0900
  Hub-2: 2-0:1 info: super-speed hub ports: 3 rev: 3.1
    speed: 20 Gb/s (2.33 GiB/s) lanes: 2 mode: 3.2 gen-2x2 chip-ID: 1d6b:0003
    class-ID: 0900
  Hub-3: 3-0:1 info: hi-speed hub with single TT ports: 8 rev: 2.0
    speed: 480 Mb/s (57.2 MiB/s) lanes: 1 mode: 2.0 chip-ID: 1d6b:0002
    class-ID: 0900
  Device-1: 3-4:2 info: Luxvisions Innotech Integrated Camera
    type: video,HID driver: hid-sensor-hub,usbhid,uvcvideo interfaces: 6
    rev: 2.0 speed: 480 Mb/s (57.2 MiB/s) lanes: 1 mode: 2.0 power: 500mA
    chip-ID: 30c9:00f7 class-ID: fe01 serial: <filter>
  Device-2: 3-6:14 info: Shenzhen Goodix USB2.0 MISC type: <vendor specific>
    driver: N/A interfaces: 1 rev: 2.0 speed: 12 Mb/s (1.4 MiB/s) lanes: 1
    mode: 1.1 power: 100mA chip-ID: 27c6:650c class-ID: ef00 serial: <filter>
  Hub-4: 4-0:1 info: super-speed hub ports: 2 rev: 3.1
    speed: 20 Gb/s (2.33 GiB/s) lanes: 2 mode: 3.2 gen-2x2 chip-ID: 1d6b:0003
    class-ID: 0900
Sensors:
  System Temperatures: cpu: N/A mobo: N/A
  Fan Speeds (rpm): cpu: 0
Repos:
  Packages: pm: pacman pkgs: 1310 libs: 345 tools: pamac,yay pm: flatpak
    pkgs: 0
  Active pacman repo servers in: /etc/pacman.d/mirrorlist
    1: https://nocix.mm.fcix.net/manjaro/stable/$repo/$arch
    2: https://codingflyboy.mm.fcix.net/manjaro/stable/$repo/$arch
    3: https://irltoolkit.mm.fcix.net/manjaro/stable/$repo/$arch
    4: https://coresite.mm.fcix.net/manjaro/stable/$repo/$arch
    5: https://nnenix.mm.fcix.net/manjaro/stable/$repo/$arch
    6: https://cofractal-ewr.mm.fcix.net/manjaro/stable/$repo/$arch
    7: https://manjaro.c3sl.ufpr.br/stable/$repo/$arch
    8: https://mirror.xenyth.net/manjaro/stable/$repo/$arch
    9: https://ziply.mm.fcix.net/manjaro/stable/$repo/$arch
    10: https://mirrors.ocf.berkeley.edu/manjaro/stable/$repo/$arch
    11: https://linorg.usp.br/manjaro/stable/$repo/$arch
    12: https://mirror.math.princeton.edu/pub/manjaro/stable/$repo/$arch
    13: https://opencolo.mm.fcix.net/manjaro/stable/$repo/$arch
    14: https://forksystems.mm.fcix.net/manjaro/stable/$repo/$arch
    15: https://mirror.fcix.net/manjaro/stable/$repo/$arch
    16: https://muug.ca/mirror/manjaro/stable/$repo/$arch
    17: https://edgeuno-bog2.mm.fcix.net/manjaro/stable/$repo/$arch
    18: https://mirrors.gigenet.com/manjaro/stable/$repo/$arch
    19: https://mirrors.sonic.net/manjaro/stable/$repo/$arch
    20: https://southfront.mm.fcix.net/manjaro/stable/$repo/$arch
    21: https://repo.ialab.dsu.edu/manjaro/stable/$repo/$arch
    22: https://ohioix.mm.fcix.net/manjaro/stable/$repo/$arch
    23: https://mirror.csclub.uwaterloo.ca/manjaro/stable/$repo/$arch
    24: https://mirrors.atlas.net.co/manjaro/stable/$repo/$arch
    25: https://volico.mm.fcix.net/manjaro/stable/$repo/$arch
Processes:
  CPU top: 5 of 397
  1: cpu: 5.7% command: firefox pid: 12334 mem: 451.8 MiB (1.4%)
  2: cpu: 1.5% command: firefox pid: 1617 mem: 564.4 MiB (1.7%)
  3: cpu: 0.9% command: plasmashell pid: 1189 mem: 275.0 MiB (0.8%)
  4: cpu: 0.7% command: firefox pid: 2067 mem: 353.4 MiB (1.1%)
  5: cpu: 0.7% command: firefox pid: 12389 mem: 340.8 MiB (1.0%)
  Memory top: 5 of 397
  1: mem: 802.6 MiB (2.5%) command: firefox pid: 2193 cpu: 0.3%
  2: mem: 564.4 MiB (1.7%) command: firefox pid: 1617 cpu: 1.5%
  3: mem: 451.8 MiB (1.4%) command: firefox pid: 12334 cpu: 5.7%
  4: mem: 386.0 MiB (1.2%) command: firefox pid: 1910 cpu: 0.2%
  5: mem: 353.4 MiB (1.1%) command: firefox pid: 2067 cpu: 0.7%
Info:
  Processes: 397 Power: uptime: 10h 13m states: freeze,mem,disk
    suspend: s2idle wakeups: 0 hibernate: platform avail: shutdown, reboot,
    suspend, test_resume image: 12.33 GiB services: org_kde_powerdevil,
    power-profiles-daemon, upowerd Init: systemd v: 258 default: graphical
    tool: systemctl
  Compilers: gcc: 15.2.1 Shell: Zsh v: 5.9 running-in: konsole inxi: 3.3.40

My system is setup similarly to yours but didn’t hibernate prior to the update (well, the log reports it did but it only lasts 1 second before un-hibernating itself). It’s still doing it after the update.

I also can’t find anything in the pacman log for the updates that would change anything for you. Perhaps check your /var/log/pacman.log for any updates that may have changed anything.

I ended up upgrading to the 6.19 kernel and hibernation works fine again. I know it’s listed as experimental, but as my laptop is a secondary device I’m not worried about it.

1 Like

I believe resume isn’t needed if you have been dealing with your pacnew files. It’s part of the systemd hook. (I don’t use hibernate though, not 100%.)

Also..

Is no-CoW set on this file? (You need it, if you have any snapshots including this. Likely there are other reasons too.)

lsattr -l /swap/swapfile

If you don’t see No_COW, then it’s not set.

(Since we can see it here, also no compression?)

And you can set nocow with:

sudo chattr +C /swap/swapfile

I just followed instructions I found online so I can’t say if any steps like adding resume to mkinitcpio.conf are unneeded.

My swap file does show No_COW, so it must have gotten set somehow.

The udev, usr and resume hooks are unneeded if one uses the systemd hook instead of the udev hook. :backhand_index_pointing_down: