Steam: ошибка libGL: не найдено подходящих fbConfigs или визуальных элементов. Ошибка libGL: не удалось загрузить драйвер: swrast

37

Если я нажимаю на приложение «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, он будет работать отлично.

Что я могу сделать, чтобы это работало? Перестал работать после последнего обновления steam (36 часов назад).

Я попытался удалить nvidia - sudo apt-get remove nvidia*и переустановить драйвер, но безуспешно .

cbll
источник

Ответы:

52

Ubuntu 16.04+ Если вы все еще получаете ту же ошибку, если вы используете драйвер nvidia, иногда вы увидите, что libGL.so.1 указывает на неоднозначный libGL, предоставляемый как mesa, так и nvidia. Чтобы проверить это, вы можете запустить эту команду

$ 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 и наслаждайтесь своим печеньем :)
FabricioFCarv
4
Эта проблема сохраняется 18.10
QkiZ
4
После обновления Linux Mint с 18 до 19 у меня возникла эта проблема. Мне пришлось удалить /usr/lib/i386-linux-gnu/libGL.so.1 Спасибо, Зобайер Хасан, за вашу помощь!
Кайо
7

Подсистема Windows для Linux (WSL) имеет ту же ошибку

В Windows Subsystem for Linux (WSL) под Windows 10 этот файл /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-скрипте lock-screen-timer с обновленной гибридной поддержкой WSL в дополнение к Ubuntu. Yad - это форк Zenity, поэтому вы видите Gtk-Message:ссылку на Zenity в третьем сообщении об ошибке выше.

Вот как yadвыглядит окно в Ubuntu (в WSL оно немного отличается):

Таймер блокировки экрана

WinEunuuchs2Unix
источник
Это не сработало для меня - хотя я не использую таймер блокировки экрана
Эрик
lock-screen-timerэто просто пример скрипта, который вызывает графический интерфейс. Вы могли бы использовать gedit.
WinEunuuchs2Unix
Конечно, я понимаю. Я хочу rqtсказать, что моя application ( ) может вызывать графический интерфейс по-другому, и поэтому может произойти сбой после попытки исправления
Eric
Гектометр Для меня gnome-терминал выдает то же самое предупреждение, но даже без переименования, предупреждение исчезает при запуске второго экземпляра gnome-терминала. Разве это не так, может быть, для вашего "решения" тоже?
jan-glx
У меня это тоже не сработало
Тропилио
3

Это может быть проблема с драйвером nvidia, согласно проблеме steam-for-linux .

В моем случае я установил SuperTuxKart через flapak, когда я запустил его, я встретил следующие ошибки:

..:: 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 , все заработало.

Ён Ян
источник
Это помогло мне в использовании Target3001 в вине.
eDeviser