Проблема с primus

Ответить
Аватара пользователя
БарсSc
Сообщения: 67
Зарегистрирован: 18 мар 2016, 16:25
Operating system: Rosa Fresh R10 Plasma 5

Проблема с primus

Сообщение БарсSc » 06 ноя 2016, 12:59

Здравствуйте. Некоторые игры в steam не запускаются через primusrun выдавая ошибку про недостаточную версию OpenGL. Покопавшись в проблеме выяснилось, что устанавливается у нас 64 разрядный primus, а 32 разрядный в репах есть,но для установки не предлагается, как следствие отсутствует 32 битная библиотека /usr/lib/primus/LibGL.so.1. Это пол беды, оказывается у 32 и 64 разрядных primus разные скрипты запуска, что не есть хорошо. Предлагаю изменить скрипт запуска на универсальный и включить или пересобрать 32 битную библиотеку для 64 разрядных систем.
Универсальный скрипт запуска (проверено на своем ноутбуке):

Код: Выделить всё

#!/bin/bash

# Readback-display synchronization method
# 0: no sync, 1: D lags behind one frame, 2: fully synced
# export PRIMUS_SYNC=${PRIMUS_SYNC:-0}

# Verbosity level
# 0: only errors, 1: warnings (default), 2: profiling
# export PRIMUS_VERBOSE=${PRIMUS_VERBOSE:-1}

# Secondary display
# export PRIMUS_DISPLAY=${PRIMUS_DISPLAY:-:8}

# "Accelerating" libGL
# $LIB will be interpreted by the dynamic linker
export PRIMUS_libGLa=${PRIMUS_libGLa:-'/usr/$LIB/nvidia/libGL.so.1'}

# "Displaying" libGL
export PRIMUS_libGLd=${PRIMUS_libGLd:-'/usr/$LIB/libGL.so.1'}

# Directory containing primus libGL
PRIMUS_libGL=/usr/lib64/primus:/usr/lib/primus:/usr/lib64/nvidia:/usr/lib/nvidia${PRIMUS_libGL:-$(dirname `readlink -ne $0`)/'$LIB'}

# On some distributions, e.g. on Ubuntu, libnvidia-tls.so is not available
# in default search paths.  Add its path manually after the primus library
# PRIMUS_libGL=${PRIMUS_libGL}:/usr/lib/nvidia-current:/usr/lib32/nvidia-current

# Mesa drivers need a few symbols to be visible
# export PRIMUS_LOAD_GLOBAL=${PRIMUS_LOAD_GLOBAL:-'libglapi.so.0'}

# Need functions from primus libGL to take precedence
export LD_LIBRARY_PATH=${PRIMUS_libGL}${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}

# And go!
exec "$@"
Если надо могу багу повесить.
Последний раз редактировалось БарсSc 06 ноя 2016, 18:21, всего редактировалось 1 раз.

keleg
Сообщения: 5276
Зарегистрирован: 15 сен 2011, 01:58

Re: Проблема с primus

Сообщение keleg » 06 ноя 2016, 17:09

Сообщил "кому надо". Но багу тоже можно.

Аватара пользователя
БарсSc
Сообщения: 67
Зарегистрирован: 18 мар 2016, 16:25
Operating system: Rosa Fresh R10 Plasma 5

Re: Проблема с primus

Сообщение БарсSc » 06 ноя 2016, 18:37

keleg писал(а):Сообщил "кому надо". Но багу тоже можно.
Создал баг, поправте если чего напутал.

euspectre
Сообщения: 1040
Зарегистрирован: 21 дек 2012, 15:24
Operating system: Linux в разных вариантах

Re: Проблема с primus

Сообщение euspectre » 13 ноя 2016, 21:35

