通过 VNC 访问 Debian VM 时出现 Xrandr 错误

通过 VNC 访问 Debian VM 时出现 Xrandr 错误

我在 vmware 虚拟化上运行带有 XFCE 的 Debian 8。

如果我在 vSphere 控制台上工作,则没有问题。

如果我使用“my-hostname:1”通过 VNC(thighVNC)连接,我会遇到一些问题(我猜这两个问题是相关的):

1) 如果我想转到“应用程序菜单 -> 设置 -> 显示”,则会收到消息:“无法启动 Xfce 显示设置。此系统正在使用 RandR 1.1。要使显示设置正常工作,至少需要 1.2 版”。我在 vSphere 控制台上没有遇到此问题。

2) 我安装了 RStudio。如果我想启动它,它会在控制台上获得以下输出:

QXcbConnection: Failed to initialize XRandr
Qt:XKEYBOARD extension not presten on the X server
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
Unsupported screen format: depth 16, red_mask: 3f, blue_mask:f800
...
then a lot of QWidget and QPainter errors
...
and finally a segmentation fault

怎么了?


以下问题的答案:

sduo find /usr -iname "*libGL.so*" -exec ls -l {} \;

给出:

lrwxrwxrwx 1 root root 14 Aug 19  2015 /usr/lib/x86_64-linux- gnu/libGL.so.1 -> libGL.so.1.2.0
-rw-r--r-- 1 root root 627320 Aug 19  2015 /usr/lib/x86_64-linux-gnu/libGL.so.1.2.0

glxgears

给出:

libGL: OpenDriver: trying /usr/lib/x86_64-linux-gnu/dri/tls/swrast_dri.so
libGL: OpenDriver: trying /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so
libGL: Can't open configuration file /home/bioinf/.drirc: No such file or directory.
libGL: Can't open configuration file /home/bioinf/.drirc: No such file or directory.
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
30063 frames in 5.0 seconds = 6012.055 FPS

答案1

最主要的是软件渲染器。这意味着它找不到你的显卡的硬件驱动程序。安装了许多 libGL 库,并且有许多指向这些库的符号链接。

要查看这些,请从 cmd 行运行此命令。

sudo find /usr -iname "*libGL.so*" -exec ls -l {} \; 

现在,导致您出现问题的可能原因是安装图形驱动程序有时会破坏这些符号链接。(具体来说,/usr/local/lib/libGL.so.1.2.0 可能是错误的库或指向错误链接的符号链接)。

要弄清楚 opengl 程序正在尝试运行哪个库,您可以打开一些详细程度并运行一个简单的 opengl 程序。您可以使用标准 opengl 测试程序来验证这一点:

export LIBGL_DEBUG=verbose
glxgears

确保 /usr/local/lib/libGL.so.1.2.0 是指向正确的 opengl 库的符号链接。


因此,解决方案(在这种情况下)是确保 /usr/local/lib/libGL.so.1.2.0 是指向正确 opengl 库的符号链接。例如,假设我有一个 nvidia 3.40 驱动程序:

ln -s /usr/lib/nvidia-340/libGL.so.1 /usr/local/lib/libGL.so.1.2.0

但是您需要将其指向适合您的 opengl lib(在第一个 find cmd 中列出)。

安装(专有)图形驱动程序可能会破坏用于 opengl 库的符号链接。要解决此问题,请手动修复符号链接(首先修复 /usr/local/lib/libGL.so.1.2.0)。

相关内容