我在远程服务器上运行 OpenFOAM,并且基本上设法通过 paraview 将结果可视化,pvserver 如此处所述。但是,在连接后,客户端会产生
服务器显示无法访问!
在服务器端无法访问显示。远程渲染将被禁用。
这基本上是正确的,因为服务器不运行 X 服务器。性能当然不是最理想的,因为没有远程渲染整个几何图形都会被传输(我想这几乎和直接 ssh 复制文件以纯粹在本地运行一样糟糕)。服务器确实有一个简单的板载 GPU(c2:00.0 VGA 兼容控制器:ASPEED Technology, Inc. ASPEED Graphics Family (rev 41) as per lspci),使用它可能被称为 B 计划,因为在某些时候我可能会切换到没有GPU 或完全不同的 GPU。因此,相反,我查看了https://kitware.github.io/paraview-docs/latest/cxx/Offscreen.html,并使用 Arch Linux 获得了它的 paraviewPKGBUILD并在其指令asp checkout paraview中附加了以下开关:build() -> cmake
-DVTK_OPENGL_HAS_OSMESA=ON \
-DVTK_USE_X=OFF \
-DPARAVIEW_USE_QT=OFF \
编译没有错误(尽管有很多警告,我可能必须检查它们是否在有和没有这些开关的情况下有所不同),但pvserver现在 SEGFAULTs:
$LD_PRELOAD=/usrlib/libGLEW.so pvserver --force-offscreen-rendering
Waiting for client...
Connection URL: cs://xxx:11111
Accepting connection(s): xxx:11111
Client connected.
( 52.668s) [pvserver ]vtkOpenGLRenderWindow.c:565 ERR| vtkOSOpenGLRenderWindow (0x55f0fa7f4b60): GLEW could not be initialized: Missing GL version
Loguru caught a signal: SIGSEGV
Stack trace:
0 0x7f53ca2c8f80 /usr/bin/../lib/libc.so.6(+0x3cf80) [0x7f53ca2c8f80]
( 52.669s) [pvserver ] :0 FATL| Signal: SIGSEGV
Segmentation fault (core dumped)
LD_PRELOADing 现有libGLEW.so的建议例如这里没有改变事情所以现在我被卡住了....../usr/lib/libosmesa.so也存在,原样libOpenGL.so,所以我错过了什么?如何正确解决此问题?