БарсSc писал(а):устанавливается у нас 64 разрядный primus, а 32 разрядный в репах есть,но для установки не предлагается, как следствие отсутствует 32 битная библиотека /usr/lib/primus/LibGL.so.1. Это пол беды, оказывается у 32 и 64 разрядных primus разные скрипты запуска, что не есть хорошо. Предлагаю изменить скрипт запуска на универсальный и включить или пересобрать 32 битную библиотеку для 64 разрядных систем.
А, да $LIB в скрипте позволит подтягивать нужную библиотеку в зависимости от того, 32-битное приложение её требует или 64-битное. Разумно.

Я правильно понимаю, что когда Вы заменили скрипт запуска на тот, что c $LIB, и подложили в /usr/lib/primus/ libGL (и только её) из 32-битной версии, всё заработало нормально?

Если так, я мог бы разделить пакет primus, чтобы libGL была в отдельном пакете. Сейчас же 32-битный и 64-битный primus нельзя поставить одновременно, т.к. по другим файлам будут конфликты. Если же хватит 32-битной libGL, то отдельным пакетом это решим. lib(64)primus_gl1 или как-то так назвать можно.

Аватара пользователя
БарсSc
Сообщения: 67
Зарегистрирован: 18 мар 2016, 16:25
Operating system: Rosa Fresh R10 Plasma 5

Re: Проблема с primus

Сообщение БарсSc » 20 ноя 2016, 12:15

Все верно, я заменил скрипт и подложил 32-битную библиотеку primus. В дровах nvidia 32-битные библиотеки сами устанавливаются и меса 32 у меня стояла. Извините что долго не отвечал, не заметил ответ в теме. На альте есть моя статья на вики, что необходимо для запуска 32-битных игр в steam через primus т.к. многие об это спотыкались, странно что на росе я первый. Может еще в пакет с 32-битной библиотекой primus запихать зависимости на нужные 32-битные mesa и drm как в альте? Если надо я могу потестить результаты перед выпуском в стабильные репы.

euspectre
Сообщения: 1040
Зарегистрирован: 21 дек 2012, 15:24
Operating system: Linux в разных вариантах

Re: Проблема с primus

Сообщение euspectre » 21 ноя 2016, 14:03

Может еще в пакет с 32-битной библиотекой primus запихать зависимости на нужные 32-битные mesa и drm как в альте?
Разумно, так и сделаем.
Если надо я могу потестить результаты перед выпуском в стабильные репы.
Попробуйте вот такой вариант primus. Я там сделал несколько по-другому в скрипте запуска, но эффект должен быть тот же.

Код: Выделить всё

urpmi.addmedia primus http://abf-downloads.rosalinux.ru/rosa2014.1/container/2756859/x86_64/non-free/release/
urpmi.addmedia primus32 http://abf-downloads.rosalinux.ru/rosa2014.1/container/2756858/i586/non-free/release/
urpmi primus primus-lib32
Как я и говорил, я выделил libGL из primus в отдельный пакет - теперь проще держать в системе и 32-битную, и 64-битную её версии. Чтобы не запоминать "каноническое" название пакета (libprimus_gl1), можно ставить 32-битную версию с помощью "urpmi primus-lib32".

Аватара пользователя
БарсSc
Сообщения: 67
Зарегистрирован: 18 мар 2016, 16:25
Operating system: Rosa Fresh R10 Plasma 5

Re: Проблема с primus

Сообщение БарсSc » 21 ноя 2016, 17:15

Прекрасный результат. Протестировал на dirt showdown. Можно попросить еще потестить VictoR2007 он тоже словил эту проблему, напишу ему в личку.

Аватара пользователя
VictorR2007
Сообщения: 5315
Зарегистрирован: 12 сен 2011, 13:00
Operating system: ROSA 2016.1
Откуда: Северодвинск

Re: Проблема с primus

Сообщение VictorR2007 » 22 ноя 2016, 09:33

Ага, всё отлично работает.

euspectre
Сообщения: 1040
Зарегистрирован: 21 дек 2012, 15:24
Operating system: Linux в разных вариантах

Re: Проблема с primus

Сообщение euspectre » 22 ноя 2016, 11:15

Отлично. Спасибо, что проверили.

Отдам на QA тогда.

Ответить