Raspberry Piを使用してオフィスで情報ディスプレイを実行しています。営業時間外のディスプレイを省電力モードにしたい。 1日の始めと終わりに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
PDATE:xset s blank && xset +dpms && xset dpms force off
はディスプレイをブランクにしますが、省電力モードにはなりません。たくさんのスレッドを読んでも、システム時間を正しく取得することができません(ファイアウォールの問題かもしれません)...
この質問は、Raspberry Pi固有の問題であるため、実際にはraspberrypi.stackexchange.comに属しています。RaspberryPiのカーネルフレームバッファードライバーは、Xがモニターをスリープ状態にするために使用する関数をサポートしていません。
https://github.com/raspberrypi/linux/issues/487
この問題が修正されるまで、XがDPMSを使用してモニターをスリープ状態にすることはできません。
/opt/vc/bin/tvservice
プログラム:tvservice -o
HDMIの電源を切り、tvservice -p
HDMIの電源を入れ直す必要があります。
まず、事実上すべての最新のディスプレイがスリープモードをサポートしています。また、xset dpms force off
(またはXサーバーに通知する他の方法)は、(Xの下で)モニターをオフにする正しい方法です。私は何の問題もなく何年もそれを使ってきました。
次に、DPMS is Disabled
という言及は、あなたのxset -dpms
からのものです。 xset dpms force off
または他のDPMS関連のxsetオプションを発行するとすぐに再度有効になるため、xset +dpms
を使用してもしなくても同じ結果が得られるのは通常のことです。
今、あなたはあなたが「静的」を見ると書いた。このディスプレイは、従来のアナログTV信号をサポートしていますよね?
仮説の1つは、テレビがスリープ状態になる代わりに、実際にはアナログテレビに切り替わるというものです。信号がないため、通常は「静的」と呼ばれるものを示しています。
ここに試すオプションがあります。別のディスプレイを接続してみてください。理想的には、アナログテレビをサポートしていないディスプレイを接続してください。そのディスプレイがxset dpms force off
でスリープ状態になるかどうかを確認します。はいの場合、セットアップはPi側で問題ありません。
おそらく、他のビデオステートは、テレビに正しいチャネルに留まるように指示しますが、電力使用量は削減されます。 xset dpms force off
の代わりに、以下をお試しください:
xset dpms force standby
xset dpms force suspend
そして、それらの1つが必要なものを生み出しているかどうかを確認してください。それぞれが何をするかを確認するために、少なくとも10秒待ってください。 Piキーボードの任意のキーを押すと、表示が再開されます(リモートではxset dpms force on
を使用できます)。
上記のバリアントのいずれかが必要な機能を実行している場合は、問題なく共有してください!
そうでない場合で、元のディスプレイを本当に使用する必要がある場合は、アナログTV機能を何らかの方法で無効にできるかどうかをメニューで確認してください。
これらの試みから学んだことを共有してください。
vbetool
は機能しませんか?
画面を一時停止します(物理的には、モニターをスタンバイモードにするように言います):vbetool dpms suspend
再開(スタンバイモードを終了):vbetool dpms on
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 <[email protected]>
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