# hibernation fails with Dell Latitude E6230

## NTwoO

Hi all,

My laptop fails to thaw after hibernate. thawing shows:

```
    2.374390] scsi 0:0:0:0: Direct-Access     ATA      Samsung SSD 850  2B6Q PQ: 0 ANSI: 5

[    2.376240] sd 0:0:0:0: [sda] 976773168 512-byte logical blocks: (500 GB/466 GiB)

[    2.376305] sd 0:0:0:0: Attached scsi generic sg0 type 0

[    2.379280] sd 0:0:0:0: [sda] Write Protect is off

[    2.380603] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00

[    2.380625] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA

[    2.384026]  sda: sda1 sda2 sda3

[    2.386143] sd 0:0:0:0: [sda] Attached SCSI disk

[    2.387524] PM: Hibernation image partition 8:2 present

[    2.387527] PM: Looking for hibernation image.

[    2.387748] PM: Image not found (code -22)

[    2.387752] PM: Hibernation image not present or could not be loaded.

[
```

pm-hibernate produces the following in pm-suspend.log

```
Initial commandline parameters: 

Blacklisting 01grub.

Blacklisting 90clock.

Blacklisting 00powersave.

Sat Oct 15 13:16:43 CEST 2016: Running hooks for hibernate.

Running hook /usr/lib64/pm-utils/sleep.d/00logging hibernate hibernate:

Linux tarang 4.4.21-gentoo #4 SMP Tue Oct 11 15:21:48 CEST 2016 x86_64 Intel(R) Core(TM) i5-3320M CPU @ 2.60GHz GenuineIntel GNU/Linux

Module                  Size  Used by

rfcomm                 31829  12

bnep                   10354  2

x86_pkg_temp_thermal     4727  0

intel_powerclamp        7741  0

btusb                  28665  0

btrtl                   4192  1 btusb

btbcm                   6111  1 btusb

btintel                 6392  1 btusb

iwldvm                158384  0

iwlwifi               142986  1 iwldvm

              total        used        free      shared  buff/cache   available

Mem:        8077604      303788     7348128       62064      425688     7644220

Swap:      17825788           0    17825788

/usr/lib64/pm-utils/sleep.d/00logging hibernate hibernate: success.

Running hook /usr/lib64/pm-utils/sleep.d/00powersave hibernate hibernate:

/usr/lib64/pm-utils/sleep.d/00powersave hibernate hibernate: disabled.

Running hook /usr/lib64/pm-utils/sleep.d/01grub hibernate hibernate:

/usr/lib64/pm-utils/sleep.d/01grub hibernate hibernate: disabled.

Running hook /usr/lib64/pm-utils/sleep.d/01laptop-mode hibernate hibernate:

/usr/lib64/pm-utils/sleep.d/01laptop-mode hibernate hibernate: success.

Running hook /usr/lib64/pm-utils/sleep.d/50unload_alx hibernate hibernate:

/usr/lib64/pm-utils/sleep.d/50unload_alx hibernate hibernate: success.

Running hook /usr/lib64/pm-utils/sleep.d/75modules hibernate hibernate:

/usr/lib64/pm-utils/sleep.d/75modules hibernate hibernate: success.

Running hook /usr/lib64/pm-utils/sleep.d/90clock hibernate hibernate:

/usr/lib64/pm-utils/sleep.d/90clock hibernate hibernate: disabled.

Running hook /usr/lib64/pm-utils/sleep.d/94cpufreq hibernate hibernate:

/usr/lib64/pm-utils/sleep.d/94cpufreq hibernate hibernate: success.

Running hook /usr/lib64/pm-utils/sleep.d/95led hibernate hibernate:

/usr/lib64/pm-utils/sleep.d/95led hibernate hibernate: not applicable.

Running hook /usr/lib64/pm-utils/sleep.d/98video-quirk-db-handler hibernate hibernate:

Kernel modesetting video driver detected, not using quirks.

/usr/lib64/pm-utils/sleep.d/98video-quirk-db-handler hibernate hibernate: success.

Running hook /usr/lib64/pm-utils/sleep.d/99video hibernate hibernate:

/usr/lib64/pm-utils/sleep.d/99video hibernate hibernate: success.

Sat Oct 15 13:16:43 CEST 2016: performing hibernate

```

