LINUX.ORG.RU

Mesa 23 на Debian Bullseye (Stable)

 , ,


0

1

Привет, ЛОР.
Захотелось мне тут поиграть в Гарри Поттера (Hogwarts Legacy), а оно, оказывается, работает только с DirectX 12.

Древняя дебиановская меза (20 версии) его, естественно, не умеет.

Пришлось доставать напильник и шаманить, но в итоге всё завелось и работает.
Небольшая инструкция:

1) в /etc/apt/sources.list добавляем:

deb http://ppa.launchpad.net/kisak/kisak-mesa/ubuntu focal main # да, убунтовские репозитории - страшно


2) в /etc/apt/preferences добавляем:

Package: libdrm2:* libdrm-amdgpu1:* libdrm-common:* libegl1-mesa:* libegl-mesa0:* libgbm1:* libgbm-dev:* libgl1-mesa-dri:* libglapi-mesa:* libglx-mesa0:* libllvm15:* libosmesa6:* libxatracker2:* mesa-va-drivers:* mesa-vdpau-drivers:* mesa-vulkan-drivers:*
Pin: release n=focal
Pin-Priority: 990

Package: *
Pin: release a=stable
Pin-Priority: 900


3) делаем
sudo apt update
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv <НЕДОСТАЮЩИЙ_КЛЮЧ>
sudo apt update 
sudo apt upgrade


Рестартим иксы и всё должно работать:
➜  ~ glxinfo |grep version\ string
server glx version string: 1.4
client glx version string: 1.4
OpenGL core profile version string: 4.6 (Core Profile) Mesa 23.0.1 - kisak-mesa PPA
OpenGL core profile shading language version string: 4.60
OpenGL version string: 4.6 (Compatibility Profile) Mesa 23.0.1 - kisak-mesa PPA
OpenGL shading language version string: 4.60
OpenGL ES profile version string: OpenGL ES 3.2 Mesa 23.0.1 - kisak-mesa PPA
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20


Кроме библиотек Mesa дополнительно ничего ставиться/обновляться не должно (только libllvm15), вот всё, что вытянулось из PPA:

➜  ~ dpkg -l|grep kisak
ii  libdrm-amdgpu1:amd64                       2.4.110-1~kisak1~f                 amd64        Userspace interface to amdgpu-specific kernel DRM services -- runtime
ii  libdrm-amdgpu1:i386                        2.4.110-1~kisak1~f                 i386         Userspace interface to amdgpu-specific kernel DRM services -- runtime
ii  libdrm-common                              2.4.110-1~kisak1~f                 all          Userspace interface to kernel DRM services -- common files
ii  libdrm2:amd64                              2.4.110-1~kisak1~f                 amd64        Userspace interface to kernel DRM services -- runtime
ii  libdrm2:i386                               2.4.110-1~kisak1~f                 i386         Userspace interface to kernel DRM services -- runtime
ii  libegl-mesa0:amd64                         23.0.1~kisak1~f                    amd64        free implementation of the EGL API -- Mesa vendor library
ii  libegl-mesa0:i386                          23.0.1~kisak1~f                    i386         free implementation of the EGL API -- Mesa vendor library
ii  libegl1-mesa:amd64                         23.0.1~kisak1~f                    amd64        transitional dummy package
ii  libgbm-dev:amd64                           23.0.1~kisak1~f                    amd64        generic buffer management API -- development files
ii  libgbm1:amd64                              23.0.1~kisak1~f                    amd64        generic buffer management API -- runtime
ii  libgbm1:i386                               23.0.1~kisak1~f                    i386         generic buffer management API -- runtime
ii  libgl1-mesa-dri:amd64                      23.0.1~kisak1~f                    amd64        free implementation of the OpenGL API -- DRI modules
ii  libgl1-mesa-dri:i386                       23.0.1~kisak1~f                    i386         free implementation of the OpenGL API -- DRI modules
ii  libglapi-mesa:amd64                        23.0.1~kisak1~f                    amd64        free implementation of the GL API -- shared library
ii  libglapi-mesa:i386                         23.0.1~kisak1~f                    i386         free implementation of the GL API -- shared library
ii  libglx-mesa0:amd64                         23.0.1~kisak1~f                    amd64        free implementation of the OpenGL API -- GLX vendor library
ii  libglx-mesa0:i386                          23.0.1~kisak1~f                    i386         free implementation of the OpenGL API -- GLX vendor library
ii  libllvm15:amd64                            1:15.0.7-1~kisak2~f                amd64        Modular compiler and toolchain technologies, runtime library
ii  libllvm15:i386                             1:15.0.7-1~kisak2~f                i386         Modular compiler and toolchain technologies, runtime library
ii  libosmesa6:amd64                           23.0.1~kisak1~f                    amd64        Mesa Off-screen rendering extension
ii  libosmesa6:i386                            23.0.1~kisak1~f                    i386         Mesa Off-screen rendering extension
ii  libxatracker2:amd64                        23.0.1~kisak1~f                    amd64        X acceleration library -- runtime
ii  mesa-va-drivers:amd64                      23.0.1~kisak1~f                    amd64        Mesa VA-API video acceleration drivers
ii  mesa-vdpau-drivers:amd64                   23.0.1~kisak1~f                    amd64        Mesa VDPAU video acceleration drivers
ii  mesa-vulkan-drivers:amd64                  23.0.1~kisak1~f                    amd64        Mesa Vulkan graphics drivers
ii  mesa-vulkan-drivers:i386                   23.0.1~kisak1~f                    i386         Mesa Vulkan graphics drivers


