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

X11转发远程运行vedo报错:找不到OpenGL3.2+及驱动安装失败

问题分析与解决方案

核心问题根源

X11转发模式下,OpenGL渲染是在本地客户端执行的,而非远程服务器的3090 GPU。你执行glxinfo得到客户端AMD显卡的信息,就是因为远程程序的OpenGL调用被转发到本地处理——而客户端XQuartz提供的OpenGL环境版本(1.4/2.1)达不到Vedo/VTK要求的3.2+,最终触发报错。

另外,PyTorch能正常使用GPU是因为它直接调用CUDA,不依赖X11转发的OpenGL通道,和当前问题无关联。


具体解决方案

方案1:改用无窗口后端生成图像(最简单)

绕开X11转发的OpenGL限制,用Vedo的offscreen后端生成图像文件,再下载到本地查看:

from vedo import *

s = Sphere().cutWithPlane(normal=(1,1,1))
scals = s.points()[:,2]
s.cmap('Set3', scals).addScalarBar()

# 用offscreen后端生成图像并保存
plt = s.show(axes=1, viewup='z', backend='offscreen')
plt.screenshot('sphere_cut.png')

之后用scp命令把sphere_cut.png下载到本地即可。

方案2:修复X11转发的OpenGL硬件加速(需配置)

如果要实时显示窗口,需要让OpenGL调用走服务器的3090 GPU,而非客户端:

  1. 清理服务器损坏的驱动包:
    sudo apt purge nvidia-*
    sudo rm /etc/X11/xorg.conf
    sudo apt autoremove && sudo apt autoclean
    
  2. 重新安装适配3090的NVIDIA驱动:
    sudo add-apt-repository ppa:graphics-drivers/ppa
    sudo apt update
    sudo apt install nvidia-driver-535 # 3090推荐的稳定驱动版本
    
  3. 重启服务器后验证:
    运行glxinfo | grep OpenGL,此时应显示服务器3090的OpenGL信息(版本4.6)。
  4. 客户端XQuartz配置:
    • 打开XQuartz偏好设置→Security,勾选「Allow connections from network clients」
    • 本地终端执行xhost +(临时允许远程连接,也可指定服务器IP)
    • 用信任模式连接服务器:ssh -Y user@server-ip
    • 连接后设置环境变量:export LIBGL_ALWAYS_INDIRECT=1
      之后再运行Vedo代码,即可正常显示窗口。

方案3:替换为专业远程桌面工具

如果配置X11加速太繁琐,可改用NoMachine、TeamViewer这类工具——它们自带硬件加速的OpenGL通道,能直接利用服务器3090 GPU渲染窗口,不受X11转发的版本限制。


内容的提问来源于stack exchange,提问作者K. Zhu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 04:37:02