首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >libGL错误:找不到匹配的fbConfigs或视觉系统,找到了\ CUDA齿轮错误,码头,数据自动化系统,VirtualGL

libGL错误:找不到匹配的fbConfigs或视觉系统,找到了\ CUDA齿轮错误,码头,数据自动化系统,VirtualGL
EN

Unix & Linux用户
提问于 2020-05-27 09:21:54
回答 3查看 27.3K关注 0票数 8

当我运行glxgears时,我会得到以下错误。

代码语言:javascript
运行
复制
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
Error: couldn't get an RGB, Double-buffered visual

我的系统是BUUNTU16.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,则没有问题。但是这个容器的应用程序需要数据自动化系统8。

我找到了一些删除库的建议:sudo rm /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1。但不起作用。

Ubuntu 16.04,数据自动化系统8:

代码语言:javascript
运行
复制
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:

代码语言:javascript
运行
复制
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

主办单位有10.2个数据自动化系统,但我不知道是否需要它,并可能造成问题。

我不知道如何解决这个问题。

谢谢你的建议。

EN

回答 3

Unix & Linux用户

发布于 2021-03-27 21:12:40

这两个错误在2(WSL2)使用在码头上使用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

可能是不相干的旁注:

要运行“带有GUI的ROS码头指南”,您还必须安装dbus。

代码语言:javascript
运行
复制
sudo apt-get update
sudo apt-get install -y dbus

我认为这与此无关,因为只有在安装了dbus之后,您才会看到这两个错误,但我不知道问题的背景,也许会有所帮助。安装dbus将消除错误D-id uuid:未能打开“/var/lib/dbus/总线库似乎设置错误;未能读取机器未能打开”

票数 13
EN

Unix & Linux用户

发布于 2020-05-27 12:27:17

解决方案是用nvidia/cuda:8.0-runtime-ubuntu16.04替换nvidia/opengl:1.0-glvnd-runtime-ubuntu16.04映像,并手动安装CUDA 8。

CUDA 8安装:https://gitlab.com/nvidia/container-images/cuda/-/blob/ubuntu16.04/8.0/runtime/Dockerfile

不要忘记将display添加到nvidia功能var中:

代码语言:javascript
运行
复制
ENV NVIDIA_DRIVER_CAPABILITIES compute,utility,display

https://hub.docker.com/r/nvidia/opengl

票数 2
EN

Unix & Linux用户

发布于 2023-01-20 22:01:49

我在宿主(Ubuntu 22)和Nvidia的一个码头容器(Ubuntu 18)上也有类似的错误。以下是我所做的:

步骤1(在主机机器上):#安装nvidia-容器-工具箱

代码语言:javascript
运行
复制
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/ubuntu22.04/nvidia-docker.list > /etc/apt/sources.list.d/nvidia-docker.list
apt update
apt -y install nvidia-container-toolkit
systemctl restart docker

#试验

代码语言:javascript
运行
复制
docker run --gpus all nvidia/cuda:11.5.2-base-ubuntu20.04 nvidia-smi

#如果您发现测试中的问题,请重新启动主机。

步骤2(运行停靠程序)#使用标志NVIDIA_VISIBLE_DEVICES=all -e NVIDIA_DRIVER_CAPABILITIES=all运行--gpus

#就我而言:

代码语言:javascript
运行
复制
docker run -e NVIDIA_VISIBLE_DEVICES=all -e NVIDIA_DRIVER_CAPABILITIES=all  --gpus all -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY myimage 

步骤3(如果您正在使用vscode开发容器)

#在devcontainer.json中的runargs中提供以下内容:

代码语言:javascript
运行
复制
"runArgs": [
    "-e","DISPLAY=:1",
    "-e","NVIDIA_VISIBLE_DEVICES=all",
    "-e","NVIDIA_DRIVER_CAPABILITIES=all",
    "--gpus","all",
    "--runtime=nvidia",
]

#在decontainer.json的挂载部分:

代码语言:javascript
运行
复制
"mounts": [
    "source=/tmp/.X11-unix,target=/tmp/.X11-unix,type=bind",
],
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/589236

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档