我正在通过 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 变得更好。