笔记本电脑电源按钮不工作

笔记本电脑电源按钮不工作

我有一台(看起来相当奇特的)戴尔 Latitude XT2 笔记本,运行 Lubuntu 12.04,全新安装。尝试让电源按钮按预期工作(打开注销对话框lubuntu-logout),但没有成功:电源按钮除了长按强制关机外什么也不做。

电源按钮本身被检测到并正常工作。在 xfce4-power-manager-settings 中,当我将电源按钮操作从“询问”(= 打开lubuntu-logout)设置为“关机”时,笔记本电脑成功关机;按下电源按钮被正确识别和处理。

编辑:我从问题中删除了大量信息,因为它似乎与问题无关。

答案1

如果尚未安装,请安装acpi和。acpi-support

  • /etc/acpi/events
  • 应该有一个名为的文件powerbtn(如果没有,请创建它)。我的安装中的文件内容是:
#/etc/acpi/events/powerbtn
# 当用户按下电源按钮并调用时,将调用此方法
# /etc/acpi/powerbtn.sh 进行进一步处理。

# 您也可以指定占位符 %e。它将传递
# 通过整个内核事件消息传递给程序
# 指定的。

# 我们需要对“button power.*”和“button/power.*”做出反应,因为
内核改变的数量。

事件=按钮[ /]电源
操作=/etc/acpi/powerbtn.sh
  • action您可以通过编辑此文件中的变量将操作与电源按钮关联起来。
  • 在我的安装中,内容/etc/acpi/powerbtn.sh是:
/bin/sh #!/bin/sh 复制代码
#/etc/acpi/powerbtn.sh
# 当电源按钮被按下时启动关机
已按下 # 。

[ -r /usr/share/acpi-support/power-funcs ] && . /usr/share/acpi-support/power-funcs

# getXuser 获取属于 $displaynum 中的显示的 X 用户。
# 如果您想要前台 X 用户,请使用 getXconsole!
获取X用户(){
        用户 =`pinky -fw | awk'{如果 ($2 == ":'$displaynum'" || $(NF) == ":'$displaynum'" ) {打印 $1;退出;}}'`
        如果 [ x"$user" = x"" ]; 然后
                startx=`pgrep -n startx`
                如果 [ x"$startx" != x"" ]; 然后
                        用户=`ps -o 用户 --no-headers $startx`
        如果 [ x"$user" != x"" ]; 然后
                userhome=`getent passwd $user | cut -d: -f6`
                导出 XAUTHORITY=$userhome/.Xauthority
        别的
                导出 XAUTHORITY=""
        导出 XUSER=$user
}

# 如果我们正处于恢复过程中,则跳过。
测试 -f /var/lock/acpisleep && 退出 0

# 如果当前 X 控制台用户正在运行电源管理守护进程,
# 处理暂停/恢复请求,让它们处理策略,这很有效
# 与‘acpi-support’的‘/usr/share/acpi-support/policy-funcs’文件相同。

[ -r /usr/share/acpi-support/power-funcs ] && 获取Xconsole
PMS=“gnome-settings-daemon kpowersave xfce4-电源管理器”
PMS="$PMS 指导电源管理器.py dalston-power-applet"

如果 pidof x $PMS > /dev/null; 那么
        出口
elif 测试“$XUSER”!=“”&&pidof dcopserver>/dev/null&&测试-x/usr/bin/dcop&&/usr/bin/dcop--user$XUSERkdedkded loadedModules|grep-qklaptopdaemon;然后
        出口
elif 测试“$XUSER”!=“”&&测试-x /usr/bin/qdbus;然后
        kded4pid=$(pgrep -n -u $XUSER kded4)
        如果测试“$kded4pid”!=“”;那么
                dbusaddr=$(su-$XUSER-c“grep-z DBUS_SESSION_BUS_ADDRESS/proc/$kded4pid/environ”)
                如果测试“$dbusaddr”!=“”&&su-$XUSER-c“export$dbusaddr;qdbusorg.kde.kded”|grep-qpowerdevil;然后
                        出口

# 如果一切都失败了,就启动普通关机。
/sbin/shutdown -h 现在“按下电源按钮”

答案2

这似乎是一个已知错误在 Lubuntu 中。在 xfce4-power-manager-settings 中,有几种操作可供按下电源按钮时选择。当您选择“关机”时,它会按预期工作,但当您选择“询问”时,什么也不会发生。

解决方法是评论#10。对我来说,它有用。看来 xfce4 和 LXDE 之间存在潜在问题。

您可以使用 (附加) acpi 守护程序创建相同的行为,如 green7 所述。他的回答中的版本关闭 PC 而不显示对话框,但我们在聊天中讨论过,您可以lubuntu-logout从脚本开始,而不是简单地关闭计算机。不过,这需要一些工作,因为您必须以允许连接到 X 的用户身份启动注销应用程序,并提供必要的环境变量(如$DISPLAY)。由于环境变量似乎在发行版之间有所不同,我认为您必须仔细查找 LXDE 的变量。


解决方法链接已损坏,但似乎已恢复(尽管网站速度很慢)。以下是要点:

login to your LXDE session (Lubuntu settings in the combo box)
open a terminal
kill xfce4-power-manager: xfce4-power-manager -q
openbox --reconfigure
start xfce4-power-manager: xfce4-power-manager

[...]

我的看法是 xfce4-power-manager 和 LXDE 之间存在冲突,并且这些应用程序的启动顺序似乎很重要......奇怪......

相关内容