【已解决】MUJOCO-python GLFWError: (65544) b’Wayland问题
在Ubuntu 22.04 LTS版本中运行python脚本时,报错GLFWError: (65544) b’Wayland: Window position retrieval not supported’
主要表现为窗口完全卡死无法进行视角查看,按键查看等任何操作问题。
问题描述
当尝试运行脚本文件时(不管使用mujoco_py还是mojoco中的viewer)均会出现报错:
GLFWError: (65544) b'Wayland: Window position retrieval not supported'
查看当前所有当前解决办法后,包括重新安装GLFW均无效果。
解决方案
Logout当前账户,在右下角的设置中将ubuntu更换为ubuntu on Xorg即可解决问题

原因
Ubuntu和许多其他Linux发行版提供了两种主要的显示服务器协议:X.Org(通常称为X11)和Wayland。这两种协议都是负责在Linux系统上管理屏幕显示、输入设备如键盘和鼠标、以及图形程序之间的交互的底层软件。它们之间的区别主要在于它们的架构、性能、安全性以及与现代技术的兼容性。
X.Org(X11)
X.Org Server,或简称为X11,是一种传统的、经过长时间测试的显示服务器系统,自1987年以来一直在使用。它基于客户端-服务器模型,允许远程和本地应用程序(客户端)通过网络透明地使用显示硬件(服务器)。X11的主要特点和问题包括:
- 网络透明性:应用程序(客户端)可以在一个机器上运行,同时显示在另一台机器上。
- 广泛的兼容性:支持大量的应用程序和设备驱动程序。
- 扩展性:可以通过各种扩展增强功能。
- 安全性问题:由于其年代久远和设计上的考虑,X11缺乏现代的安全特性,容易受到键盘监听或窗口内容泄露等问题的影响。
- 复杂性:架构相对复杂,难以维护和开发。
Wayland
Wayland是一个较新的协议,旨在替代X11,提供更简洁、更高效、更安全的显示服务器解决方案。Wayland直接与Linux内核的图形子系统(如DRM、KMS)和输入子系统(如libinput)交互,不需要X11的复杂间接层。Wayland的主要特点和优势包括:
- 简化的架构:减少了显示服务器的职责,将部分任务(如窗口装饰)下放给客户端或专门的合成器(如Mutter、Weston)。
- 提高安全性:应用程序无法访问或监视其他应用程序的数据,增加了隐私保护。
- 改善性能:减少了绘图操作的延迟和开销,尤其是在直接渲染路径中。
- 现代化:更好地支持了最新的图形技术,如EGL流、高DPI显示和多触控输入。
导致的问题
尽管Wayland提供了许多改进,但它也带来了一些问题和挑战,主要是因为它与X11在兼容性和成熟度方面的差异:
- 应用程序兼容性:许多旧的或专有的应用程序和工具(如一些屏幕截图工具或远程桌面软件)可能不直接支持Wayland,需要通过XWayland(一种运行X11应用程序的兼容层)来运行,这可能导致性能下降或功能限制。
- 驱动程序和硬件支持:虽然大多数现代图形硬件和驱动程序都支持Wayland,但在某些特定的硬件和驱动程序配置下,用户可能会遇到问题。
- 开发者的适应:软件开发者需要更新或重写他们的应用程序以充分利用Wayland提供的新特性和安全模型。
总结
通过以上步骤,可以解决兼容问题并得到控制文件下的mujoco界面。
文章讲述了在Ubuntu22.04LTS中,使用MUJOCOPython脚本时遇到GLFWError关于Wayland窗口位置获取不支持的问题。解决方案是切换到UbuntuonXorg显示服务器,原因涉及X11和Wayland的区别以及兼容性挑战。
6183

被折叠的 条评论
为什么被折叠?



