如何将我的 HDMI 显示器置于(或退出)省电模式?

如何将我的 HDMI 显示器置于(或退出)省电模式?

我正在使用 Raspberry Pi 在办公室中运行信息显示。我希望在非工作时间时显示器处于省电模式。我本来打算cron在一天的开始和结束时执行一些操作,但xset dpms force off不起作用。

我已禁用屏幕保护程序(因此显示屏在白天保持打开状态)并在文件中添加xset s off,xset -dpms和。xset s noblank/etc/xdg/lxsession/LXDE/autostart

以下是结果xset q

Keyboard Control:
  auto repeat:  on    key click percent:  0    LED mask:  00000000
  XKB indicators:
    00: Caps Lock:   off    01: Num Lock:    off    02: Scroll Lock: off
    03: Compose:     off    04: Kana:        off    05: Sleep:       off
    06: Suspend:     off    07: Mute:        off    08: Misc:        off
    09: Mail:        off    10: Charging:    off    11: Shift Lock:  off
    12: Group 2:     off    13: Mouse Keys:  off
  auto repeat delay:  500    repeat rate:  33
  auto repeating keys:  00ffffffdffffbbf
                        fadfffefffedffff
                        9fffffffffffffff
                        fff7ffffffffffff
  bell percent:  0    bell pitch:  400    bell duration:  100
Pointer Control:
  acceleration:  20/10    threshold:  10
Screen Saver:
  prefer blanking:  no    allow exposures:  yes
  timeout:  0    cycle:  600
Colors:
  default colormap:  0x20    BlackPixel:  0x0    WhitePixel:  0xffff
Font Path:
  built-ins
DPMS (Energy Star):
  Standby: 600    Suspend: 600    Off: 600
  DPMS is Disabled

更新:xset s blank && xset +dpms && xset dpms force off将使显示屏空白,但不会将其置于省电模式。在阅读了很多线程之后,我仍然无法获得正确的系统时间(我认为这可能是防火墙问题)...

答案1

这个问题确实属于 raspberrypi.stackexchange.com,因为它是 Raspberry Pi 特定的问题:Raspberry Pi 的内核帧缓冲区驱动程序不支持 X 用于使显示器进入睡眠状态的功能:

https://github.com/raspberrypi/linux/issues/487

在解决此问题之前,X 无法使用 DPMS 将显示器置于睡眠状态。

您可能对程序有一些运气/opt/vc/bin/tvservicetvservice -o关闭 HDMI 电源,然后tvservice -p重新打开 HDMI 电源。

答案2

消除错误路径

首先,几乎所有现代显示器都支持睡眠模式。另外,xset dpms force off(或其他方式告诉 X 服务器)是关闭监视器的正确方法(在 X 下)。我已经使用它很多年了,没有任何问题。

其次,提及DPMS is Disabled仅来自您的xset -dpms.一旦您发出xset dpms force off或其他与 DPMS 相关的 xset 选项,它就会重新启用,因此无论有或没有 ,您都会得到相同的结果,这是正常的xset +dpms

假设

现在,您写道您看到了“静态”。该显示器支持传统的模拟电视信号,对吗?

一种假设是,电视实际上并没有进入睡眠状态,而是切换到模拟电视,并且由于没有信号,因此会显示通常所说的“静电”。

检验该假设

这是一个可以尝试的选项。尝试插入另一台显示器,最好是不支持模拟电视的显示器。查看该显示器是否进入睡眠状态xset dpms force off。如果是,则 Pi 端的设置没问题。

尝试变体

也许其他视频状态会指示电视保持在正确的频道上,但会减少功耗。而不是xset dpms force off,请尝试以下操作:

xset dpms force standby
xset dpms force suspend

看看其中之一是否能产生您需要的东西。每次尝试后至少等待 10 秒,看看效果如何。按 Pi 键盘上的任意键将恢复显示(可以远程使用xset dpms force on)。

投入生产

如果上述变体之一满足您的需要,那么很好,请分享!

如果没有,并且您确实需要使用原始显示器,请在菜单中查看是否可以以某种方式禁用模拟电视功能。

请分享您从这些尝试中学到的东西。

答案3

行不通vbetool

暂停屏幕(物理上表示显示器进入待机模式):vbetool dpms suspend 恢复(退出待机模式):vbetool dpms on

答案4

(您阅读了没有经验的人发表的文章,试图向您推销不同的操作系统或掩盖中国设备缺乏能源之星,或者没有阅读源代码 - 所有这些都不是建议阅读的材料) 。

xset 开;或者 ; xset+dpms

除非您想要消隐问题(例如唤醒),否则您不能同时执行这两项操作。两者都做同样的工作,但略有不同——它们确实会互相干扰。 (RedHat linux 因在这方面错误指导人们而闻名,并且在许多发行版中默认都打开了两者,debian 也是如此)

当您使用“xset dpms Force off ; sleep 2”时,您必须睡眠,这样它就不会被您按 Enter 唤醒(假设您使用键盘而不是脚本执行此操作)

至于 HDMI,我不确定 Energy Star 是否是 HDMI 1.0-2.x 规范的一部分。但如果它有 1/2 有效,那么也许就是这样。

linux 和 freeBSD 很漂亮,但如果您不是“大团队的一部分”,那么认为它可以运行您的家庭娱乐中心是不切实际的(控制媒体设备执行硬件特定的操作,如能源之星、真正的硬件 mpeg 播放支持(电视)等) 。他们确实有库、计划和工作设备的示例 - 但这些东西都是短暂的(你必须使用已知良好的相同操作系统和相同设备,或者“祝你好运”)

相关内容