Steam: ошибка libGL: нет соответствующих fbConfigs или визуальных образов найдено ошибка libGL: не удалось загрузить драйвер: ширина

10

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

задан cbll 07.10.2016 в 15:16
источник

2 ответа

24

Для тех, кто все еще получает ту же ошибку, если вы используете драйвер 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
    
ответ дан Zobayer Hasan 11.04.2017 в 09:49
2

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

В Windows Subsystem для Linux (WSL) в Windows 10 файл /usr/lib/i386-linux-gnu/mesa/libGL.so.1 не существует. Вместо этого есть файл /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1 , похоже, его заменит. Однако, если вы удаляете заменяющий файл, библиотека не работает вообще.

Переименовать библиотеку, затем переименовать обратно, решает проблему

Если вы переименуете файл и затем переименуете его, ошибки исчезнут, и он работает намного быстрее:

───────────────────────────────────────────────────────────────────────────────
[email protected]:/mnt/e/etc$ lock-screen-timer
Linux version 4.4.0-43-Microsoft ([email protected]) (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.
───────────────────────────────────────────────────────────────────────────────
[email protected]:/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
───────────────────────────────────────────────────────────────────────────────
[email protected]:/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
───────────────────────────────────────────────────────────────────────────────
[email protected]:/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
───────────────────────────────────────────────────────────────────────────────
[email protected]:/mnt/e/etc$ lock-screen-timer
Linux version 4.4.0-43-Microsoft ([email protected]) (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
───────────────────────────────────────────────────────────────────────────────
[email protected]:/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
───────────────────────────────────────────────────────────────────────────────
[email protected]:/mnt/e/etc$ lock-screen-timer
Linux version 4.4.0-43-Microsoft ([email protected]) (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.
───────────────────────────────────────────────────────────────────────────────
[email protected]:/mnt/e/etc$

Я подтвердил, что изменение является постоянным, т. е. закрыть окно терминала WSL и открыть новое окно.

Что использует библиотека?

Библиотека используется yad в lock-screen-timer bash-скрипт, обновленный с гибридной поддержкой WSL в дополнение к Ubuntu. Yad - это вилка Zenity , поэтому вы видите ссылку на% Z_ity%, указанную в третьем сообщении об ошибке выше.

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

    
ответ дан WinEunuuchs2Unix 19.11.2017 в 17:26