Steam:libGL错误:没有匹配的fbConfigs或视觉效果发现libGL错误:无法加载驱动程序:swrast

如果我点击“Steam”的桌面应用程序,则没有任何反应。

在终端中运行steam产生以下结果:

 STEAM_RUNTIME is enabled automatically Installing breakpad exception handler for appid(steam)/version(1474415843) libGL error: No matching fbConfigs or visuals found libGL error: failed to load driver: swrast 

有趣的是,如果我将GPU驱动程序更改为xorg ,它可以完美运行。

我能做些什么才能让它发挥作用? 在最新的蒸汽更新(36小时前)之后它停止了工作。

我尝试卸载nvidia – sudo apt-get remove nvidia*并重新安装驱动程序,但没有运气。

Ubuntu 16.04+对于仍然得到相同错误的人,如果你使用的是nvidia驱动程序,有时你会发现libGL.so.1指向mesa和nvidia提供的模糊libGL。 要对此进行测试,可以运行此命令

 $ sudo ldconfig -p | grep -i gl.so 

输出是这样的:

  libwayland-egl.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libwayland-egl.so.1 libftgl.so.2 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libftgl.so.2 libcogl.so.20 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcogl.so.20 libQt5OpenGL.so.5 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libQt5OpenGL.so.5 libQtOpenGL.so.4 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libQtOpenGL.so.4 libQtOpenGL.so.4 (libc6) => /usr/lib/i386-linux-gnu/libQtOpenGL.so.4 libOpenGL.so.0 (libc6,x86-64) => /usr/lib/nvidia-378/libOpenGL.so.0 libOpenGL.so (libc6,x86-64) => /usr/lib/nvidia-378/libOpenGL.so libGL.so.1 (libc6,x86-64) => /usr/lib/nvidia-378/libGL.so.1 libGL.so.1 (libc6) => /usr/lib/i386-linux-gnu/mesa/libGL.so.1 libGL.so.1 (libc6) => /usr/lib32/nvidia-378/libGL.so.1 libGL.so (libc6,x86-64) => /usr/lib/nvidia-378/libGL.so libGL.so (libc6) => /usr/lib32/nvidia-378/libGL.so libEGL.so.1 (libc6,x86-64) => /usr/lib/nvidia-378/libEGL.so.1 libEGL.so.1 (libc6) => /usr/lib32/nvidia-378/libEGL.so.1 libEGL.so (libc6,x86-64) => /usr/lib/nvidia-378/libEGL.so libEGL.so (libc6) => /usr/lib32/nvidia-378/libEGL.so 

现在我只需要删除台面提供的库,一切都很完美。

 $ sudo rm /usr/lib/i386-linux-gnu/mesa/libGL.so.1 

更新: Ubuntu 18.04 LTS不再存在此问题。

Windows子系统Linux(WSL)具有相同的错误

在Windows 10下的Windows子系统Linux(WSL)中,文件/usr/lib/i386-linux-gnu/mesa/libGL.so.1不存在。 相反,文件/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1似乎取代了它。 但是,如果删除替换文件,则库根本不起作用。

重命名库然后重命名解决问题

如果重命名该文件,然后将其重命名,则错误消失并且工作速度更快:

 ─────────────────────────────────────────────────────────────────────────────── rick@alien:/mnt/e/etc$ lock-screen-timer Linux version 4.4.0-43-Microsoft (Microsoft@Microsoft.com) (gcc version 5.4.0 (GCC) ) #1-Microsoft Wed Dec 31 14:42:53 PST 2014 libGL error: No matching fbConfigs or visuals found libGL error: failed to load driver: swrast Gtk-Message: GtkDialog mapped without a transient parent. This is discouraged. ─────────────────────────────────────────────────────────────────────────────── rick@alien:/mnt/e/etc$ sudo ldconfig -p | grep -i gl.so libwayland-egl.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libwayland-egl.so.1 libcogl.so.20 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcogl.so.20 libQt5OpenGL.so.5 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libQt5OpenGL.so.5 libGL.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1 libEGL.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/mesa-egl/libEGL.so.1 ─────────────────────────────────────────────────────────────────────────────── rick@alien:/mnt/e/etc$ sudo rm /usr/lib/i386-linux-gnu/mesa/libGL.so.1 rm: cannot remove '/usr/lib/i386-linux-gnu/mesa/libGL.so.1': No such file or directory ─────────────────────────────────────────────────────────────────────────────── rick@alien:/mnt/e/etc$ sudo mv /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1 /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.ORIGINAL ─────────────────────────────────────────────────────────────────────────────── rick@alien:/mnt/e/etc$ lock-screen-timer Linux version 4.4.0-43-Microsoft (Microsoft@Microsoft.com) (gcc version 5.4.0 (GCC) ) #1-Microsoft Wed Dec 31 14:42:53 PST 2014 /usr/bin/zenity: error while loading shared libraries: libGL.so.1: cannot open shared object file: No such file or directory ─────────────────────────────────────────────────────────────────────────────── rick@alien:/mnt/e/etc$ sudo mv /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.ORIGINAL /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1 ─────────────────────────────────────────────────────────────────────────────── rick@alien:/mnt/e/etc$ lock-screen-timer Linux version 4.4.0-43-Microsoft (Microsoft@Microsoft.com) (gcc version 5.4.0 (GCC) ) #1-Microsoft Wed Dec 31 14:42:53 PST 2014 Gtk-Message: GtkDialog mapped without a transient parent. This is discouraged. ─────────────────────────────────────────────────────────────────────────────── rick@alien:/mnt/e/etc$ 

我validation了更改是持久的,即关闭WSL终端窗口并打开一个新窗口。

什么在使用图书馆?

yad在锁定屏幕定时器 bash脚本中使用该库,除了Ubuntu之外还升级了对WSL的混合支持。 Yad是Zenity一个分支,这就是为什么你在上面的第三条错误信息中看到类似Zenity的Gtk-Message: reference的原因。

这是yad窗口在Ubuntu中的样子(在WSL中它略有不同):

锁屏定时器