Linux cli:笔记本电脑盖关闭时禁用睡眠

Linux cli:笔记本电脑盖关闭时禁用睡眠

我的基于 Debian 的发行版(antix)上没有 systemd,而且也没有桌面环境。当盖子关闭时,如何使我的笔记本电脑仅显示空白(或禁用)屏幕,而不是暂停并保持暂停按钮正常工作

答案1

完全禁用盖子。

首先,您需要找出盖子开关的路径。这可以通过检查具有唤醒功能的进程列表来完成:

cat /proc/acpi/wakeup

在输出中,其中一行将对应于盖子,并且看起来类似于以下输出(可能相同):

LID0      S3    *enabled   platform:PNP0C0D:00

为了在内核级别完全禁用盖子开关,您可以使用unbind内核的功能。(将PNP0C0D:00路径更改为与您的盖子相对应的路径):

echo 'PNP0C0D:00' | sudo tee /sys/bus/acpi/drivers/button/unbind

一旦确认盖子确实被禁用,您只需添加该命令即可/etc/rc.local使其在启动时执行。

合上盖子后屏幕空白

这会稍微复杂一些,因为您需要指定udev规则才能让一个事件(盖子)触发另一个事件(禁用屏幕)。

首先,您需要找出指向笔记本电脑内部显示屏的路径。最好首先测试背光的亮度控制,而不是整个显示器的启用/禁用。

有一个指向背光控件的系统路径,在大多数笔记本电脑上可以通过以下方式访问它cd /sys/class/backlight/*/

在该 sysfs 文件夹内,您应该会看到类似于以下内容的控制文件列表:

./actual_brightness
./bl_power
./brightness
./max_brightness
./power/async
./power/autosuspend_delay_ms
./power/control
./power/runtime_active_kids
./power/runtime_active_time
./power/runtime_enabled
./power/runtime_status
./power/runtime_suspended_time
./power/runtime_usage
./scale
./type
./uevent

以及、等的目录路径devicepowersubsystem

brightnessmax_brightness应对应于当前设置和范围的最大限制。您应该能够使用echo并赋予另一个值来控制笔记本电脑显示屏本身的亮度,如下所示:

echo "100" | sudo tee /sys/class/backlight/*/brightness

一旦您确定亮度控制确实按照 cli 的预期工作,请报告回来,我将解释如何监视盖子关闭事件以触发适当的 udev 规则。

答案2

这也可以通过 轻松配置systemd。这Arch Linux 维基总结得很好:

systemd处理一些与电源相关的 ACPI 事件,其操作可以在/etc/systemd/logind.conf/etc/systemd/logind.conf.d/*.conf中配置- 请参阅登录.conf(5)。在没有专用电源管理器的系统上,这可能会取代通常用于对这些 ACPI 事件做出反应的 acpid 守护进程。

确保值HandleLidSwitchHandleLidSwitchDocked和均已在配置文件中HandleLidSwitchExternalPower设置。ignore

请注意更古老但类似的答案/问题如何忽略盖子开关动作?

相关内容