3

I use Ubuntu 12.04 in my laptop. I'm trying to configure to hibernate when lid is closed. However, not is working. I did the following steps to solve the problem:

  • I enable in /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla
  • System Settings - Power
  • I used the dconf Editor.

When I lid closed instead hibernate is suspend. I try run sudo pm-hibernate and works fine.

Any suggestion ?

4
  • 1
    Did you modify your power settings so that it will use hibernate instead of suspend on lid closing?
    – Thomas Ward
    May 7, 2013 at 6:11
  • What ? I modify my power settings to use hibernate instead of suspend. However, when I lid close is suspend. May 7, 2013 at 6:18
  • And you set it for BOTH of the power settings, for the battery AND AC connected states, right?
    – Thomas Ward
    May 7, 2013 at 6:20
  • Yes, both are configured like hibernate. May 7, 2013 at 6:22

2 Answers 2

2

Note: try pm-hibernate in a shell before trying this. If it works, go ahead.

I fixed it by...

  • Using cinnamon-settings / Power to set the event to Hibernate. This sets the dconf values /org/gnome/settings-daemon/plugins/power/lid-close-ac-action and /org/gnome/settings-daemon/plugins/power/lid-close-battery-action to what you want

  • Editing /etc/acpi/events/lm_lid (gksudo gedit /etc/acpi/events/lm_lid) and filling it with

event=button/lid.*
action=/etc/acpi/lid.sh
  • Editing /etc/acpi/lid.sh (gksudo gedit /etc/acpi/lid.sh). If it's empty, fill it with
grep -q closed /proc/acpi/button/lid/*/state
if [ $? = 0 ]
then
    su - gabriel -c 'gsettings get org.cinnamon.settings-daemon.plugins.power lid-close-ac-action' | grep hibernate
    if [ $? = 0 ]
    then
        pm-hibernate
    fi
fi

Otherwise, look for the right place to put the code above

Replace gabriel by your username. You have to do the su thing before calling gsettings get because this script is ran as root, and running gsettings get as root would return the preferences for root instead of your user.

You could just call pm-hibernate but then changing options in cinnamon-settings would not work anymore. I did not care to check whether my notebook is on AC or battery, because it's irrelevant: I want the same behaviour always anyway. Maybe someone wants to add an if there?

2

Here is how you fix that.

In your file:

/etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla

Make sure you have two settings in there

[Enable hibernate by default in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

[Enable hibernate by default in logind]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate
ResultActive=yes

Here is why. In this file:

/var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla

it sets the two options to "no"

The file you created should be executed after the one in /var/lib so it should take priority over it (Tested it and it does). You can read the information for that here under the section "Evaluation Order". When your "upower" option is set to "yes" you can select hibernate from the power settings in Ubuntu. However, you are still unable to hibernate because the 10-vendor.d file was setting the login1.hibernate to "no" and that must also be a "yes"

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .