Как перевести мой HDMI-дисплей в режим энергосбережения (и из него)?

20

Я использую 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 очистит дисплей, но не переведет его в режим энергосбережения. После прочтения большого количества потоков я все еще не могу определить правильное системное время (я думаю, что это может быть проблема с брандмауэром) ...

shaun5
источник
Вы получаете сообщение об ошибке xsetили ничего не происходит? И какой дистрибутив? Если это не сработает, я думаю, что ACPI не скомпилирован в ядро. В качестве диагностики, пожалуйста, опубликуйте вывод xset q. Спасибо.
Jivings
@Jivings: без ошибок, экран становится статичным. До того, как я отключил гашение, экран фактически гаснет (не уверен, что он перешел в режим энергосбережения). Я использую 2012-09-18-wheezy-raspbian с обновлениями / обновлениями программного обеспечения / прошивки.
Хорошо. Можете ли вы отредактировать свой вопрос с выводом xset q?
Jivings
@jivings извините, я был вне города, но вернулся и обновил вопрос с информацией, которую вы запросили.
Внизу написано DPMS is disabled. Включите: xset +dpmsтогда ваши команды должны работать ...
Jivings

Ответы:

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 снова.

AGWA
источник
2

Рассеять неправильные пути

Во-первых, практически все современные дисплеи поддерживают спящие режимы. Также xset dpms force off(или другие способы сообщить X-серверу) - это правильный способ (под X) отключить мониторы. Я использовал это годами без помех.

Во-вторых, упоминание DPMS is Disabledисходит только от вас xset -dpms. Как только вы xset dpms force offзапускаете или другой параметр xset, связанный с DPMS, он снова включается, поэтому вполне нормально, что вы получаете один и тот же результат с или без 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

CDuv
источник
1
Я думаю, что vbetool только для x86. Таким образом, не поможет ARM
Ренан
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 s включен; ИЛИ ; xset + dpms

вы НЕ МОЖЕТЕ делать и то, и другое, если только вы не хотите глушить проблемы (например, проснуться) оба выполняют одну и ту же работу немного по-разному - они мешают друг другу. (RedHat linux известен тем, что вводит в заблуждение людей и поставляет множество дистрибутивов, оба из которых включены по умолчанию, как и Debian)

когда вы используете «xset dpms force off; sleep 2», вы должны спать, чтобы он не проснулся при нажатии Enter (если вы делаете это, используя клавиатуру, а не скрипт)

Что касается HDMI, я не уверен, является ли Energy Star частью спецификации HDMI 1.0-2.x. но если это сработало 1/2, то, возможно, это так.

linux и freeBSD изящны, но если вы не являетесь «частью большой команды», непрактично думать, что он может управлять вашим домашним развлекательным центром (управление мультимедийным оборудованием с помощью аппаратных средств, таких как Energy Star, настоящая аппаратная поддержка воспроизведения mpeg (ТВ) и т. д.) , у них есть библиотеки, инициативы и примеры работающих устройств, но эти вещи недолговечны (вы должны использовать ту же ОС и одно и то же устройство, которые вам известны или «удачи»)

dontsaywe
источник