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

Цікаво, що якщо я міняю свій драйвер графічного процесора xorg, він працює чудово.

Що я можу зробити, щоб він працював? Він перестав працювати після останнього оновлення пари (36 годин тому).

Я спробував видалити nvidia - sudo apt-get remove nvidia*і перевстановити драйвер, але не пощастило.

Відповіді:


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
Це правильна відповідь
Колодер

2
на debian 9 я видалив цей і працював, але не згадуючи "меса", однак, "dpkg -S libGL.so.1" дають підказку, яку слід видалити. Тож: rm /usr/lib/i386-linux-gnu/libGL.so.1 І насолоджуйся своїм файлом cookie :)
FabricioFCarv

4
Ця проблема зберігається 18.10
QkiZ

4
Після оновлення Linux Mint з 18 до 19 у мене виникла ця проблема. Мені довелося видалити /usr/lib/i386-linux-gnu/libGL.so.1 Дякую Zobayer Hasan за допомогу!
кайо

7

Підсистема Windows для Linux (WSL) має таку ж помилку

У підсистемі Windows для 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в скрипті баш -таймера блокування екрана, оновленому гібридною підтримкою WSL на додаток до Ubuntu. Yad - це вилка Zenity, через що ви бачите посилання на Zenity Gtk-Message:у третьому повідомленні про помилку вище.

Ось як yadвиглядає вікно в Ubuntu (у WSL це трохи інакше):

Таймер блокування екрана


Це не спрацювало для мене - хоча я не використовую таймер блокування екрана
Ерік

lock-screen-timer- лише приклад сценарію, який викликає графічний інтерфейс. Ви можете використовувати gedit.
WinEunuuchs2Unix

Звичайно, я розумію. Моя думка полягає в тому, що моя програма ( rqt) може викликати графічний інтерфейс по-іншому, і це може бути причиною того, що вона все-таки не спрацьовує після спроби виправити
Ерік,

Гм. Для мене gnome-terminal кидає те саме попередження, але навіть не перейменовуючи нічого, попередження знімається при запуску другого примірника gnome-terminal. Чи не так, можливо, і для вашого "рішення"?
jan-glx

Це не спрацювало і для мене
Тропіліо,

2

Це може бути проблема з драйвером nvidia, відповідно до проблеми " пара для 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. Відповідно до проблеми з парою для 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 , це спрацювало.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.