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


20

我正在使用Raspberry Pi在办公室中运行信息显示。我想在工作时间以外以省电模式显示。我本来打算cron在一天的开始和结束时执行某些操作,但xset dpms force off没有用。

我已在文件中添加xset s offxset -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将使显示为空白,但不会将其置于省电模式。在阅读了很多线程之后,我还是不能正确地获得系统时间(我认为这可能是防火墙问题)...


您是从中得到错误xset还是什么都没有发生?还有什么发行版?如果它不起作用,我可能会认为ACPI没有编译到内核中。作为诊断,请发布的输出xset q。谢谢。
吉文斯,2012年

@Jivings:没有错误,屏幕显示为静态。在禁用消隐之前,屏幕实际上将变为消隐(不确定是否进入节能模式)。我正在将2012-09-18-wheezy-raspbian与软件/固件更新/升级一起使用。

好的。您可以使用输出来编辑问题xset q吗?
吉文斯2012年

@jivings对不起,我不在城里,但返回并用您请求的信息更新了问题。

底部说DPMS is disabled。打开它:xset +dpms然后您的命令应该可以使用...
Jivings

Answers:


9

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

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

在解决此问题之前,X不可能使用DPMS使显示器进入睡眠状态。

/opt/vc/bin/tvservice程序可能会有些运气:tvservice -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)。

投入生产

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

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

请分享您从这些尝试中学到的知识。


1

不行vbetool

挂起屏幕(通常说显示器进入待机模式):vbetool dpms suspend 恢复(退出待机模式):vbetool dpms on


1
我认为vbetool仅适用于x86。因此对ARM无济于事
Renan 2012年

0

您可以打开和关闭HDMI本身。

  • HDMI开启: /opt/vc/bin/tvservice -p

  • HDMI关闭: /opt/vc/bin/tvservice -o

有关tvservice二进制的更多详细信息:

# dpkg -S /opt/vc/bin/tvservice
libraspberrypi-bin: /opt/vc/bin/tvservice

# dpkg -s libraspberrypi-bin
Package: libraspberrypi-bin
Maintainer: Serge Schneider <serge@raspberrypi.org>
Description: Miscellaneous Raspberry Pi utilities
 This package contains various utilities for interacting with the Raspberry
 Pi's VideoCore IV.
Homepage: https://github.com/raspberrypi/firmware

# /opt/vc/bin/tvservice
Usage: tvservice [OPTION]...
  -p, --preferred                   Power on HDMI with preferred settings
  -e, --explicit="GROUP MODE DRIVE" Power on HDMI with explicit GROUP (CEA, DMT, CEA_3D_SBS, CEA_3D_TB, CEA_3D_FP, CEA_3D_FS)
                                      MODE (see --modes) and DRIVE (HDMI, DVI)
  -t, --ntsc                        Use NTSC frequency for HDMI mode (e.g. 59.94Hz rather than 60Hz)
  -c, --sdtvon="MODE ASPECT [P]"    Power on SDTV with MODE (PAL or NTSC) and ASPECT (4:3 14:9 or 16:9) Add P for progressive
  -o, --off                         Power off the display
  -m, --modes=GROUP                 Get supported modes for GROUP (CEA, DMT)
  -M, --monitor                     Monitor HDMI events
  -s, --status                      Get HDMI status
  -a, --audio                       Get supported audio information
  -d, --dumpedid <filename>         Dump EDID information to file
  -j, --json                        Use JSON format for --modes output
  -n, --name                        Print the device ID from EDID
  -h, --help                        Print this information

-2

(您阅读的文章是由没有经验的人发布的,他们试图向您出售其他操作系统,或者掩饰中国设备缺乏能源之星,或者没有阅读源代码-不建议您全部阅读这些材料) 。

开启; 要么 ; 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回放支持(TV)等) 。它们确实具有库,计划和工作设备的示例-但是这些事情是短暂的(您必须使用已知良好或“祝您好运”的相同操作系统和相同设备)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.