/proc/cmdline is:

```
BOOT_IMAGE=/vmlinuz-4.4.21-gentoo root=/dev/sda3 ro resume=/dev/sda2 acpi_backlight=native

```

dmesg section with "echo core >> /sys/power/pm_test" set and the command pm-hibernate called

```
[ 2253.906145] Syncing filesystems ... done.

[ 2253.909866] Freezing user space processes ... (elapsed 0.001 seconds) done.

[ 2253.911322] PM: Marking nosave pages: [mem 0x00000000-0x00000fff]

[ 2253.911326] PM: Marking nosave pages: [mem 0x0009d000-0x000fffff]

[ 2253.911330] PM: Marking nosave pages: [mem 0x20000000-0x201fffff]

[ 2253.911343] PM: Marking nosave pages: [mem 0x40004000-0x40004fff]

[ 2253.911345] PM: Marking nosave pages: [mem 0xd7f0a000-0xd7ffffff]

[ 2253.911352] PM: Marking nosave pages: [mem 0xd8753000-0xd87fffff]

[ 2253.911357] PM: Marking nosave pages: [mem 0xd8fb3000-0xd8ffffff]

[ 2253.911360] PM: Marking nosave pages: [mem 0xda6fc000-0xda7fffff]

[ 2253.911368] PM: Marking nosave pages: [mem 0xdbbd3000-0xdc808fff]

[ 2253.911440] PM: Marking nosave pages: [mem 0xdcace000-0xdcfeffff]

[ 2253.911471] PM: Marking nosave pages: [mem 0xdd000000-0xffffffff]

[ 2253.912281] PM: Basic memory bitmaps created

[ 2253.912420] PM: Preallocating image memory... done (allocated 128611 pages)

[ 2255.063274] PM: Allocated 514444 kbytes in 1.15 seconds (447.34 MB/s)

[ 2255.063291] Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done.

[ 2255.064855] Suspending console(s) (use no_console_suspend to debug)

[ 2255.065014] wlp2s0: deauthenticating from 82:2a:a8:98:6f:fc by local choice (Reason: 3=DEAUTH_LEAVING)

[ 2255.369250] PM: freeze of devices complete after 304.335 msecs

[ 2255.380635] PM: late freeze of devices complete after 11.380 msecs

[ 2255.382257] PM: noirq freeze of devices complete after 1.618 msecs

[ 2255.382440] ACPI: Preparing to enter system sleep state S4

[ 2255.387741] ACPI : EC: EC stopped

[ 2255.387742] PM: Saving platform NVS memory

[ 2255.389170] Disabling non-boot CPUs ...

[ 2255.390618] smpboot: CPU 1 is now offline

[ 2255.399228] smpboot: CPU 2 is now offline

[ 2255.411086] smpboot: CPU 3 is now offline

[ 2255.416843] hibernation debug: Waiting for 5 seconds.

[ 2260.417369] Enabling non-boot CPUs ...

[ 2260.425218] x86: Booting SMP configuration:

[ 2260.425219] smpboot: Booting Node 0 Processor 1 APIC 0x2

[ 2260.427988]  cache: parent cpu1 should not be sleeping

[ 2260.428124] CPU1 is up

[ 2260.437263] smpboot: Booting Node 0 Processor 2 APIC 0x1

[ 2260.440046]  cache: parent cpu2 should not be sleeping

[ 2260.440180] CPU2 is up

[ 2260.450273] smpboot: Booting Node 0 Processor 3 APIC 0x3

[ 2260.453181]  cache: parent cpu3 should not be sleeping

[ 2260.453319] CPU3 is up

[ 2260.455379] ACPI : EC: EC started

[ 2260.455595] ACPI: Waking up from system sleep state S4

[ 2260.563192] PM: noirq restore of devices complete after 10.782 msecs

[ 2260.563653] PM: early restore of devices complete after 0.447 msecs

[ 2260.595983] usb usb3: root hub lost power or was reset

[ 2260.595999] usb usb4: root hub lost power or was reset

[ 2260.596535] usb usb1: root hub lost power or was reset

[ 2260.596658] usb usb2: root hub lost power or was reset

[ 2260.600432] ehci-pci 0000:00:1a.0: cache line size of 64 is not supported

[ 2260.600552] ehci-pci 0000:00:1d.0: cache line size of 64 is not supported

[ 2260.601472] sd 0:0:0:0: [sda] Starting disk

[ 2260.601612] iwlwifi 0000:02:00.0: L1 Enabled - LTR Disabled

[ 2260.608354] iwlwifi 0000:02:00.0: L1 Enabled - LTR Disabled

[ 2260.608456] iwlwifi 0000:02:00.0: Radio type=0x0-0x3-0x1

[ 2260.618245] rtc_cmos 00:02: System wakeup disabled by ACPI

[ 2260.826525] iwlwifi 0000:02:00.0: L1 Enabled - LTR Disabled

[ 2260.833156] iwlwifi 0000:02:00.0: L1 Enabled - LTR Disabled

[ 2260.833254] iwlwifi 0000:02:00.0: Radio type=0x0-0x3-0x1

[ 2260.903110] ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 300)

[ 2260.904118] usb 2-1: reset high-speed USB device number 2 using ehci-pci

[ 2260.904128] usb 1-1: reset high-speed USB device number 2 using ehci-pci

[ 2260.905213] ata1.00: ACPI cmd ef/10:06:00:00:00:00 (SET FEATURES) succeeded

[ 2260.905217] ata1.00: ACPI cmd f5/00:00:00:00:00:00 (SECURITY FREEZE LOCK) filtered out

[ 2260.905220] ata1.00: ACPI cmd b1/c1:00:00:00:00:00 (DEVICE CONFIGURATION OVERLAY) filtered out

[ 2260.905307] ata1.00: ACPI cmd 00/00:00:00:00:00:a0 (NOP) rejected by device (Stat=0x51 Err=0x04)

[ 2260.905543] ata1.00: supports DRM functions and may not be fully accessible

[ 2260.905831] ata1.00: disabling queued TRIM support

[ 2260.906866] ata1.00: ACPI cmd ef/10:06:00:00:00:00 (SET FEATURES) succeeded

[ 2260.906870] ata1.00: ACPI cmd f5/00:00:00:00:00:00 (SECURITY FREEZE LOCK) filtered out

[ 2260.906872] ata1.00: ACPI cmd b1/c1:00:00:00:00:00 (DEVICE CONFIGURATION OVERLAY) filtered out

[ 2260.906907] ata1.00: ACPI cmd 00/00:00:00:00:00:a0 (NOP) rejected by device (Stat=0x51 Err=0x04)

[ 2260.907110] ata1.00: supports DRM functions and may not be fully accessible

[ 2260.907303] ata1.00: disabling queued TRIM support

[ 2260.907628] ata1.00: configured for UDMA/133

[ 2261.297125] usb 1-1.4: reset full-speed USB device number 3 using ehci-pci

[ 2261.455105] usb 1-1.5: reset high-speed USB device number 4 using ehci-pci

[ 2261.605118] PM: restore of devices complete after 1009.323 msecs

[ 2261.613568] acpi PNP0401:00: Already enumerated

[ 2261.613814] acpi PNP0501:00: Still not present

[ 2261.615389] Restarting kernel threads ... done.

[ 2261.616635] PM: Basic memory bitmaps freed

[ 2261.616637] Restarting tasks ... done.

[ 2261.785814] cfg80211: World regulatory domain updated:

[ 2261.785819] cfg80211:  DFS Master region: unset

[ 2261.785820] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)

[ 2261.785823] cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)

[ 2261.785825] cfg80211:   (2457000 KHz - 2482000 KHz @ 20000 KHz, 92000 KHz AUTO), (N/A, 2000 mBm), (N/A)

[ 2261.785827] cfg80211:   (2474000 KHz - 2494000 KHz @ 20000 KHz), (N/A, 2000 mBm), (N/A)

[ 2261.785829] cfg80211:   (5170000 KHz - 5250000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (N/A)

[ 2261.785831] cfg80211:   (5250000 KHz - 5330000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (0 s)

[ 2261.785833] cfg80211:   (5490000 KHz - 5730000 KHz @ 160000 KHz), (N/A, 2000 mBm), (0 s)

[ 2261.785835] cfg80211:   (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 2000 mBm), (N/A)

[ 2261.785837] cfg80211:   (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 0 mBm), (N/A)

[ 2262.107271] EXT4-fs (sda3): re-mounted. Opts: data=ordered,commit=600

[ 2262.804488] EXT4-fs (sda3): re-mounted. Opts: data=ordered,commit=600

[ 2264.981047] wlp2s0: authenticate with 82:2a:a8:98:6f:fc

[ 2264.983810] wlp2s0: send auth to 82:2a:a8:98:6f:fc (try 1/3)

[ 2265.009046] wlp2s0: authenticated

[ 2265.010146] wlp2s0: associate with 82:2a:a8:98:6f:fc (try 1/3)

[ 2265.011389] wlp2s0: RX AssocResp from 82:2a:a8:98:6f:fc (capab=0x411 status=0 aid=1)

[ 2265.041376] wlp2s0: associated

```

