다양한 Vagrant 박스(VirtualBox 백엔드)를 사용하여 소규모 SRE 랩을 설정했습니다. 저는 보통 Debian이나 Archlinux 컴퓨터에서 작업하고 원격 디버깅을 통해 Windows 컴퓨터에 연결합니다. 내 Linux 컴퓨터에서는 X11 전달이 활성화되어 제대로 작동합니다. AppImage에서 Cutter(공식 GUI)를 실행 하려고 하거나 rizin
압축을 푼 후에 다음 오류가 발생합니다.
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
마침내 이 문제를 해결할 수 있었습니다.@eduardotrapani포인터는 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
자세한 내용은 다음을 참조하세요.여기.