Ubuntu 16.04: Steam – “libGL ошибка: не удалось загрузить драйвер: swrast”

Вопрос или проблема

После установки nvidia-375 Steam не работал, поэтому я переустановил его, но это не дало результата. Когда я пытаюсь открыть Steam, я получаю следующую ошибку (с LIBGL_DEBUG=verbose):

Запуск Steam на ubuntu 16.04 64-bit
STEAM_RUNTIME автоматически включен
Установка обработчика исключений breakpad для 
appid(steam)/version(1493162727)
libGL: экран 0 не поддерживает DRI2
libGL: OpenDriver: пытаюсь /usr/lib/i386-linux-gnu/dri/tls/swrast_dri.so
libGL: OpenDriver: пытаюсь /usr/lib/i386-linux-gnu/dri/swrast_dri.so
libGL: Не удается открыть конфигурационный файл /home/benedict/.drirc: Нет такого 
файла или каталога.
libGL: Не удается открыть конфигурационный файл /home/benedict/.drirc: Нет такого 
файла или каталога.
libGL ошибка: Не найдены совпадающие fbConfigs или visual'ы
libGL ошибка: не удалось загрузить драйвер: swrast

В других ответах предлагали удалить libstdc++.so.6, что я и сделал, так что теперь мой ~/.steam/steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu содержит следующие файлы:

libfreetype.so.6      libxcb.so.1        libXinerama.so.1.0.0
libfreetype.so.6.8.0  libxcb.so.1.1.0    libXrandr.so.2
libstdc++.so.6.0.21   libXdmcp.so.6      libXrandr.so.2.2.0
libX11.so.6           libXdmcp.so.6.0.0  libXrender.so.1
libX11.so.6.3.0       libXext.so.6       libXrender.so.1.3.0
libXau.so.6           libXext.so.6.4.0
libXau.so.6.0.0       libXinerama.so.1

У меня Nvidia Geforce 820M.

Попробуйте, запустите это в контейнере Docker, основанном на моем Dockerfile
https://github.com/allenyllee/server_setup/blob/master/nvidia_docker/Dockerfile_cuda80

Этот Dockerfile основан на официальном образе cuda, модифицирован для запуска всех примеров CUDA с OpenGL, вам нужно использовать nvidia-docker для сборки и запуска.

Это решает мою аналогичную проблему при запуске программы Windows через WINE.

Ответ или решение

Решение проблемы с ошибкой "libGL error: failed to load driver: swrast" в Ubuntu 16.04 при запуске Steam

Если вы столкнулись с ошибкой "libGL error: failed to load driver: swrast" при запуске Steam на Ubuntu 16.04, то, вероятно, это связано с некорректной настройкой графических драйверов и библиотек OpenGL. Давайте подробно разберем возможные причины и решения данной проблемы.

Причина проблемы

Ошибка указывает на то, что Steam не может найти или загрузить необходимые драйверы для работы с графической картой. В вашем случае установлены драйверы nvidia-375, однако Steam все равно не может правильно инициализировать графическое окружение. Рассматриваем следующие основные причины:

  1. Несоответствующая версия драйверов: Возможно, драйверы не совместимы с вашей видеокартой GeForce 820M или необходимо использовать другую версию драйверов.

  2. Отсутствие необходимых библиотек: Похоже, что некоторые компоненты OpenGL отсутствуют или не могут быть загружены.

  3. Конфликт библиотек: Ручное удаление библиотеки libstdc++.so.6 могло вызвать дополнительные конфликты.

Рекомендации по исправлению

  1. Переустановка драйвера NVIDIA:

    • В первую очередь, рекомендую полностью удалить текущую версию драйвера NVIDIA:
      sudo apt-get remove --purge '^nvidia-.*'
    • Затем установите рекомендованную или более новую версию драйверов. Вы можете использовать Additional Drivers в Ubuntu для установки подходящей версии, или установить через командную строку:
      sudo apt-get install nvidia-driver-450
    • Убедитесь, что версия драйвера подходит для вашей видеокарты.
  2. Проверка OpenGL:

    • После установки драйвера выполните команду для проверки работы OpenGL:
      glxinfo | grep "OpenGL version"
    • Если команда не выполнится, возможно, потребуется установить mesa-utils:
      sudo apt-get install mesa-utils
  3. Проверка системных библиотек:

    • Убедитесь, что библиотеки OpenGL установлены и обновлены. Выполните:
      sudo apt-get install libgl1-mesa-glx libgl1-mesa-dri
  4. Обновление Steam:

    • Попробуйте удалить и переустановить Steam:
      sudo apt-get remove --purge steam
      sudo apt-get install steam
  5. Создание файла конфигурации:

    • Если у вас отсутствует файл конфигурации .drirc, вы можете создать его вручную. Убедитесь, что ваш пользователь имеет необходимые права доступа.
  6. Использование Steam с вручную заданным состоянием:

    • Попробуйте запустить Steam с заданным переменным окружением:
      STEAM_RUNTIME=0 steam
  7. Запуск через Docker:

    • Если ни одно из предложенных решений не помогло, рассмотрите возможность использования Docker. Это может помочь изолировать среду и уменьшить количество конфликтов. Вы можете использовать следующий подход:

    Создайте контейнер

    sudo docker run --gpus all -it --rm nvidia/cuda:10.0-runtime-ubuntu18.04 /bin/bash

    И установите туда необходимые библиотеки и Steam.

Заключение

Ошибка "libGL error: failed to load driver: swrast" требует комплексного подхода к устранению, который включает переустановку драйверов, обновление библиотек и возможное использование Docker-контейнеров. Надеюсь, предложенные шаги помогут вам решить проблему. Не забывайте проверять совместимость драйверов с вашей системой и более конкретно подбирать версии программного обеспечения. Если после выполнения всех вышеперечисленных шагов проблема остается, возможно, стоит обратиться за поддержкой на форумы или к специалистам.

Оцените материал
Добавить комментарий

Капча загружается...