This is the matching section from /var/log/pm-suspend.log

```
at Oct 15 14:19:22 CEST 2016: Finished.

Initial commandline parameters: 

Blacklisting 01grub.

Blacklisting 90clock.

Blacklisting 00powersave.

Sat Oct 15 14:41:04 CEST 2016: Running hooks for hibernate.

Running hook /usr/lib64/pm-utils/sleep.d/00logging hibernate hibernate:

Linux tarang 4.4.21-gentoo #4 SMP Tue Oct 11 15:21:48 CEST 2016 x86_64 Intel(R) Core(TM) i5-3320M CPU @ 2.60GHz GenuineIntel GNU/Linux

Module                  Size  Used by

rfcomm                 31829  12

bnep                   10354  2

btusb                  28665  0

btrtl                   4192  1 btusb

btbcm                   6111  1 btusb

btintel                 6392  1 btusb

x86_pkg_temp_thermal     4727  0

intel_powerclamp        7741  0

iwldvm                158384  0

iwlwifi               142986  1 iwldvm

              total        used        free      shared  buff/cache   available

Mem:        8077604      435120     7078440       77036      564044     7496384

Swap:      17825788           0    17825788

/usr/lib64/pm-utils/sleep.d/00logging hibernate hibernate: success.

Running hook /usr/lib64/pm-utils/sleep.d/00powersave hibernate hibernate:

/usr/lib64/pm-utils/sleep.d/00powersave hibernate hibernate: disabled.

Running hook /usr/lib64/pm-utils/sleep.d/01grub hibernate hibernate:

/usr/lib64/pm-utils/sleep.d/01grub hibernate hibernate: disabled.

Running hook /usr/lib64/pm-utils/sleep.d/01laptop-mode hibernate hibernate:

/usr/lib64/pm-utils/sleep.d/01laptop-mode hibernate hibernate: success.

Running hook /usr/lib64/pm-utils/sleep.d/50unload_alx hibernate hibernate:

/usr/lib64/pm-utils/sleep.d/50unload_alx hibernate hibernate: success.

Running hook /usr/lib64/pm-utils/sleep.d/75modules hibernate hibernate:

/usr/lib64/pm-utils/sleep.d/75modules hibernate hibernate: success.

Running hook /usr/lib64/pm-utils/sleep.d/90clock hibernate hibernate:

/usr/lib64/pm-utils/sleep.d/90clock hibernate hibernate: disabled.

Running hook /usr/lib64/pm-utils/sleep.d/94cpufreq hibernate hibernate:

/usr/lib64/pm-utils/sleep.d/94cpufreq hibernate hibernate: success.

Running hook /usr/lib64/pm-utils/sleep.d/95led hibernate hibernate:

/usr/lib64/pm-utils/sleep.d/95led hibernate hibernate: not applicable.

Running hook /usr/lib64/pm-utils/sleep.d/98video-quirk-db-handler hibernate hibernate:

Kernel modesetting video driver detected, not using quirks.

/usr/lib64/pm-utils/sleep.d/98video-quirk-db-handler hibernate hibernate: success.

Running hook /usr/lib64/pm-utils/sleep.d/99video hibernate hibernate:

/usr/lib64/pm-utils/sleep.d/99video hibernate hibernate: success.

Sat Oct 15 14:41:04 CEST 2016: performing hibernate

Sat Oct 15 14:41:13 CEST 2016: Awake.

Sat Oct 15 14:41:13 CEST 2016: Running hooks for thaw

Running hook /usr/lib64/pm-utils/sleep.d/99video thaw hibernate:

/usr/lib64/pm-utils/sleep.d/99video thaw hibernate: success.

Running hook /usr/lib64/pm-utils/sleep.d/98video-quirk-db-handler thaw hibernate:

/usr/lib64/pm-utils/sleep.d/98video-quirk-db-handler thaw hibernate: success.

Running hook /usr/lib64/pm-utils/sleep.d/95led thaw hibernate:

/usr/lib64/pm-utils/sleep.d/95led thaw hibernate: not applicable.

Running hook /usr/lib64/pm-utils/sleep.d/94cpufreq thaw hibernate:

/usr/lib64/pm-utils/sleep.d/94cpufreq thaw hibernate: success.

Running hook /usr/lib64/pm-utils/sleep.d/90clock thaw hibernate:

/usr/lib64/pm-utils/sleep.d/90clock thaw hibernate: disabled.

Running hook /usr/lib64/pm-utils/sleep.d/75modules thaw hibernate:

Reloaded unloaded modules.

/usr/lib64/pm-utils/sleep.d/75modules thaw hibernate: success.

Running hook /usr/lib64/pm-utils/sleep.d/50unload_alx thaw hibernate:

/usr/lib64/pm-utils/sleep.d/50unload_alx thaw hibernate: success.

Running hook /usr/lib64/pm-utils/sleep.d/01laptop-mode thaw hibernate:

/usr/lib64/pm-utils/sleep.d/01laptop-mode thaw hibernate: success.

Running hook /usr/lib64/pm-utils/sleep.d/01grub thaw hibernate:

/usr/lib64/pm-utils/sleep.d/01grub thaw hibernate: disabled.

Running hook /usr/lib64/pm-utils/sleep.d/00powersave thaw hibernate:

/usr/lib64/pm-utils/sleep.d/00powersave thaw hibernate: disabled.

Running hook /usr/lib64/pm-utils/sleep.d/00logging thaw hibernate:

/usr/lib64/pm-utils/sleep.d/00logging thaw hibernate: success.

Sat Oct 15 14:41:13 CEST 2016: Finished.

```

