当笔记本电脑盖子关闭时,如何关闭屏幕背光?

当笔记本电脑盖子关闭时,如何关闭屏幕背光?

我想在家中使用一台旧笔记本电脑(Dell E5420)作为 CentOS7 服务器,因此根本不需要在控制台上操作它,而且它上面当然也没有 X-server 或其他 GUI。

当它运行时,屏幕(显示器)总是发出一些恼人的光。我不能简单地关闭盖子,因为这会使计算机挂起。为了防止它在盖子关闭时挂起,我将 /etc/systemd/logind.conf 的 HandleLidSwitch 选项配置为 ="ignore"。这样做是可行的,系统在盖子关闭时不会挂起,但屏幕的背光仍然亮着,而且非常刺眼,尤其是在晚上。

这不仅令人讨厌,而且还会不必要地消耗电量和屏幕寿命。我试过“ setterm -blank 1 -powersave powerdown”。如果我在控制台上发出此命令,它会起作用,但如果通过远程 ssh 终端则不起作用(“ setterm -blank 1 -powersave powerdown >> /dev/tty0” 也不起作用)。如果我通过伪终端(ssh)发出命令,结果是“

setterm:无法设置(取消)省电模式:设备的 ioctl 不合适

“。

我的最终目的是将此命令放入启动脚本或 systemd.service 中,以便在系统启动后运行。

我的问题是:有没有办法可以在不登录笔记本电脑控制台的情况下关闭屏幕背光?

顺便说一句,我尝试安装 vbetool 但失败了,也许我应该使用 yum 的另一个 repo?

非常感谢!抱歉我的英语不好,我是中国人。

答案1

要设置开机省电,可以将命令放入 /etc/rc.local 中。手动编辑它,或者:

echo 'setterm -blank 1 -powersave powerdown' >>/etc/rc.local

为了防止通过 SSH 运行时出现“不适当的 ioctl”消息,您还需要将 stdin 设置为您尝试控制的终端:

setterm -blank 1 -powersave powerdown >/dev/tty0 </dev/tty0

PS,你的英语非常棒,和大多数以英语为母语的人一样好。:)

答案2

我刚刚让它在 rocky8(无 X11)、dell M4700 笔记本电脑上运行如下:

  1. 将 LCD powersave 命令放入 root 用户脚本中
vi /root/.backlightPowersave_on.sh
#!/bin/sh
export TERM=linux
setterm -blank 1 -powersave powerdown >/dev/tty0 </dev/tty0
chmod 644 /root/.backlightPowersave_on.sh
  1. 创建一个 systemd 服务(启动描述符 - 单元文件),并延迟 60 秒来调用该脚本。(延迟是为了处理我尚未找到的启动依赖项)
vi /etc/systemd/system/boot.lcd.powerSave-on.service
[Unit]
Description=Backlight Powersave On at bootup
[Service]
Type=simple
ExecStartPre=/bin/sleep 60
ExecStart=/bin/sh /root/.backlightPowersave_on.sh
[Install]
WantedBy=multi-user.target

现在安装系统启动服务并激活

chmod 644 /etc/systemd/system/boot.lcd.powerSave-on.service
systemctl enable boot.lcd.powerSave-on.service
reboot

检查它是否运行正常,当然还要检查真正的 LCD(真正的按键打开 LCD,然后超时后,LCD 背光熄灭,我的 M4700 笔记本电脑在 LCD 背光关闭的情况下从 30W 降至 20W!):

systemctl status boot.lcd.powerSave-on.service

相关内容