How to disable auto suspend when I close laptop lid?

I’m using archlinux. It never auto-suspend before a recent system upgrade(maybe I updated the kernel?).

I think it is related to laptop-mode or acpid, so I stop them:

/etc/rc.d/laptop-mode stop
/etc/rc.d/acpid stop

I also edit /etc/laptop-mode/laptop-mode.conf:

ENABLE_LAPTOP_MODE_TOOLS=0

Then I edit /etc/acpi/actions/lm_lid.sh, commented out the last line:

# /usr/sbin/laptop_mode auto

But all of above don’t work. Following lines were found in /var/log/kernel.log(unrelated lines omitted):

Oct 23 15:29:20 localhost kernel: [18617.549098] PM: Syncing filesystems ... done.
Oct 23 15:29:20 localhost kernel: [18618.001898] PM: Preparing system for mem sleep
Oct 23 15:29:30 localhost kernel: [18618.039565] Freezing user space processes ... (elapsed 0.01 seconds) done.
Oct 23 15:29:30 localhost kernel: [18618.052596] Freezing remaining freezable tasks ... (elapsed 0.01 seconds) done.
Oct 23 15:29:30 localhost kernel: [18618.065999] PM: Entering mem sleep
Oct 23 15:29:30 localhost kernel: [18618.066167] Suspending console(s) (use no_console_suspend to debug)
Oct 23 15:29:30 localhost kernel: [18618.097917] sd 0:0:0:0: [sda] Synchronizing SCSI cache
Oct 23 15:29:30 localhost kernel: [18618.098103] sd 0:0:0:0: [sda] Stopping disk
Oct 23 15:29:30 localhost kernel: [18618.270537] snd_hda_intel 0000:00:14.2: power state changed by ACPI to D3hot
Oct 23 15:29:30 localhost kernel: [18619.274374] PM: suspend of devices complete after 1196.192 msecs
Oct 23 15:29:30 localhost kernel: [18619.274691] PM: late suspend of devices complete after 0.313 msecs
Oct 23 15:29:30 localhost kernel: [18619.440877] ohci_hcd 0000:00:14.5: wake-up capability enabled by ACPI
Oct 23 15:29:30 localhost kernel: [18619.642144] ACPI: Waking up from system sleep state S3
Oct 23 15:29:30 localhost kernel: [18620.049424] PM: noirq resume of devices complete after 333.503 msecs
Oct 23 15:29:30 localhost kernel: [18620.049852] PM: early resume of devices complete after 0.334 msecs
Oct 23 15:29:30 localhost kernel: [18622.418605] PM: resume of devices complete after 2371.906 msecs
Oct 23 15:29:30 localhost kernel: [18622.419018] PM: Finishing wakeup.
Oct 23 15:29:30 localhost kernel: [18622.419019] Restarting tasks ... done.
Oct 23 15:29:30 localhost kernel: [18622.464752] video LNXVIDEO:01: Restoring backlight state

I think this is not caused by pm-susend, because /var/log/pm-suspend.log don’t log anything.

I don’t want my laptop go to sleep when I close the lid. How to do it?

Kernel version: 3.6.2-1-ARCH

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

Edit /etc/systemd/logind.conf and make sure you have

HandleLidSwitch=ignore

which will make it ignore the lid being closed. (You may need to also undo the other changes you’ve made.)

Then, you’ll want to reload logind.conf to make your changes go into effect (thanks to Ehtesh Choudhury for pointing this out in the comments):

systemctl restart systemd-logind

Full details over at the archlinux Wiki.

The man page for logind.conf also has the relevant information,

HandlePowerKey=, HandleSuspendKey=, HandleHibernateKey=,
HandleLidSwitch=

    Controls whether logind shall handle the system power and sleep
    keys and the lid switch to trigger actions such as system power-off
    or suspend. Can be one of “ignore”, “poweroff”, “reboot”, “halt”, “kexec”,
    “suspend”, “hibernate”, “hybrid-sleep” and “lock”. If “ignore”, logind will
    never handle these keys. If “lock”, all running sessions will be
    screen-locked; otherwise, the specified action will be taken in the
    respective event. Only input devices with the “power-switch” udev tag
    will be watched for key/lid switch events. HandlePowerKey=
    defaults to “poweroff”. HandleSuspendKey= and HandleLidSwitch=
    default to “suspend”. HandleHibernateKey= defaults to “hibernate”.

Method 2

You can use this to temporarily disable lid-switch events:

systemd-inhibit --what=handle-lid-switch sleep 1d


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x