![Linux setterm -powersave - 错误:“无法(取消)设置省电模式”](https://linux22.com/image/1369710/Linux%20setterm%20-powersave%20-%20%E9%94%99%E8%AF%AF%EF%BC%9A%E2%80%9C%E6%97%A0%E6%B3%95%EF%BC%88%E5%8F%96%E6%B6%88%EF%BC%89%E8%AE%BE%E7%BD%AE%E7%9C%81%E7%94%B5%E6%A8%A1%E5%BC%8F%E2%80%9D.png)
我正在尝试完全关闭我所用设备内置的 LCD 面板的背光。虽然屏幕空白,但在黑暗的房间中您仍然可以看到背光发出的光。
我思考(作为 root)我应该能够执行以下操作:
setterm -powersave powerdown > /dev/tty1
一旦屏幕变黑,它应该会强制进入 DPMS 状态。但是,尽管man setterm
建议这-powersave
是一个有效的选项,但无论我提供哪个建议的参数(开启、关闭、断电等),我都会收到错误:
setterm: cannot (un)set powersave mode: Invalid argument
我在其他两个 Ubuntu 安装中尝试过此操作,得到了类似的结果。
有人可以建议:
- 为什么这个命令似乎在任何地方都不起作用?
- 是否有更好的方法来控制背光功率?
附加信息:
答案1
我花了 5 个小时尝试 setterm、fbset 和其他...
这将关闭我主板上的监视器电源:
echo 1 > /sys/devices/pci0000\:00/0000\:00\:01.0/graphics/fb0/blank
也可以尝试搜索 LVDSbacklight
描述符/sys/
答案2
实际上我也遇到了同样的问题并且设法解决了它。
在 strace 的帮助下,我发现 setterm -powersave powerdown 将 ioctl() 发送到 fd 0 (stdin)。
所以我尝试了:
root@zanac:~# setterm -powersave powerdown < /dev/tty1
并且成功了(命令返回 0)。我无法验证 ATM 命令是否确实按预期执行,因为我是通过 SSH 执行此操作的。此外,似乎您的配置很奇怪,所以 YMMV。
答案3
我发现了为什么setterm
会出现错误... 在某种程度上。似乎通过 SSH 控制物理控制台屏幕的方法(即重定向输出到)setterm
在/dev/tty1
这种情况下不起作用。
我被以下变化的事实所震惊做完全按照预期工作(它从 SSH 会话中清除控制台的物理屏幕):
root@joggler:/home/bob# setterm -clear all > /dev/tty1
至于为什么有些setterm
命令有效而其他命令无效,我没有答案。
对于那些发现这个问题与 Joggler 问题有关的人来说,我应该澄清一下,不是可以做我想做的事(完全禁用背光)setterm -powersave powerdown
:屏幕仍然像以前一样昏暗。