Если пакетный менеджер предлагает снести полсистемы — ни в коем случае не соглашайтесь, вероятнее всего у вас уже мешанина в системе.
На чистом Debian Stable работает, даже со свежей инсталляцией на виртуалке проверил.

В любом случае — на свой страх и риск.
Статью пилить лень.

★★★★☆

Последнее исправление: annerleen (всего исправлений: 2)
Ответ на: комментарий от alegz

Ты про Nvidia или про что? Можно, но в случае с Nvidia версия драйвера внутри контейнера и в системе должна совпадать, иначе работать не будет.

Или ты не про контейнер говоришь? У Nvidia хоть и своя реализация Vulkan, но это не спасет от того, что в системе устаревшие версии пакетов. Вместо устаревшей Mesa это будет устаревший драйвер Nvidia и получится такая же ситуация. Hogwarts Legacy с Proton Experimental не запускается на драйверах Nvidia старее 510.47, а в Bullseye версия 470 вообще.

Kron4ek ★★★★★
()
Последнее исправление: Kron4ek (всего исправлений: 4)
Ответ на: комментарий от annerleen

В Steam это не надо засовывать, можно просто весь Steam запустить тоже через Conty:

$ ./conty_lite.sh steam

И все. Все игры и настройки, разумеется, подхватятся.

Но при желании можно только отдельные игры из Steam через него запускать, прописав в свойства игры в Steam строку:

/home/user/conty_lite.sh %command%

Где «/home/user/conty_lite.sh» - полный путь до файла Conty.

Правда, точно не знаю, будет второй вариант работать или нет, не проверял.

Kron4ek ★★★★★
()
Последнее исправление: Kron4ek (всего исправлений: 2)

У проекта MX Linux (дистрибутив на базе Debian Stable) есть собственный репозиторий «ahs», в котором они собирают относительно свежие версии всякой фирмвари, графических драйверов и прочего. Легко подключается к обычному Debian Stable и ничего не ломает при обновлениях. Лучше по необходимости использовать его, чем собирать FrankenDebian вперемешку с убунтовскими PPA.

spal
()
Ответ на: комментарий от spal

ага, спасибо.
в любом случае, там версия чуть старее, чем в ОП, но тоже сгодится.

но, опять же, принципиальной разницы между тем, загаживать Debian репозиториями убунты или МХ — я не вижу.

annerleen ★★★★☆
() автор топика
Ответ на: комментарий от einhander

Пожалуйста :)

Можно ли с помощью conty запустить новый софт под старой системой, например браузер?

Можно. Главное, чтобы ядро было не старее 4.4, иначе Conty просто не будет работать.

Я помню, когда тестировал, запускал всякий свежий софт даже на Ubuntu 12.04, правда пришлось ядро вручную обновить.

Kron4ek ★★★★★
()

в /etc/apt/sources.list добавляем

Что в Debian, что в Ubuntu трогать «системный» sources.list давно моветон, для сторонних реп есть каталог /etc/apt/sources.list.d и файлы .list в нём.

sudo apt-key adv –keyserver keyserver.ubuntu.com –recv <НЕДОСТАЮЩИЙ_КЛЮЧ>

Что в Debian, что в Ubuntu создавать (и/или писать в) /etc/apt/trusted.gpg давно deprecated (об этом вовсю ругается apt-key при запуске), для ключей сторонних реп есть каталог /etc/apt/trusted.gpg.d/

Для этого открываешь ссылку https://launchpad.net/~kisak/+archive/ubuntu/kisak-mesa, раскрываешь зелёный «Technical details about this PPA», нажимаешь на ключ ниже «Signing key:» и кладёшь содержимое публичного ключа https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xeb8b81e14da65431d7504ea8f63f0f2b90935439 к себе в /etc/apt/trusted.gpg.d/kisak-mesa.asc.

А на Ubuntu просто добавляешь репу через команду «add-apt-repository ppa:kisak/kisak-mesa»

А за матчасть - спасибо большое.

Dimez ★★★★★
()
Ответ на: комментарий от Dimez

И это в сжатом виде, без сжатия было бы около 6.5 GB :) По факту там только первые 30 Кб файла являются скриптом, остальное - сжатый образ Arch Linux, нафаршированный разными пакетами.

Kron4ek ★★★★★
()