A Micro Toolbox

ソフトウェアのニッチな問題の対処記録です

WSLでgnuplotを動かすとlibGL errorになる

WSLのUbuntsu 18.04 LTSでgnuplotを動かしたら、グラフが表示されたもののlibGL errorが2行出た。

 

gnuplot> plot sin(x)

QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-volvox'

libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast

 

.bash_profileに次の1行を追加して読み込みなおしたら、libGCのエラーは解消した。

export LIBGL_ALWAYS_INDIRECT=1

 

この環境変数についてのメモ:

http://xjman.dsl.gr.jp/xf86_4/DRI6.html

 LIBGL_ALWAYS_INDIRECT, この変数を定義すると libGL.so はハードウェア アクセラレーションではなく必ず間接レンダリングを使うようになります。 レンダリングのエラーを切り分ける時に便利です。

 

 

おまけ。

 

もう一つのメッセージ XDG_RUNTIME_DIR not setも 環境変数XDG_RUNTIME_DIRを追加して解消した。

 

.bash_profileに次の行を追加。

export XDG_RUNTIME_DIR="$HOME/xdg_runtime_dir"
rm -rf $XDG_RUNTIME_DIR
mkdir $XDG_RUNTIME_DIR
chmod 700 $XDG_RUNTIME_DIR

 

本来どこに作ればよいのかよくわからない。

/tmp配下に作る例が多いけど、必ずというわけでもなさそうだし、いったん管理しやすくてローカルにあるユーザのHOME配下に固定した。

 

https://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html

$XDG_RUNTIME_DIR defines the base directory relative to which user-specific non-essential runtime files and other file objects (such as sockets, named pipes, ...) should be stored. The directory MUST be owned by the user, and he MUST be the only one having read and write access to it. Its Unix access mode MUST be 0700.