----------

## NTwoO

Allrighty, some pm debugging showed that the hibernate/resume works as explained in the debugging manual

https://www.kernel.org/doc/Documentation/power/basic-pm-debugging.txt

In  short, pm_hibernate fails to write the suspend image correctly, but echo disk > /sys/power/state does. Not quite sure why, yetLast edited by NTwoO on Sun Oct 16, 2016 8:16 am; edited 1 time in total

----------

## Hu

Which hibernate method are you using to write the image?  There are several choices.  Perhaps you use method A to write it, but method B to resume.  Method B finds no indication of a method B snapshot (because you have a method A snapshot), declares no snapshot, and fails to resume.

----------

## NTwoO

Interesting question. I used pm-hibernate and hibernate-script out of the box. Both fail. Using the echo disk >/sys/power/state works.  I'll do some research into the different ways of writing the image and get back to you.

----------

## Hu

I know that sys-power/hibernate-script can be configured to use any of the major methods, depending on how you set its configuration file.  I think pm-hibernate is also capable of using different methods, also depending on how it is configured.  You need to look at the configuration files for the tool(s) you want to use to see which method they use.  For sys-power/hibernate-script, the files are in /etc/hibernate.  I do not know where pm-hibernate stores its configuration.

----------

## NTwoO

/usr/lib64/pm-utils/pm-functions  is the file that seems to contain  the meat and potatoes of the code. It does do a suspend via echo disk > /sys/power/state, but I've got to clone the function and add some logging to see why the steps differ.

----------

## Zucca

You might want to see what it echoes to /sys/power/disk also. I've set it to "platform".

You may want to read to doc about the whole software suspend thing: less "/lib/modules/$(uname -r)/build/Documentation/power/swsusp.txt" for example.

I learned a lot and managed to get my suspend, hibernate and hybrid-sleep funtions all to work.

----------

## NTwoO

Thanks. will have a look.

----------

