在 Ubuntu 14.04 中合上盖子时笔记本电脑不休眠

Gab*_*iel 5 lid 14.04

好的,我知道已经有几个与此相关的问题。我尝试了很多解决方案都无济于事。我将在这里详细说明我做了什么以及我的配置文件如何,希望好心人能指出我遗漏了什么。

一些初步信息:

  • 我从 14.01 .iso 安装了 Ubuntu 14,它变成了 14.04,因为我猜是因为我在安装过程中选中了自动更新的选项。
  • 我有一个外接显示器。这在某些情况下似乎是相关的。
  • 正如这里所解释的,在 Ubuntu 14 的电源设置中没有让 PC 休眠的选项。只能挂起,什么也不做。
  • pm-hibernate 工作正常。
  • 我的交换区比我的 RAM 稍大

1. 我有一个 Mint(如果我没记错的话是 14 个),在我添加一些脚本之前,关闭盖子不会休眠。在 Ubuntu 14 中/etc/acpi/lid.sh,我无法像在 Mint 中那样进行编辑。我试图用以下内容创建一个:

echo 'ok' > ok
grep -q closed /proc/acpi/button/lid/*/state
if [ $? = 0 ]
then
    su - gabriel -c 'dconf read /org/gnome/settings-daemon/plugins/power/lid-close-ac-action' | grep hibernate
    if [ $? = 0 ]
    then
        pm-hibernate
    fi
fi
Run Code Online (Sandbox Code Playgroud)

ok当我合上盖子时不会创建该文件,这意味着该脚本从未被调用。

我试图将lid.sh 移动到events/.

作为建议在这里,我试图将它重命名为lid.sh.post和将其移动到/etc/acpi/local/和目录名单及其他几种组合(不带/ .post,中/etc/acpi/local/events/...)

2. 我按照这里的说明并安装了gnome-tweak-tool,所以我可以将合上盖子的动作设置为休眠。在我这样做之后,控制面板/电源中的下拉菜单是空白的(不是暂停也不是“什么都不做”),但现在它们再次显示“什么都不做”,我不知道我做了什么来改变它。并运行

su - gabriel -c 'dconf read /org/gnome/settings-daemon/plugins/power/lid-close-ac-action'
Run Code Online (Sandbox Code Playgroud)

仍然返回“无”,这会影响我的(无论如何可能没用)脚本。

3. 我按照这里的说明:编辑/etc/systemd/logind.conf并设置HandleLidSwitch为“休眠”:

cat /etc/systemd/logind.conf | grep -i lid
#HandleLidSwitch=hibernate
#LidSwitchIgnoreInhibited=yes
Run Code Online (Sandbox Code Playgroud)

我也试过

#LidSwitchIgnoreInhibited=no
Run Code Online (Sandbox Code Playgroud)

4. 作为解释这里这里,我编辑/var/lib/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla

root@gabriel-linux:/var/lib/polkit-1/localauthority/50-local.d# cat com.ubuntu.enable-hibernate.pkla 
[Re-enable hibernate by default in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

[Re-enable hibernate by default in logind]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate
ResultActive=yes
Run Code Online (Sandbox Code Playgroud)

Gab*_*iel 4

lid.sh为了调用我的 script( ) /etc/acpi/,我必须在/etc/acpi/events/.

需要调用该文件lm_lid,内容如下:

event=button/lid.*
action=/etc/acpi/lid.sh
Run Code Online (Sandbox Code Playgroud)

重新启动系统以使此生效。

注意:在我弄清楚这一切之前,我又回到了 Linux Mint(现在是 17),现在有了正确的文件,就可以工作了。不过我想听听 Ubuntu 用户的意见。