You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker中使用MTWindow创建GLFW窗口失败的解决求助

Docker中运行事件相机测试文件GLFW窗口创建失败的解决办法

操作步骤与问题现象

  • 宿主机执行命令开启桌面访问:xhost '+local:*';
  • 运行容器命令:
    sudo docker run -dit --privileged --name test3 -v /dev/bus/usb:/deb/bus/usb -e DISPLAY -v /tmp/.X11-unix/:/tmp/.X11-unix/ -v ~/Event:/Event --net=host openeb:ubuntu-20.04 /bin/bash
    
  • 执行测试脚本时报错:
    root@LPA3588:/Event/Z1_annotated# /bin/python3 "/Event/Z1_annotated/test_onlyfind copy.py"
    [SDK][ERROR] GLX: No GLXFBConfigs returned
    [SDK][ERROR] GLX: Failed to find a suitable GLXFBConfig
    Process Process-1:
    Traceback (most recent call last):
    File "/usr/lib/python3.8/multiprocessing/process.py", line 315, in _bootstrap
    self.run()
    File "/usr/lib/python3.8/multiprocessing/process.py", line 108, in run
    self._target(*self._args, **self._kwargs)
    File "/Event/Z1_annotated/test_onlyfind copy.py", line 81, in main
    with MTWindow(title="Metavision Events Viewer", width=width, height=height,
    RuntimeError: Impossible to create a glfw window
    

MTWindow中文说明

MTWindow是Prophesee OpenEB SDK中适配事件相机的多线程UI窗口类,专门用于事件流的实时可视化渲染。它依赖GLFW图形库与GLX扩展创建跨平台窗口,要求运行环境具备可用的X11图形上下文与OpenGL渲染支持。

解决方法

  • 修正容器USB挂载路径:原命令中/dev/bus/usb:/deb/bus/usb存在笔误,应改为/dev/bus/usb:/dev/bus/usb,确保相机设备能被容器正确识别。
  • 安装容器内图形依赖:进入容器后执行以下命令安装GLX和GLFW相关依赖:
    apt update && apt install -y libgl1-mesa-glx libglfw3 libglfw3-dev
    
  • 验证DISPLAY环境变量:在容器内执行echo $DISPLAY,确认输出与宿主机一致。若不一致,手动设置:
    export DISPLAY=:0
    
    或在启动容器时明确传递变量:-e DISPLAY=$DISPLAY
  • 强制软件渲染(硬件渲染失效时):在容器内设置环境变量启用LLVMpipe软件渲染:
    export LIBGL_ALWAYS_SOFTWARE=1
    
    之后再运行测试脚本。
  • 优化X11访问授权:宿主机执行更精准的授权命令:
    xhost +local:root
    
  • 调整MTWindow创建参数:在代码中创建MTWindow时,可尝试添加decorated=False参数禁用窗口装饰,或提前配置GLFW选项:
    import glfw
    glfw.window_hint(glfw.DECORATED, False)
    

内容的提问来源于stack exchange,提问作者wicky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 19:30:10