在启动时关闭 Debian 笔记本电脑 tty 监视器

use*_*503 6 linux laptop debian systemd

我有一台 24/7 开启的笔记本电脑,它运行 debian,没有窗口系统(只有 tty)。我浏览了各种推荐 setterm 或 vbetool 的帖子,并且尝试制作 systemd 启动脚本,但这不起作用。这些方法也不适用于 ssh。

如何在启动时关闭笔记本电脑的屏幕?或者ssh?

(关闭盖子并修改 /etc/systemd/logind.conf 不起作用,因为如果我然后通过 ssh 重新启动它,它不会再次启动,因为 BIOS 会将其置于睡眠模式,我无法更改BIOS 中的此行为)

编辑:如果这是一个关键细节,我很抱歉,但我完全忘记说我已将 nomodeset 添加到/etc/default/grub.

use*_*686 7

编辑:如果这是一个关键细节,我很抱歉,但我完全忘记说我已将 nomodeset 添加到 /etc/default/grub 中的内核选项中。

然后你就无法关闭屏幕电源,因为使用 nomodeset 你已经禁用了大部分 GPU 驱动程序,以及它通常提供的所有输出控件。


原答案:

setterm应该管用; 但是,它的工作方式是在其输入终端上执行特殊操作,因此如果您需要从 SSH 或服务使用它,则必须专门将其输入和输出重定向到“控制台”终端之一。除此之外,有时它使用 Linux 特定的 ioctl 调用,但有时它使用终端级“ANSI 代码”,因此您需要使用适合 Linux 控制台的内容覆盖 TERM(而不是通过 SSH 获得的任何内容) )。

# TERM=linux setterm --blank force </dev/tty1 >/dev/tty1
Run Code Online (Sandbox Code Playgroud)
[Service]
Type=oneshot
Environment="TERM=linux"
ExecStart=setterm --blank force
StandardInput=tty
TTYPath=/dev/tty1
# (StandardInput=file:/dev/tty1 may actually work better.)
Run Code Online (Sandbox Code Playgroud)

如果这不会关闭屏幕,请尝试添加--powersave powerdown.

您还可以在内核级别完全禁用视频输出;使用内核选项启动video=LVDS-1:D以禁用名为“LVDS-1”的输出。(检查 /sys/class/drm 以查找输出名称。)

vbetool 不太可能再工作了,因为它通过直接调用“视频 BIOS”来发挥作用,而现代系统并不是这样做的。(即便如此,它还是绕过了操作系统,有时最终会造成混乱。)