不确定用哪个?
run_rviz_mobaxterm.shrun_rviz_wsl2.shrun_rviz_wsl2.sh - 通用脚本6个环境变量:
bash展开代码LIBGL_ALWAYS_SOFTWARE=1 # 强制软件渲染
MESA_GL_VERSION_OVERRIDE=4.5 # OpenGL版本
MESA_GLSL_VERSION_OVERRIDE=450 # GLSL版本
GALLIUM_DRIVER=llvmpipe # Mesa驱动
OGRE_RTT_MODE=Copy # OGRE设置
__GLX_VENDOR_LIBRARY_NAME=mesa # GLX库
特点:
run_rviz_mobaxterm.sh - MobaXterm专用10个环境变量(包含通用脚本的所有变量 + 4个额外变量):
基础配置(与通用脚本相同):
bash展开代码LIBGL_ALWAYS_SOFTWARE=1 MESA_GL_VERSION_OVERRIDE=4.5 MESA_GLSL_VERSION_OVERRIDE=450 GALLIUM_DRIVER=llvmpipe OGRE_RTT_MODE=Copy __GLX_VENDOR_LIBRARY_NAME=mesa
额外配置(MobaXterm专用):
bash展开代码unset LIBGL_ALWAYS_INDIRECT # 🔑 禁用间接渲染
MESA_LOADER_DRIVER_OVERRIDE=llvmpipe # 🔑 强制驱动选择
__GL_SYNC_TO_VBLANK=0 # 🔑 禁用垂直同步
__GL_ALLOW_UNOFFICIAL_PROTOCOL=0 # 🔑 禁用非官方协议
特点:
unset LIBGL_ALWAYS_INDIRECT作用:禁用间接渲染,强制直接渲染
为什么需要:
影响:
MESA_LOADER_DRIVER_OVERRIDE=llvmpipe作用:强制Mesa加载器使用llvmpipe驱动
为什么需要:
影响:
__GL_SYNC_TO_VBLANK=0作用:禁用垂直同步(VSync)
为什么需要:
影响:
__GL_ALLOW_UNOFFICIAL_PROTOCOL=0作用:禁用非官方OpenGL协议扩展
为什么需要:
影响:
| 配置项 | 通用脚本 | MobaXterm脚本 | 说明 |
|---|---|---|---|
| 基础环境变量 | ✅ 6个 | ✅ 6个 | 相同 |
| 间接渲染控制 | ❌ 未设置 | ✅ 禁用 | MobaXterm需要 |
| 驱动强制指定 | ❌ 未设置 | ✅ llvmpipe | MobaXterm需要 |
| 垂直同步 | ⚪ 默认 | ✅ 禁用 | MobaXterm需要 |
| 非官方协议 | ⚪ 允许 | ✅ 禁用 | MobaXterm需要 |
| 总环境变量数 | 6个 | 10个 | - |
| 适用场景 | 通用 | MobaXterm专用 | - |
bash展开代码xdpyinfo | grep "vendor string"
Moba/X → 使用 run_rviz_mobaxterm.shrun_rviz_wsl2.sh先试通用脚本:
bash展开代码./run_rviz_wsl2.sh
如果出现段错误,换MobaXterm脚本:
bash展开代码./run_rviz_mobaxterm.sh
bash展开代码./test_mobaxterm_rviz.sh
脚本会自动检测X11服务器类型并给出建议。
自定义实现:
安全限制:
协议兼容性:
标准实现:
更好的兼容性:
核心原理:
关键洞察:
相关文档:
RVIZ_WSL2_COMPLETE_GUIDE.mdMOBAXTERM_RVIZ_FIX.md本文作者:cc
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!