web-dev-qa-db-ja.com

「xsetdpmsforce off」でデュアルモニターをオフにすると機能しません-なぜですか?

次のコマンドを実行して、デュアルモニターをオフにします。xset dpms force offですが、プライマリモニターだけがオフになっていますが、もう一方は「ブラックスクリーン」(オフになっているかのように)だけですが、オフではありません。 LEDはまだ緑色に光っていて、モニターがオンになっていることを示しています。

6
Rox

正確に何を達成しようとしていますか?モニターの使用を管理するために、xrandrがスクリプトで選択する武器となるrandr拡張を使用できます/使用する必要があります。

xrandr -qは、コンピューターのすべての出力と、接続されているモニターに関する情報を表示します。出力を無効にするには、xrandr --output=HDMI1 --offのようなものを置きます。あなたの場合、「HDMI1」をxrandr -qが出力に名前が付けられていることを示すものに置き換える必要があります。出力を無効にすると、Xはこのモニターを(まったく)使用しなくなり、スリープ状態になる可能性が高くなります。

実際にモニターをオフにしたい場合、問題はxsetがコンピューターに接続したモニターの数を認識も気にもしないことです。これは、xsetがコンポーネントではなくXサーバーと通信し、ハードウェアではないためです。つまり、xsetは1つの「dpmsforceoff」リクエストを送信し、そのリクエストはXserverによってモニターの1つに(処理されて)送信されます。プライマリモニター、つまりxrandr -qで示されるリストの最初に表示される出力に接続されているモニターに送信されると思います。これは、gnomeを使用している場合、gnomeパネルが存在するモニターと同じです。

実際には、xsetリクエストを2回発行する必要があると思います。それでもすぐに解決しない場合は、接続されているモニターのどれがプライマリでどれがプライマリでないかを明確にする必要があると思います。

xrandrを使用すると、--primaryオプションを使用してプライマリ出力/モニターを設定できます。出力がHDMI1およびHDMI2の場合、次のことを試してみます。

xrandr --output HDMI2 --primary
xset dpms force off
xrandr --output HDMI1 --primary
xset dpms force off

xrandr -qの出力を確認し、モニターをリストと逆の順序で、つまりボトムアップでオフにするスクリプトを記述します。その理由は、(x)randrは任意に出力をデフォルトの出力にすることができるはずですが、特にクローズドソースドライバーが関係している場合は、それが完璧に機能することを信じない/信じないからです。モニターを逆の順序で操作することで、「自然な」プライマリモニターを最後にオフにし、問題が発生した場合に「自然な」プライマリモニターを使用できるようにすることは、完全に機能するXserverを使用する最良の方法です。

4
Bananguin

質問の明確化:Roxは、彼が去ったときにモニターをオフにしたいと思っていると思います(ただし、コンピューターは実行したままにしておきます)。これは通常、スクリーンセーバーがしばらくの間きれいなパターンを示した後に発生します。 「xset dpms force off」コマンドを使用すると、DPMSスクリーンセーバーが起動するまで30分待たなくても、問題が発生していないかどうかをテストできます(タイムアウトをDPMSオフに設定することもできますが、これは、テストを高速化するもう1つの方法です)。

私はこれを私のシステムでテストしました。 01:00.0 VGA互換コントローラー:Advanced Micro Devices [AMD] nee ATI RV620 LE [Radeon HD 3450]と入力すると、「xset dpms force off」と入力すると、両方のモニターに3秒間「信号なし」と表示され、その後LEDをオンにします。オレンジ色(つまり、スリープモード)。 "わたしにはできる"!

だから...あなたの状況の何が悪いのかを理解するには:モニターを交換して、2台目のモニターがDPMS対応であることを確認できますか?そうだとすれば、予想通り、これはバグかもしれません。おそらくあなたのチップ/ソフトウェアにかなり特有です。最新のソフトウェアを実行していますか? (例:ubuntu 12.04)。

0
rew