gpt4 book ai didi

opengl - 支持 OpenGL 的 Docker 中的 ParaView

转载 作者:行者123 更新时间:2023-12-02 18:55:47 24 4
gpt4 key购买 nike

在我的系统上安装各种软件包和程序(如 vtk、tvtk、ParaView、mayavi 等)后,我最终得到了完全损坏的全局软件包。例如:目前我无法运行 mayavi 超过几秒钟,而不是在没有任何消息的情况下崩溃。问题是每个库都需要不同版本的依赖项(特别是 Qt4 与 Qt5),有时您需要手动构建软件以允许某些非标准功能(支持 Python 的 ParaView)等等。结果是一团糟。

因此,我决定在 Docker 中构建 ParaView 来隔离软件。我绝对需要 ParaView 的 Python 脚本功能,这不是 Ubuntu 存储库包的默认选择。 Here是我工作的结果。我的灵感来自 this repository ,但是有一些缺点,特别是不支持 Python 和 MPI,而且它是官方 ParaView 存储库的一个分支。

所以,我使用它并创建了一个新的存储库。它是一个包含所有必要软件包的 Ubuntu 镜像,ParaView 是用 MPI 和 Python 支持构建的。见 README如何构建它以及如何运行它。如果有人有兴趣,我可以将图片推送到 dockerhub .请注意,主机上的用户需要拥有 uid 1000,否则 X 服务器隧道将无法正常工作。然而,这可以很容易地解决。

所以,问题来了。当我运行 ParaView 时,我看到以下错误消息:

libGL error: failed to open drm device: No such file or directory
libGL error: failed to load driver: i965

显然,没有 OpenGL加速度。有谁知道如何在 docker 中启用 OpenGL 支持?我知道 this存储库,但是我不喜欢通过 vnc 的解决方案。有没有其他方法可以做到这一点?我不熟悉 OpenGL所以非常感谢任何帮助。

最佳答案

您可以尝试以下步骤:

  • 在你的镜像中安装 mesa-utils
  • 将您的容器用户添加到视频组。

  • 然后你应该能够使用软件渲染的 OpenGL。

    从主机共享 X unix 套接字可能有一些注意事项。您可以使用 mviereck/x11docker改为在第二个 X 服务器上运行您的图像。软件渲染的 OpenGL 工作正常。硬件渲染是实验性的,正在开发中。

    在您的 github 存储库示例中,您正在使用主机显示:0,共享 $DISPLAY和 unix 套接字:
    docker run -ti -e DISPLAY=unix$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix paraview 

    如果您共享 dev/dri 中的所有文件使用您的容器(尤其是 /dev/dri/card0 ),您很可能会获得硬件加速。如果出现一些渲染故障,可以使用 docker run 选项 --ipc=host .根据 X 设置,需要共享 ~/.Xauthority$XAUTHORITY , 或设置 xhost +SI:localuser:root如果容器用户是 root,则在主机上。

    注意:此设置会破坏容器隔离! (为了更好的隔离,请查看 x11docker。)

    关于opengl - 支持 OpenGL 的 Docker 中的 ParaView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39529467/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com