Проблемы с libGl, fbConfigs, swrast посредством каждого обновления?

У меня есть проблемы когда SFML-проект компиляции (не см. диаграммы):

libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast

Эта ошибка может быть решена простыми драйверами Nvidia переустановки через это учебное руководство: https://askubuntu.com/a/451248/341889

.. но когда я получаю новые обновления - эта ошибка возвращается ;( Что я должен сделать? Это не решение - не, используют обновление системы...

P.S. и да, я сохранил все изменения после установки драйверов Nvidia

38
задан 18 November 2019 в 22:11

12 ответов

swrast вещью является рендерер программного обеспечения. Это означает, что не находит драйвер оборудования для Вашей видеокарты. Существует набор libGL установленных библиотек и набор символьных ссылок на те библиотеки. Видеть, что они выполняют это от оболочки:

find /usr -iname "*libGL.so*" -exec ls -l -- {} + 

Теперь вероятная причина Вашей проблемы состоит в том, что устанавливающие графические драйверы иногда разрывают эти символьные связи. (Конкретно /usr/local/lib/libGL.so.1.2.0, вероятно, будет или неправильный lib или символьная ссылка на неправильную ссылку).

Для разработки, что библиотека программы OpenGL пытается выполнить, можно включить немного многословия и запустить простую программу OpenGL. Можно проверить это использование стандартной тестовой программы OpenGL:

LIBGL_DEBUG=verbose glxgears

, Надо надеяться, который перестанет работать таким же образом как SFML. С LIBGL_DEBUG это должно сказать Вам, какую библиотеку OpenGL это пытается загрузить. Кроме того, lib, который это будет пытаться загрузить, почти наверняка будет /usr/local/lib/libGL.so.1.2.0 (Редактирование: Это было стандартной библиотекой OpenGL по моей машине в то время, когда я ответил на это. Это может быть некоторая другая версия на Вашей машине теперь).

, Таким образом, решение (в этом случае) состоит в том, чтобы удостовериться, что /usr/local/lib/libGL.so.1.2.0 символьная ссылка, указывающая на правильную библиотеку OpenGL. В моем случае у меня есть драйвер Nvidia 3.40, таким образом, я работал:

ln -s /usr/lib/nvidia-340/libGL.so.1 /usr/local/lib/libGL.so.1.2.0

, Но Вы захотите указать на него на lib OpenGL, который подходит для Вас (перечисленный в первой команде находки).

, Таким образом: установка (собственных) графических драйверов может разорвать символьные связи, используемые для OpenGL, освобождает. Для решения этой проблемы вручную фиксируют символьные ссылки (зафиксируйте /usr/local/lib/libGL.so.1.2.0 первый).

29
ответ дан 23 November 2019 в 00:16

Для пропавших без вести swrast/fbConfig: sudo способный libdri2-1

установки
0
ответ дан 18 April 2019 в 04:21

У меня были проблемы, заставляя корректную символьную ссылку указать на драйвер Nvidia, и я нашел иначе что работы для меня.

Это обрисовано в общих чертах здесь .

И это перечисляет о том, как установить драйвер Nvidia через PPA, который доступен для 349,16, последняя версия.

Первое удаление любые драйверы Nvidia, в настоящее время устанавливаемые путем открытия окна терминала ( Ctrl + ALT + T ) и ввода

sudo apt-get remove nvidia*

, Перезагружают систему

Тогда открытый другой терминал и вводят следующий

sudo add-apt-repository ppa:xorg-edgers/ppa
sudo apt-get update
sudo apt-get install nvidia-349 nvidia-settings
sudo add-apt-repository -r ppa:xorg-edgers/ppa

Тогда перезагрузка снова

, я попробовал его после того, чтобы теряться с символьными ссылками, и пар сразу хорошо работал после установки драйвера и снова это все еще работало после того, как я имел 400 + megs системных обновлений.

4
ответ дан 23 November 2019 в 00:16

У меня была та же проблема о Ubuntu 16.10 с эти nvidia-340 драйверы, и ни одно из решений здесь не работало на меня.

Оказывается, что 32-разрядные библиотеки не были на пути к библиотеке.

Этот лайнер работал на меня:

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/lib32/nvidia-340"
5
ответ дан 23 November 2019 в 00:16

Обеспечить альтернативу ответу Adrian: если Вы предпочитаете использовать собственные драйверы, полученные непосредственно от NVIDIA вместо найденных в PPA, устанавливая (или в моем случае, переустанавливая), последний собственный драйвер может помочь устранить swrast ошибку.

, Если у Вас еще нет драйвера NVIDIA, загрузите драйвер от веб-сайт NVIDIA . Затем, переключитесь на tty (ctrl + alt + F1) и выключите своего менеджера по входу в систему:

При использовании lightdm, $ sudo service lightdm stop

При использовании gdm, $ sudo service gdm stop

Перешли к сценарию установки и выполняют его и следуют за подсказками. Не волнуйтесь, перестал ли предварительно устанавливать сценарий работать. Я всегда принимаю регистрацию DKMS и 32-разрядные библиотеки совместимости. После того, как драйвер установлен, перезапустите свою машину:

$ sudo reboot

, Если у Вас уже есть сценарий установки от более старого драйвера NVIDIA, просто запустите скрипт установки драйвера NVIDIA как oulined выше, но с "-обновление" опция:

$ sudo ./NVIDIA-Linux-x86_64-***.**.run --update

Это получит Вас самая актуальная версия драйвера.

Выполнение этого зафиксировало мой libGL error: failed to load driver: swrast ошибка.

3
ответ дан 23 November 2019 в 00:16

Я должен признать, я не уверен, почему это работает на меня, но это сделало. В этом особенно работает случай, "устраняющий" ld.so.conf.d записи путем добавления новой записи как это:

sudo ln -s /usr/lib/nvidia-381/ld.so.conf /etc/ld.so.conf.d/nvidia64.conf
sudo ldconfig 

Это имеет смысл, пока Вы не выполняете следующий find:

$ find -L /etc/ld.so.conf.d -type f | xargs grep -i nvidia
/etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf:/usr/lib/nvidia-381
/etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf:/usr/lib32/nvidia-381
/etc/ld.so.conf.d/x86_64-linux-gnu_EGL.conf:/usr/lib/nvidia-381
/etc/ld.so.conf.d/x86_64-linux-gnu_EGL.conf:/usr/lib32/nvidia-381
/etc/ld.so.conf.d/nvidia64.conf:/usr/lib/nvidia-381
/etc/ld.so.conf.d/nvidia64.conf:/usr/lib32/nvidia-381

, Почему наличие тех же записей в трех экземплярах работает, но не в двойном экземпляре, я понятия не имею!

2
ответ дан 23 November 2019 в 00:16

Вот apt - только решение, которое работало на меня, никакой symlinking или слоняющийся без дела с ld.so.conf.d:

apt install --reinstall libgl1-mesa-glx:i386
apt install mesa-utils nvidia-driver nvidia-driver-libs-i386
2
ответ дан 23 November 2019 в 00:16

Я просто использую эту строку:

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

и это работает.

, поскольку я вижу такой вход, когда я выполняюсь 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
libOpenGL.so.0 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libOpenGL.so.0
libOpenGL.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libOpenGL.so
libGL.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libGL.so.1
libGL.so.1 (libc6) => /usr/lib/i386-linux-gnu/libGL.so.1
libGL.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libGL.so
libEGL.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libEGL.so.1
libEGL.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libEGL.so
1
ответ дан 23 November 2019 в 00:16

Получил ту же проблему на человечности 18. Это произошло в основном только с приложениями на 32 бита. Таким образом, моя идея состояла в том, чтобы установить Nvidia на 32 бита что-то как мой/usr/lib/i386-linux-gnu/, папка была подозрительно пуста.

После очень немногих попыток, это решило мою проблему с паром и вином, не запускающимся:

sudo apt install libnvidia-gl-418:i386

(и изменение 418 к тому, какой бы ни версия Вы имеете)

Интересный, что приложения не жаловались на недостающие зависимости во время установки.

3
ответ дан 23 November 2019 в 00:16

Я сталкивался с этой странной проблемой когда я ssh к моему VM Ubuntu от моего MacBook Pro, но устанавливал ниже драйвера Nvidia на моей Ubuntu 16.04, устранил проблему. Надеюсь, что это работает на Вас.

sudo Кв. - получают nvidia-331

установки
-3
ответ дан 23 November 2019 в 00:16

Просто выполнение это:

sudo apt-get install libnvidia-gl-(the version of your driver):i386

версия Вашего драйвера, показал в настройках Nvidia.

0
ответ дан 23 November 2019 в 00:16

В моем случае решение этой проблемы находилось в продолжении сообщения об ошибке

Парапредставление 5.7.0, сообщил мне что:

libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
(   0.833s) [paraview] vtkOpenGLRenderWindow.c:748 ERR| vtkXOpenGLRenderWindow (0x5588ae6a2160): GLEW could not be initialized: Missing GL version
...
Segmentation fault

сообщение

GLEW could not be initialized: Missing GL version

было ключевым. Я выполняю 'glxgears', чтобы проверить, что графические библиотеки хорошо работали - см. также man glxgears - показывающий эту анимацию:

screenshot of glxgears

Затем мое решение просто устанавливало переменную среды

LD_PRELOAD=/usr/lib/libGL.so

, Обращают внимание:

  1. , Хотя у меня есть видеокарта Nvidia, я не должен был возиться с нею;
  2. Запуск locate libGL.so, я нахожу другого кандидата /usr/lib/i386-linux-gnu/libGL.so. При установке этого, поскольку LD_PRELOAD, однако, не решил проблему;
  3. Никакая потребность установить любую информацию о библиотеке GLEW, появляющейся выше любого,---видят locate libGLEW.so

, я обязан https://github.com/openai/mujoco-py/issues/44 для подсказок

0
ответ дан 23 November 2019 в 00:16

Другие вопросы по тегам:

Похожие вопросы: