Laptop does not sleep or hibernate when lid is closed

Hi, and thanks in advance for any and all help! Like the title states, my laptop (a Pinebook Pro) does not hibernate / suspend when the laptop lid is closed. I frequently pick up the laptop only to find that the battery is drained to 0% and it needs to be plugged in. Not the end of the world, but not ideal.

I’ve updated the Energy Saving - System Settings as follows, which implies the laptop should sleep (does sleep mean suspend or hibernate in this context?) when the lid is closed

I’m reading through the Arch Power management guide and it seems like I need to hook into acpid or systemd events to trigger the machine to hibernate or suspend on lid close, but I’m curious why this doesn’t work “out of the box” once configured in the system settings.

Suspending via systemctl seems to work properly

$ systemctl suspend # worked well

$ journalctl --system --boot=0 | grep "suspend entry"
Nov 27 08:10:56 pinebook kernel: PM: suspend entry (s2idle)
Nov 27 08:14:53 pinebook kernel: PM: suspend entry (s2idle)
Nov 27 08:44:47 pinebook kernel: PM: suspend entry (s2idle)

$ journalctl --system --boot=0 | grep "suspend exit"
Nov 27 08:10:56 pinebook kernel: PM: suspend exit
Nov 27 08:15:03 pinebook kernel: PM: suspend exit
Nov 27 08:44:58 pinebook kernel: PM: suspend exit

I’m also considering installing TLP (reading through the docs first) but I’m not sure it’s going to solve my problem. It seems more like some system event isn’t being handled properly.

Here’s some device info

System:    Kernel: 5.9.6-1-MANJARO-ARM aarch64 bits: 64 compiler: gcc v: 10.2.0 
           parameters: console=tty1 console=ttyS2,1500000 root=LABEL=ROOT_MNJRO rw rootwait video=eDP-1:1920x1080@60 
           video=HDMI-A-1:1920x1080@60 bootsplash.bootfile=bootsplash-themes/manjaro/bootsplash 
           Desktop: KDE Plasma 5.20.2 tk: Qt 5.15.1 wm: kwin_x11 dm: SDDM Distro: Manjaro ARM 
Machine:   Type: ARM Device System: Pine64 Pinebook Pro details: N/A serial: <filter> 
Battery:   ID-1: cw2015-battery charge: 17% condition: N/A volts: 3.9/N/A model: N/A type: Li-ion serial: N/A status: Charging 
Memory:    RAM: total: 3.71 GiB used: 2.11 GiB (57.0%) 
           RAM Report: missing: Required program dmidecode not available 
CPU:       Info: 6-Core (2-Die) model: N/A variant-1: cortex-a53 variant-2: cortex-a72 bits: 64 type: MCP MCM arch: ARMv8 
           family: 8 model-id: N/A stepping: 4 microcode: N/A bogomips: 0 
           Speed: 1008 MHz min/max: 408/1416:2000 MHz Core speeds (MHz): 1: 408 2: 408 3: 408 4: 408 5: 1008 6: 1008 
           Features: aes asimd cpuid crc32 evtstrm fp pmull sha1 sha2 
           Vulnerabilities: Type: itlb_multihit status: Not affected 
           Type: l1tf status: Not affected 
           Type: mds status: Not affected 
           Type: meltdown status: Not affected 
           Type: spec_store_bypass status: Vulnerable 
           Type: spectre_v1 mitigation: __user pointer sanitization 
           Type: spectre_v2 status: Vulnerable 
           Type: srbds status: Not affected 
           Type: tsx_async_abort status: Not affected 
Graphics:  Device-1: display-subsystem driver: rockchip_drm v: N/A bus ID: N/A chip ID: rockchip:display-subsystem 
           Device-2: rk3399-mali driver: panfrost v: kernel bus ID: N/A chip ID: rockchip:ff9a0000 
           Device-3: Microdia HP Integrated Webcam type: USB driver: uvcvideo bus ID: 2-1.2:4 chip ID: 0c45:6321 
           Display: x11 server: 1.20.9 compositor: kwin_x11 driver: modesetting alternate: fbdev 
           resolution: <xdpyinfo missing> 
           Message: Unable to show advanced data. Required tool glxinfo missing. 
Audio:     Device-1: simple-audio-card driver: asoc_simple_card bus ID: N/A chip ID: simple-audio-card:es8316-sound 
           Device-2: simple-audio-card driver: N/A bus ID: N/A chip ID: simple-audio-card:hdmi-sound 
           Sound Server: ALSA v: k5.9.6-1-MANJARO-ARM 
Network:   Message: No ARM data found for this feature. 
           IF-ID-1: wlan0 state: up mac: <filter> 
           IP v4: <filter> type: dynamic noprefixroute scope: global broadcast: <filter> 
           IP v6: <filter> type: noprefixroute scope: link 
           WAN IP: <filter> 
Drives:    Local Storage: total: 58.24 GiB used: 9.60 GiB (16.5%) 
           SMART Message: Required tool smartctl not installed. Check --recommends 
           ID-1: /dev/mmcblk2 model: DA4064 size: 58.24 GiB block size: physical: 512 B logical: 512 B serial: <filter> 
           rev: 0x8 scheme: MBR 
           Message: No Optical or Floppy data was found. 
RAID:      Message: No RAID data was found. 
Partition: ID-1: / raw size: 58.00 GiB size: 57.05 GiB (98.35%) used: 9.55 GiB (16.7%) fs: ext4 dev: /dev/mmcblk2p2 
           label: ROOT_MNJRO uuid: a24b5d20-0aef-4e1d-a516-c5f272500ed3 
           ID-2: /boot raw size: 213.6 MiB size: 213.4 MiB (99.89%) used: 58.3 MiB (27.3%) fs: vfat dev: /dev/mmcblk2p1 
           label: BOOT_MNJRO uuid: DC5B-1D91 
Swap:      Kernel: swappiness: 60 (default) cache pressure: 100 (default) 
           ID-1: swap-1 type: zram size: 5.56 GiB used: 0 KiB (0.0%) priority: 100 dev: /dev/zram0 
Unmounted: Message: No unmounted partitions found. 
USB:       Hub: 1-0:1 info: Full speed (or root) Hub ports: 1 rev: 2.0 speed: 480 Mb/s chip ID: 1d6b:0002 
           Hub: 2-0:1 info: Full speed (or root) Hub ports: 1 rev: 2.0 speed: 480 Mb/s chip ID: 1d6b:0002 
           Hub: 2-1:2 info: Genesys Logic Hub ports: 4 rev: 2.0 speed: 480 Mb/s chip ID: 05e3:0608 
           Device-1: 2-1.1:3 info: HP Wireless Optical Comfort Mouse type: Keyboard,Mouse driver: hid-generic,usbhid 
           interfaces: 2 rev: 2.0 speed: 12 Mb/s chip ID: 03f0:a407 
           Device-2: 2-1.2:4 info: Microdia HP Integrated Webcam type: Video driver: uvcvideo interfaces: 2 rev: 2.0 
           speed: 480 Mb/s chip ID: 0c45:6321 
           Hub: 3-0:1 info: Full speed (or root) Hub ports: 1 rev: 1.1 speed: 12 Mb/s chip ID: 1d6b:0001 
           Device-1: 3-1:2 info: HAILUCK USB KEYBOARD type: Keyboard,HID driver: hid-generic,hid-multitouch,usbhid 
           interfaces: 2 rev: 1.1 speed: 1.5 Mb/s chip ID: 258a:001e 
           Hub: 4-0:1 info: Full speed (or root) Hub ports: 1 rev: 1.1 speed: 12 Mb/s chip ID: 1d6b:0001 
           Hub: 5-0:1 info: Full speed (or root) Hub ports: 1 rev: 2.0 speed: 480 Mb/s chip ID: 1d6b:0002 
           Hub: 6-0:1 info: Full speed (or root) Hub ports: 1 rev: 3.0 speed: 5 Gb/s chip ID: 1d6b:0003 
           Hub: 7-0:1 info: Full speed (or root) Hub ports: 1 rev: 2.0 speed: 480 Mb/s chip ID: 1d6b:0002 
           Hub: 8-0:1 info: Full speed (or root) Hub ports: 1 rev: 3.0 speed: 5 Gb/s chip ID: 1d6b:0003 
Sensors:   System Temperatures: cpu: 43.9 C mobo: N/A 
           Fan Speeds (RPM): N/A 
Info:      Processes: 204 Uptime: 32m Init: systemd v: 246 Compilers: gcc: 10.2.0 Packages: pacman: 754 lib: 201 Shell: Bash 
           v: 5.0.18 running in: konsole inxi: 3.1.08 

This is probably an application that’s preventing the computer from going to sleep. E.G. VLC, qBitTorrent, … all can prevent the computer from going to sleep and you should turn that feature off in the application itself or close that/those applications before closing the lid.

Which exact application you ask??? Well, I don’t know which applications you have; I only know that on my machine, I had to turn it off in VLC and qBitTorrent…


@Fabby in this case this a nearly fresh install. I believe I’ve only installed the Telegram messenger and nothing else, and this behavior happens when have very few applications open (for example, only Firefox and Konsole).

I was able to find this command

$ systemd-inhibit --list
WHO            UID  USER   PID  COMM            WHAT                                                                       WHY                                                        MODE 
NetworkManager 0    root   748  NetworkManager  sleep                                                                      NetworkManager needs to turn off networks                  delay
UPower         0    root   984  upowerd         sleep                                                                      Pause device polling                                       delay
PowerDevil     1000 dawson 1171 org_kde_powerde handle-power-key:handle-suspend-key:handle-hibernate-key:handle-lid-switch KDE handles power events                                   block
Screen Locker  1000 dawson 1143 ksmserver       sleep                                                                      Ensuring that the screen gets locked before going to sleep delay

4 inhibitors listed.

I’m going to look into PowerDevil to understand how it is configured. Maybe it’s a misconfiguration there :crossed_fingers: If everything seems fine with PowerDevil I’ll keep searching. It seems like it could also be Firefox in certain circumstances (video running in tab) but these usually aren’t the case.

Link to Reddit post that talks about systemd-inhibit --list

1 Like

Sadly, mainline Uboot does not support suspend/sleep yet.

And it’s becoming difficult to maintain the kernel patches that allow it on BSP uboots.

@Strit if U-boot doesn’t support suspend/sleep, what is it doing when I run systemctl suspend?

It looks like this also discussed in these threads:

You also mention in this post that U-boot uses Trusted Firmware - ARM, and TF- ARM doesn’t support suspend / sleep. I skimmed some docs on TF - ARM but it’s not entirely clear to me what TF - ARM does relative to U-boot, or what TF - ARM would need to do to support suspend / sleep.

Can you recommend any links to help me understand this? Or is there a ticket / issue on Github (or similar) that describes the problem? Just trying to wrap my head around it all

Probably whats called S2Idle. Which is a form of sleep.

TF-A is the trust zone of the bootloader. It’s a builtin section of uboot.

Some developers are working on getting it done. Like “theotherjimmy” from the Pinebook matrix room, who works for TF-A.

1 Like

Maybe you know, or maybe not
Lots of PBP have the magnet in wrong place, ~1/2 inch too high
So, it sleeps when lid is about 1" from closed, then wakes with lid fully closed
Careful observation can see this

I have heard about this. Although it’s not something software can fix.

1 Like