libGLエラー:一致するfbConfigsまたはビジュアルオブジェクトがありません。 Glxgearsエラー、Docker、CUDA、VirtualGL |

libGLエラー:一致するfbConfigsまたはビジュアルオブジェクトがありません。 Glxgearsエラー、Docker、CUDA、VirtualGL |

私が走るときGLXギア、次のエラーが発生します。

libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
Error: couldn't get an RGB, Double-buffered visual

私のシステムはdockerイメージとしてUbuntu 16.04ですnvidia/cuda:8.0-runtime-ubuntu16.04

この画像にはVirtualGLとTurboVNCが含まれており、対応する起動パラメータは次のとおりです。

docker run --runtime=nvidia --privileged -d -v /tmp/.X11-unix/X0:/tmp/.X11-unix/X0 -e USE_DISPLAY="7" my_image

基本画像を変更しても問題ありませんnvidia/cuda:10.2-runtime-ubuntu18.04。ただし、このコンテナが属するアプリケーションにはCUDA 8が必要です。

ライブラリの削除に関するいくつかの提案が見つかりましたsudo rm /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1。しかし、これはうまくいきません。

Ubuntu 16.04、CUDA 8:

user@host:/opt/noVNC$ sudo ldconfig -p | grep -i libGL.so
    libGL.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1
    libGL.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libGL.so
    libGL.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/mesa/libGL.so
user@host:/usr/lib/x86_64-linux-gnu$ ll libGL*
    lrwxrwxrwx 1 root root      13 Jun 14  2018 libGL.so -> mesa/libGL.so
    lrwxrwxrwx 1 root root      32 May 25 14:14 libGLESv1_CM_nvidia.so.1 -> libGLESv1_CM_nvidia.so.440.33.01
    -rw-r--r-- 1 root root   63696 Nov 12  2019 libGLESv1_CM_nvidia.so.440.33.01
    lrwxrwxrwx 1 root root      29 May 25 14:14 libGLESv2_nvidia.so.2 -> libGLESv2_nvidia.so.440.33.01
    -rw-r--r-- 1 root root  111416 Nov 12  2019 libGLESv2_nvidia.so.440.33.01
    -rw-r--r-- 1 root root  911218 Oct 23  2015 libGLU.a
    lrwxrwxrwx 1 root root      15 Oct 23  2015 libGLU.so -> libGLU.so.1.3.1
    lrwxrwxrwx 1 root root      15 Oct 23  2015 libGLU.so.1 -> libGLU.so.1.3.1
    -rw-r--r-- 1 root root  453352 Oct 23  2015 libGLU.so.1.3.1
    lrwxrwxrwx 1 root root      26 May 25 14:14 libGLX_indirect.so.0 -> libGLX_nvidia.so.440.33.01
    lrwxrwxrwx 1 root root      26 May 25 14:14 libGLX_nvidia.so.0 -> libGLX_nvidia.so.440.33.01
    -rw-r--r-- 1 root root 1114496 Nov 12  2019 libGLX_nvidia.so.440.33.01
user@host:/usr/lib/x86_64-linux-gnu$ ll mesa
    -rw-r--r-- 1 root root     31 Jun 14  2018 ld.so.conf
    lrwxrwxrwx 1 root root     14 Jun 14  2018 libGL.so -> libGL.so.1.2.0
    lrwxrwxrwx 1 root root     14 Jun 14  2018 libGL.so.1 -> libGL.so.1.2.0
    -rw-r--r-- 1 root root 471680 Jun 14  2018 libGL.so.1.2.0

Ubuntu 18.04、CUDA 10:

user@host:/opt/noVNC$ sudo ldconfig -p | grep -i libGL.so
    libGL.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libGL.so.1
user@host:/usr/lib/x86_64-linux-gnu$ ll libGL*
    lrwxrwxrwx 1 root root      14 May 10  2019 libGL.so.1 -> libGL.so.1.0.0
    -rw-r--r-- 1 root root  567624 May 10  2019 libGL.so.1.0.0
    lrwxrwxrwx 1 root root      32 May 20 16:43 libGLESv1_CM_nvidia.so.1 -> libGLESv1_CM_nvidia.so.440.33.01
    -rw-r--r-- 1 root root   63696 Nov 12  2019 libGLESv1_CM_nvidia.so.440.33.01
    lrwxrwxrwx 1 root root      29 May 20 16:43 libGLESv2_nvidia.so.2 -> libGLESv2_nvidia.so.440.33.01
    -rw-r--r-- 1 root root  111416 Nov 12  2019 libGLESv2_nvidia.so.440.33.01
    lrwxrwxrwx 1 root root      15 May 21  2016 libGLU.so.1 -> libGLU.so.1.3.1
    -rw-r--r-- 1 root root  453352 May 21  2016 libGLU.so.1.3.1
    lrwxrwxrwx 1 root root      15 May 10  2019 libGLX.so.0 -> libGLX.so.0.0.0
    -rw-r--r-- 1 root root   68144 May 10  2019 libGLX.so.0.0.0
    lrwxrwxrwx 1 root root      16 Feb 19 05:09 libGLX_indirect.so.0 -> libGLX_mesa.so.0
    lrwxrwxrwx 1 root root      20 Feb 19 05:09 libGLX_mesa.so.0 -> libGLX_mesa.so.0.0.0
    -rw-r--r-- 1 root root  488344 Feb 19 05:09 libGLX_mesa.so.0.0.0
    lrwxrwxrwx 1 root root      26 May 20 16:43 libGLX_nvidia.so.0 -> libGLX_nvidia.so.440.33.01
    -rw-r--r-- 1 root root 1114496 Nov 12  2019 libGLX_nvidia.so.440.33.01
    lrwxrwxrwx 1 root root      22 May 10  2019 libGLdispatch.so.0 -> libGLdispatch.so.0.0.0
    -rw-r--r-- 1 root root  612792 May 10  2019 libGLdispatch.so.0.0.0
user@host:/usr/lib/x86_64-linux-gnu$ ll mesa
    ls: cannot access 'mesa': No such file or directory

ホストコンピュータにCUDA 10.2がありますが、これが必要かどうか、問題が発生する可能性があるかどうかわかりません。

この問題を解決する方法がわかりません。

どんなアドバイスもありがとうございます。

ベストアンサー1

これら2つのエラーは次にも表示されます。WSL2(Linux用Windowsサブシステム)を使用してDockerのGUIを介してROSを実行する

このエラーはlibGL error: No matching fbConfigs or visuals found次の方法で解決できます。

export LIBGL_ALWAYS_INDIRECT=1

このエラーはlibGL error: failed to load driver: swrast次の方法で解決できます。

sudo apt-get install -y mesa-utils libgl1-mesa-glx


おそらく無関係な注意:

「DockerガイドでGUIを使用するROS」を実行するには、dbusもインストールされている必要があります。

sudo apt-get update
sudo apt-get install -y dbus

dbusをインストールした後にのみ問題の2つのエラーが表示されるので、ここでは関係がないと思いますが、問題の背景を知らないので役に立つかもしれません。 dbus をインストールするとエラーが削除されます。D-Busライブラリが正しく設定されていないようです。システムuuidを読み取れません。 「/var/lib/dbus/machine-id」を開けません。

おすすめ記事