Вопрос или проблема
У меня возникает эта ошибка как при открытии RVIZ2, так и при использовании glxinfo. Более того, если я пытаюсь открыть видео, появляется сообщение о том, что у меня нет драйвера.
Вот полная ошибка.
[rviz2-6] libGL error: DRI driver not from this Mesa build (‘23.0.4-0ubuntu1~22.04.1’ vs ‘23.2.1-1ubuntu3.1~22.04.2’) [rviz2-6] libGL error: failed to load driver: iris
Если я выполняю apt list -i | grep mesa
, это вывод:
libegl-mesa0/jammy-updates,now 23.2.1-1ubuntu3.1~22.04.2 amd64 [installato] libegl1-mesa-dev/jammy-updates,now 23.2.1-1ubuntu3.1~22.04.2 amd64 [installato, automatico] libgl1-mesa-dev/jammy-updates,now 23.2.1-1ubuntu3.1~22.04.2 amd64 [installato, automatico] libgl1-mesa-dri/jammy-updates,now 23.2.1-1ubuntu3.1~22.04.2 amd64 [installato] libglapi-mesa/jammy-updates,now 23.2.1-1ubuntu3.1~22.04.2 amd64 [installato] libglu1-mesa-dev/jammy,now 9.0.2-1 amd64 [installato, automatico] libglu1-mesa/jammy,now 9.0.2-1 amd64 [installato, automatico] libglx-mesa0/jammy-updates,now 23.2.1-1ubuntu3.1~22.04.2 amd64 [installato] mesa-utils-bin/jammy,now 8.4.0-1ubuntu1 amd64 [installato, automatico] mesa-utils/jammy,now 8.4.0-1ubuntu1 amd64 [installato, automatico] mesa-va-drivers/jammy-updates,now 23.2.1-1ubuntu3.1~22.04.2 amd64 [installato] mesa-vdpau-drivers/jammy-updates,now 23.2.1-1ubuntu3.1~22.04.2 amd64 [installato] mesa-vulkan-drivers/jammy-updates,now 23.2.1-1ubuntu3.1~22.04.2 amd64 [installato]
Платформа: dell xps 13 plus – ubuntu 22.04.4
У меня была похожая проблема, которая мешала мне (белый экран при запуске). Я открыл баг-репорт здесь. Мне удалось частично решить проблему, сделав принудительное понижение версии пакетов до предыдущих версий, но это не удовлетворительно (неработающие зависимости).
Ответ или решение
Теория
Ошибка libGL error: DRI driver not from this Mesa build ('23.0.4-0ubuntu1~22.04.1' vs '23.2.1-1ubuntu3.1~22.04.2')
связана с несовместимостью версий драйверов Mesa и 3D-драйверов, которые используются для отрисовки графики в приложениях, таких как RVIZ2 или glxinfo
. Mesa – это библиотека, предоставляющая API для 3D-графики, поддерживающая OpenGL и другие графические стандарты. Ошибка возникает, когда загружаемый DRI (Direct Rendering Infrastructure) драйвер не соответствует версии установленной библиотеки Mesa.
Проблема может быть вызвана обновлением, которое может изменить файлы Mesa и DRI драйверов на несовместимые версии. Это изменение в системных библиотеках часто приводит к тому, что приложения не могут корректно работать с графической подсистемой из-за несоответствия версий.
Пример
В приведенном пользователем сценарии на платформе Dell XPS 13 Plus с установленной Ubuntu 22.04.4, версия библиотеки Mesa, согласно команде apt list -i | grep mesa
, установлена как 23.2.1-1ubuntu3.1~22.04.2
. Однако, RVIZ2 пытается использовать DRI драйвер из сборки другой версии (23.0.4-0ubuntu1~22.04.1
). Такая несогласованность версий и является причиной возникновения ошибки.
Применение
Для решения этой проблемы, важно добиться согласованности между версиями библиотеки Mesa и DRI драйверов. Рассмотрим несколько шагов, которые можно предпринять для исправления данной ситуации:
-
Проверка и обновление системы:
- Убедитесь, что ваша система полностью обновлена. Запустите команду:
sudo apt update && sudo apt upgrade
Эта команда обновит все пакеты до последних стабильных версий, доступных в репозиториях.
- Убедитесь, что ваша система полностью обновлена. Запустите команду:
-
Переустановка пакетов Mesa:
- Иногда должно помочь полное удаление и повторная установка пакетов Mesa. Это можно сделать следующими командами:
sudo apt remove --purge '^mesa.*' sudo apt install mesa-utils
Заметьте, что
mesa-utils
будет зависеть от других необходимых пакетов, включая драйверы.
- Иногда должно помочь полное удаление и повторная установка пакетов Mesa. Это можно сделать следующими командами:
-
Использование альтернативных репозиториев или PPA:
- Если в стандартных репозиториях находятся различные версии, можно попробовать использовать PPA репозитории для Mesa, такие как
mesa fresh PPA
. Для добавления PPA и обновления:sudo add-apt-repository ppa:kisak/kisak-mesa sudo apt update && sudo apt upgrade
Обратите внимание, что использование PPA репозиториев может повлечь за собой использование бета-версий или нестабильных пакетов.
- Если в стандартных репозиториях находятся различные версии, можно попробовать использовать PPA репозитории для Mesa, такие как
-
Проверка альтернативных драйверов:
- В зависимости от вашей видеокарты, возможно есть смысл проверить, не использует ли система проприетарные драйверы вместо открытых. Для графических карт Intel обычно используются драйверы
i965
илиiris
. - Убедитесь, что ваш графический драйвер (например, Intel Graphics Drivers) соответствует версии используемого Mesa. Чтобы проверить это можно использовать:
glxinfo | grep "OpenGL version"
- В зависимости от вашей видеокарты, возможно есть смысл проверить, не использует ли система проприетарные драйверы вместо открытых. Для графических карт Intel обычно используются драйверы
-
Диагностика и временное решение:
- Если всё еще возникает ошибка, рассмотрите временное понижение версии до предыдущей стабильной версии, как вы уже пробовали делать. Однако, это может привести к проблемам с зависимостями, и такое решение нельзя считать долгосрочным.
- Исследуйте логи, такие как
dmesg
и/var/log/syslog
для получения более детальной информации о любых связанных ошибках.
-
Контроль версий с использованием
apt-mark
:- Можно удержать или откатить до нужной версии пакета, чтобы избежать его обновления. Используйте команды:
sudo apt-mark hold package_name sudo apt-mark unhold package_name
где
package_name
– это имя проблемного пакета Mesa, который вы хотите удержать.
- Можно удержать или откатить до нужной версии пакета, чтобы избежать его обновления. Используйте команды:
-
Контакты с сообществом:
- Расскажите о проблеме в сообществах Ubuntu или соответствующих форумах. Возможно, другие пользователи уже сталкивались с аналогичными трудностями и смогут предложить решение.
Заключение
Несоответствие версий графических библиотек и драйверов может серьезно повлиять на работу приложений, использующих графику. Регулярное обновление системы, использование стабильных версий программного обеспечения, а также обратная связь с разработчиками и сообществом помогут минимизировать подобные проблемы. Если найденные решения неэффективны, рекомендуется сохранять резервные копии и иметь готово рабочее окружение для осуществления отката изменений.