通过 ssh 从 matlab 转发高质量图形

通过 ssh 从 matlab 转发高质量图形

我正在通过 ssh 使用 X 转发选项 ( ) 连接到运行 MATLAB(版本 2015a)的本地服务器ssh -X

但是当我启动 MATLAB 时收到此警告:

libGL error: failed to open drm device: Permission denied
libGL error: failed to load driver: nouveau
libGL error: dlopen /usr/lib64/dri/swrast_dri.so failed (/usr/local/MATLAB/R2015a/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6: version `GLIBCXX_3.4.18' not found (required by /lib64/libLLVM-3.5-mesa.so))
libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast
MATLAB is selecting SOFTWARE OPENGL rendering.

Permission denied当我以 root 身份启动 MATLAB 时,我得到的不是第一行, 而是:
libGL error: failed to authenticate magic 1

图形很糟糕,甚至文本也是如此(见下面的屏幕截图)。我猜这个问题与通过 ssh 将图形转发到客户系统有关。所以我认为 MATLAB 中的显示选项可以设置为客户系统 X-display,我这样做了:
matlab -display guest-ip:0

即使这样,我仍然收到 OpenGL 错误,并且没有图形输出(matlab 在 shell 中运行,并且图形窗口不会弹出)。

主机有 centos-7,客户机有 fedora-20,并且都已mesa-libGLU安装。转发高质量图形的正确方法是什么?


主机系统 在此处输入图片描述

宾客系统(用于比较) 在此处输入图片描述

答案1

我遇到了同样的问题并使用以下指南解决了它: http://cplusadd.blogspot.com/2012/01/speeding-up-matlab-over-x11-forwarding.html 如果你从机器 B 通过 ssh 登录到机器 A,然后在 A 的主目录中运行 matlab 终端命令,则在主目录中创建一个文件,标题java.opts为以下内容:

-Dsun.java2d.pmoffscreen=false

然后使用以下选项进行 ssh:

ssh -c arcfour,blowfish-cbc -Y -C username@server

对我自己来说,这使得通过 ssh 运行 matlab 变得更好。

相关内容