やりたいこと
やりたいことはリモートサーバーにSSHでログインして,レンダリング含んだシミュレーションの実行するということ.OpenGLを使うアプリケーションを使いたい場合,エラーが出てきて困っていた.
X11 Forwardingなどを利用して,クライアント側でOpenGLアプリケーションが表示できるようにする手法は出てくるのだが,Windows Subsystem for Linuxを使っているため,OpenGLのバージョンをそろえたりすることが難しいであろうことが容易に想像できる上に,結果の動画だけscpなりで引っ張ってこれれば十分なためより簡素な方法を探していた.
原因
SSHすると出力先がクライアント側のディスプレイになるらしく,DISPLAY
という変数を書き換えてやったらいけた.
whoで立ち上がっているセッションを確認し,一番上にあった,:1
というアドレスに以下のようにDISPLAY
変数を書き換える.
export DISPLAY=:1
原理
https://sites.google.com/site/teyasn001/ubuntu-12-10/huan-jing-bian-shudisplay
を見ると,ディスプレイの表示は,アプリケーションがDISPLAY変数で定義されたサーバーに実行を要求するという,ク
ライアントサーバー方式を使っているらしい.このような仕組みを取ることで柔軟に画面が出力できるようになっているようだ.
変数を書き換える前はクライアント側のディスプレイが出力先になっており,クライアント側にOpenGLの対応物がないと,エラーが出るということになっていたのだろう.
なおDISPLAY
のシンタックスは
DISPLAY=(ホスト):(ディスプレイ).(スクリーン)
である.