複数の xserver ディスプレイを「オフスクリーン」または「ヘッドレス」で実行する

複数の xserver ディスプレイを「オフスクリーン」または「ヘッドレス」で実行する

GPU とモニターは 1 つしかありませんが、2 台以上のディスプレイを実行したいと考えています。2 台目のディスプレイではモニターに何も表示する必要はありません。ダミー出力が理想的です。

新しいディスプレイを開始するには startx を使用します。

startx -- :1

これまでのところ順調です。Ctrl + Alt + Fx (x は数字で、私のコンピューターでは 7 または 8) を使用して、コンピューター上の 2 つのディスプレイを切り替えることができます。

問題は、両方のディスプレイが使用可能で、現在ディスプレイ 0 を使用しているときにディスプレイ 1 を録画しようとすると、録画されたビデオに黒い画面が表示されることです。主な問題は、tty がアクティブでないときに xserver が更新されないことにあるようです。

ffmpg の x11grab 経由または VLC を使用して録画すると、意図したとおりに動作することを確認しました。

これ以外に、Xephyr、Xnest、Xvfb を試してみましたが、必要な機能は備えているものの、ディスプレイ 1 で実行しているものはグラフィックの負荷が非常に高く (OpenGL)、さらにその上で録画もしているため、これらを使用できませんでした。

また、ディスプレイを起動するために、Xdummy スクリプトと一緒に xserver-xorg-video-dummy を使用することも試みましたが、これは機能しますが、OpenGL アプリケーションでは機能しません。

この問題に関するご助力は大歓迎です!

答え1

Xephyrを使った適切な回避策を見つけました。バーチャルGL

XephyrとバーチャルGL次に、好みの設定で Xephyr を起動します。

Xephyr -screen 1024x768 :1

すべてがうまくいけば、Xephyr で OpenGL アクセラレーションを使用して実行可能ファイルを起動できるようになります。

DISPLAY=:1 vglrun -- glxgears

関連情報