我试图让 Blender 完成一个设置,其中 Blender 本身在远程计算机上运行,并且其 UI 通过 X11 呈现给本地计算机。
有关详细信息,请参阅这里。
这似乎是一个经常需要的用例,Blender 本身可以通过blender-softwaregl
zip 存档下载选项中提供的可执行文件来工作搅拌机网站但仅限于 2.79 版本。
在版本 2.80 上,相同的可执行文件似乎正在尝试设置需要 MIT-SHM X11 扩展的共享内存“对象”。
具体来说,Blender 的可执行文件(在远程机器终端中)抱怨:error code: 159
、request code: 143
、minor code: 34
,error text: 159
最后以:
Xlib:显示“localhost:10.0”上缺少扩展名“MIT-SHM”。
此后,本地计算机上的 X11 窗口保持打开状态,就好像软件运行没有问题,但不显示 Blender 的 GUI。
同时,当鼠标沿着本地X11窗口拖动时,远程终端仍然会产生XLib: extension "MIT-SHM"...
错误。
我试图找到有关使用 MIT-SHM 的更多信息(安装、配置、启用/禁用等),但除了这,这和这个传递的参考我运气不太好。
虽然我还在研究这个问题,但我很感激任何人对 MIT-SHM 的帮助,因为我怀疑 Blender 并不是唯一可能使用它的软件。这似乎是一个很酷的 X11 功能,但我不认为我可以在我的设置服务器上运行的 Ubuntu Bionic 18.04 上完全控制它。
- 如何启用 MIT-SHM 以便它显示在
xdpyinfo
列表中? - 我是否应该安装一组特定的库才能使其完全正常工作?
- 它的使用还暗示着什么吗? (例如,我是否需要启用任何额外端口才能使此功能正常工作?)
答案1
您无法从远程 X11 客户端使用 MIT-SHM。
想想它的缩写:SHM = 共享内存。如果客户端和服务器运行在不同的机器上,那就不能共享内存。
该扩展旨在加速 X11 请求,这些请求通过使用 SySV 共享内存 API 传输大量数据,而不是通过套接字写入数据(例如XPutImage
-> XShmPutImage
)。恕我直言,它对现代计算机的好处是有争议的。