Cutter 无法通过 SSH X11 转发工作

Cutter 无法通过 SSH X11 转发工作

我使用各种 Vagrant 盒子(VirtualBox 后端)建立了一个小型 SRE 实验室。我通常在 Debian 或 Archlinux 机器上工作,并通过远程调试连接到 Windows 机器。在我的 Linux 机器上,X11 转发已启用并且正常工作。当我尝试rizin从 AppImage 或解压后运行 Cutter(官方GUI)时,我收到以下错误:

The X11 connection broke: No error (code 0)
X connection to localhost:10.0 broken (explicit kill or server shutdown).

我以前从未见过这样的东西,而且我无法用任何其他应用程序(无论是否是 AppImage)来重现它。 Cutter 在本地运行良好,其他应用程序通过盒子中的 X11 转发运行良好,只有这一个在 Debian 和 Arch 盒子上都出现错误。

任何从哪里开始调试的想法都是值得赞赏的:)

答案1

我终于能够解决这个问题了。@爱德华多·特拉帕尼指针有qt很大帮助。它引导我通过QT_DEBUG_PLUGINGS=1环境变量启用 Qt 插件调试。从那里我注意到加载某种 OpenGL 插件后会发生错误:

Got keys from plugin meta data ("xcb_egl")
QFactoryLoader::QFactoryLoader() looking at "/tmp/.mount_CutterCuz84C/usr/plugins/xcbglintegrations/libqxcb-glx-integration.so"
Found metadata in lib /tmp/.mount_CutterCuz84C/usr/plugins/xcbglintegrations/libqxcb-glx-integration.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.Xcb.QXcbGlIntegrationFactoryInterface.5.5",
    "MetaData": {
        "Keys": [
            "xcb_glx"
        ]
    },
    "archreq": 0,
    "className": "QXcbGlxIntegrationPlugin",
    "debug": false,
    "version": 331520
}


Got keys from plugin meta data ("xcb_glx")
QFactoryLoader::QFactoryLoader() checking directory path "/tmp/.mount_CutterCuz84C/usr/bin/xcbglintegrations" ...
loaded library "/tmp/.mount_CutterCuz84C/usr/plugins/xcbglintegrations/libqxcb-glx-integration.so"
The X11 connection broke: No error (code 0)
X connection to localhost:10.0 broken (explicit kill or server shutdown).

经过一番研究后,最终启用了间接 OpenGL 渲染:

export LIBGL_ALWAYS_INDIRECT=1

欲了解更多详情,请参阅这里

答案2

这可能是一个问题qt,比如这个。简而言之,qt就是要求 X 服务器无法提供的东西(X 服务器不支持 XInput 2)。

您可以尝试使用-Y交换机启用可信 X11 转发,看看是否有效:

ssh -Y user@host

-X您可以在vs-Y中找到更多信息(和警告语)这个答案

相关内容