Steam:libGL错误:找不到匹配的fbConfigs或视觉效果libGL错误:无法加载驱动程序:swrast


37

如果我单击“蒸汽”的桌面应用程序,则不会发生任何事情。

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,它可以完美运行。

我该怎么做才能使其正常工作?在最新的Steam更新之后(36小时前),它停止工作。

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

Answers:


52

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

现在,我只需要删除由mesa提供的库即可,一切运行正常。

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

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


11
伙计,你值得一个大饼干。
阿里兹·洛佩兹

2
这是正确的答案
Colonder

2
在debian 9上,我删除了该文件并开始工作,但没有提及“ mesa”,但是,“ dpkg -S libGL.so.1”提供了一个应删除的提示。因此:rm /usr/lib/i386-linux-gnu/libGL.so.1并享受您的cookie :)
FabricioFCarv '18

4
此问题持续存在于18.10
QkiZ

4
在将Linux Mint从18更新到19之后,我遇到了这个问题。我必须删除/usr/lib/i386-linux-gnu/libGL.so.1谢谢Zobayer Hasan的帮助!
kayo

7

适用于Linux的Windows子系统(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$

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

什么在使用图书馆?

该库yad锁屏计时器 bash脚本中使用,该脚本通过Ubuntu之外的WSL混合支持升级。Yad是一个分支,Zenity这就是为什么您Gtk-Message:在上面的第三条错误消息中看到类似Zenity的引用。

这是yadUbuntu中的窗口外观(在WSL中略有不同):

锁屏计时器


这对我不起作用-尽管我没有使用锁屏计时器
Eric

lock-screen-timer只是调用GUI的脚本的示例。您可以使用gedit
WinEunuuchs2Unix

当然,我知道。我的观点是我的应用程序(rqt)可能以不同的方式调用GUI,这可能就是为什么在尝试修复后它仍然失败的原因
Eric

嗯 对我来说,gnome-terminal会发出相同的警告,但是即使不重命名任何内容,启动第二个gnome-terminal实例时,警告也会消失。难道不是您的“解决方案”也是如此吗?
jan-glx

这对我也不起作用
Francesco Boccardo

2

根据Steam-for-Linux问题,这可能是nvidia驱动程序问题

就我而言,我通过安装了SuperTuxKartflapak,当我运行它时,遇到以下错误:

..:: Antarctica Rendering Engine 2.0 ::..
Linux 4.15.0-52-generic #56-Ubuntu SMP Tue Jun 4 22:49:08 UTC 2019 x86_64
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast

我的解决方案是:

  1. 在我的系统上检查nvidia驱动程序

ubuntu-drivers devices

它已经nvidia-driver-430安装了。

  1. 根据steam-for-linux问题,安装 nvidia-driver-418替换nvidia-driver-430

sudo apt install libnvidia-gl-418

它提示它缺少对的依赖libnvidia-compute-418,因此请先安装libnvidia-compute-418

sudo apt install libnvidia-compute-418

然后

sudo apt install libnvidia-gl-418

  1. 重启系统。

然后我运行了 SuperTuxKart,它起作用了。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.