libGL error: MESA-LOADER: не удалось открыть iris (пути поиска /usr/lib64/dri)

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

Я пытаюсь запустить приложение на Fedora 33, но когда я запускаю исполняемый файл, получаю следующую ошибку:

error while loading shared libraries: libnsl.so.1: cannot open shared object file: No such file or directory
libGL error: MESA-LOADER: failed to open iris (search paths /usr/lib64/dri)
libGL error: failed to load driver: iris
libGL error: MESA-LOADER: failed to open swrast (search paths /usr/lib64/dri)
libGL error: failed to load driver: swrast
X Error of failed request:  GLXBadContext
  Major opcode of failed request:  149 (GLX)
  Minor opcode of failed request:  6 (X_GLXIsDirect)
  Serial number of failed request:  52
  Current serial number in output stream:  51

Я пытался следовать обсуждению здесь: https://www.reddit.com/r/Fedora/comments/hhytvl/libgl_error_mesaloader_failed_to_open_iris/, но не смог добиться, чтобы что-то заработало.

Обратите внимание, что драйвер iris_dri.so присутствует как в /usr/lib/dri, так и в /usr/lib64/dri.

Буду благодарен за любую помощь, спасибо заранее!

Я столкнулся с таким же предупреждением (но только с частью про iris) на моей системе Gentoo Linux. В моем случае решением было переустановить пакет mesa с поддержкой видеокарт iris. Вероятно, наклейка “Intel iRISx graphics” на моем ноутбуке могла бы на это намекнуть, если бы я был достаточно осведомлен, чтобы это понять.

Я не знаю, как это выглядит на системах Fedora, но что-то аналогичное (опция iris для пакета mesa?; отдельный пакет iris?) должно также помочь в вашем случае.

Проблема и ее решение объясняются здесь https://stackoverflow.com/a/71010344/6079195. В основном вам нужно заставить загружаться libstdc++.so.6 в вашей системе с приоритетом над другой версией.

Чтобы найти этот файл в вашей файловой системе:

find / -name libstdc++.so.6 2>/dev/null

Затем добавьте экспорт LD_PRELOAD в файл .bashrc, например:

export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libstdc++.so.6

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

Ошибка, которую вы наблюдаете на вашей системе Fedora 33, связана с проблемой загрузки библиотек для графического драйвера. Эта проблема не нова и часто возникает у пользователей систем на базе Linux, особенно когда дело касается драйверов графики и библиотек совместимости. Давайте разберёмся в деталях и попробуем найти решение.

Теория

Начнем с понимания, что представляет собой ошибка. Ошибки, перечисленные вами, указывают на проблемы с загрузкой графических драйверов, в частности, драйверов iris и swrast. Похоже, ваша система не может найти или правильно подключить эти драйверы для использования OpenGL. Эта ситуация может возникать по нескольким причинам:

  1. Отсутствие необходимых библиотек: Сообщение об ошибке "libGL error: MESA-LOADER: failed to open iris" указывает на невозможность найти и загрузить графическую библиотеку iris_dri.so. Ваша система ищет эту библиотеку в директориях /usr/lib64/dri и, возможно, других.

  2. Проблемы с совместимостью библиотек: Ошибка может также быть связана с несовместимостью между версиями библиотек, например, libstdc++.so.6, которая может быть не той версии, которую ожидает приложение или драйвер.

  3. Конфликт версий драйверов: Может происходить конфликт между несколькими версиями драйверов или между драйверами, установленными из разных источников.

Пример

Рассмотрим пример с системой Gentoo, как указано в вашем вопросе. В этом случае, пользователь решил проблему, переустановив пакет mesa с поддержкой для графических карт Intel iRIS. Это подтверждает, что проблема может быть связана с неполной или неправильно конфигурированной установкой пакетов, необходимых для правильной работы драйверов.

Применение

Теперь давайте рассмотрим, какие действия могут помочь решить вашу проблему на Fedora 33:

  1. Установка недостающих пакетов: Убедитесь, что все необходимые пакеты установлены и правильно настроены. В Fedora пакеты, связанные с mesa, можно установить или обновить с помощью следующей команды:

    sudo dnf install mesa-dri-drivers mesa-libGL mesa-libEGL

    Также, дополнительная установка пакетов графических драйверов Intel может быть полезна:

    sudo dnf install xorg-x11-drv-intel
  2. Проверка на наличие библиотек: Убедитесь, что библиотеки, такие как libnsl.so.1 и libstdc++.so.6, установлены в системе. В случае отсутствия, их можно установить:

    sudo dnf install libnsl libstdc++
  3. Конфигурация LD_PRELOAD: Если проблема кажется связанной с libstdc++.so.6, как указано в вашем вопросе, вы можете принудительно задать путь для этой библиотеки, добавив следующее в ваш файл конфигурации .bashrc:

    export LD_PRELOAD=/usr/lib64/libstdc++.so.6

    После внесения изменений перезапустите терминал или выполните команду source ~/.bashrc, чтобы применить изменения.

  4. Проверка наличия конфликтов и совместимости: Убедитесь, что на вашей системе нет конфликтующих версий драйверов или библиотек. Это может потребовать удаления устаревших или дублирующих версий:

    sudo dnf autoremove
  5. Изучение более детальных логов и документации: Просмотрите системные логи командой dmesg или journalctl для получения более детальной информации о возникновении ошибок. Эти логи могут предоставить дополнительные подсказки о конкретных проблемах, связанных с оборудованием или конфигурацией системы.

Подытоживая, необходимо убедиться, что все необходимые компоненты установлены и сконфигурированы правильно, а также устранить возможные конфликты версий и совместимости. Система Fedora и другие дистрибутивы Linux предоставляют мощные инструменты для управления пакетами и зависимостями, и правильное их использование сможет помочь устранить большинство проблем с графическими драйверами. Если вышеприведенные шаги не помогли, возможно, стоит обратиться на форумы сообщества Fedora или к документации Mesa для получения более специализированной помощи.

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

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