LINUX.ORG.RU
ФорумGames

Steam отказывается работать нормально под федорой

 , ,


0

1

Имею fedora 26 и нативный стим, не могу запустить большую часть игра, получаю в результате

ERROR: ld.so: object '/home/user/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.

Пробовал использовать этот гайд https://wiki.archlinux.org/index.php/Steam/Troubleshooting_(Русский) - удалил все либы, слегка помогло (Black Mesa заработала с оптимусом). Но результат все равно неутешительный, большая часть игр всё равно никак не стартует.

P.S. я не запускал стим уже месяцев 10, раньше все работало ок.

★★★★★

Сообщение об ошибке загрузки оверлея это обычное дело, просто стим так работает: сначала пихает 32-битную версию оверлея, а потом 64-битную, в надежде, что одна из них подойдет.
Чтобы понять, в чем именно причина, хорошо бы полный лог и backtrace из gdb если игра падает с SIGSEGV/SIGABRT

Khnazile ★★★★★
()

Да, еще: наиболее частая на сегодняшний день причина падения стимовых игр это конфликт версий libgrypt. Стим использует убунтовский libgcrypt с версией abi 11, а во многих других дистрах уже перешли на 20.

Временный способ обойти проблему - добавить в параметры запуска игры.

env LD_PRELOAD="" %command%

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

Не падает, просто ничего толком не стартует. Вот лог:

Game update: AppID 8930 "Sid Meier's Civilization V", ProcID 10868, IP 0.0.0.0:0
>>> Adding process 10868 for game ID 8930
GameAction [AppID 8930, ActionID 2] : LaunchApp changed task to WaitingGameWindow with ""
ERROR: ld.so: object '/home/user/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/user/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
GameAction [AppID 8930, ActionID 2] : LaunchApp changed task to Completed with ""
>>> Adding process 10869 for game ID 8930
Game update: AppID 8930 "Sid Meier's Civilization V", ProcID 10869, IP 0.0.0.0:0
Setting breakpad minidump AppID = 8930
Steam_SetMinidumpSteamID:  Caching Steam ID:  76561198069040587 [API loaded no]
Installing breakpad exception handler for appid(gameoverlayui)/version(20170728000110)
Installing breakpad exception handler for appid(gameoverlayui)/version(1.0)
Installing breakpad exception handler for appid(gameoverlayui)/version(1.0)
Game removed: AppID 8930 "Sid Meier's Civilization V", ProcID 10869 
No cached sticky mapping in ActivateActionSet.Installing breakpad exception handler for appid(gameoverlayui)/version(1.0)

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

Попробовал к циве добавить, теперь стим совсем не стартует:

Failed to init SteamVR because it isn't installed
dbus[7348]: arguments to dbus_connection_ref() were incorrect, assertion "connection->generation == _dbus_current_generation" failed in file ../../dbus/dbus-connection.c line 2688.
This is normally a bug in some application using the D-Bus library.

assert_20170728190928_1.dmp[8513]: Uploading dump (out-of-process)
/tmp/dumps/assert_20170728190928_1.dmp
/home/ZERG/.local/share/Steam/steam.sh: line 940:  7348 Segmentation fault      (core dumped) $STEAM_DEBUGGER "$STEAMROOT/$STEAMEXEPATH" "$@"
assert_20170728190928_1.dmp[8513]: Finished uploading minidump (out-of-process): success = yes
assert_20170728190928_1.dmp[8513]: response: CrashID=bp-a7cc5e74-cf55-462b-85cf-29c422170728
assert_20170728190928_1.dmp[8513]: file ''/tmp/dumps/assert_20170728190928_1.dmp'', upload yes: ''CrashID=bp-a7cc5e74-cf55-462b-85cf-29c422170728''
Assert( Assertion Failed: m_pInternalPipe->BRead failed ):../common/pipes.cpp:572

crash_20170728190938_2.dmp[8705]: Uploading dump (out-of-process)
/tmp/dumps/crash_20170728190938_2.dmp
crash_20170728190938_2.dmp[8705]: Finished uploading minidump (out-of-process): success = yes
crash_20170728190938_2.dmp[8705]: response: Discarded=1
crash_20170728190938_2.dmp[8705]: file ''/tmp/dumps/crash_20170728190938_2.dmp'', upload yes: ''Discarded=1''
../common/pipes.cpp (572) : Assertion Failed: m_pInternalPipe->BRead failed
ZERG ★★★★★
() автор топика
Ответ на: комментарий от legolegs

Да вроде всё установлено, я форумы шерстил, там предполагали нехватку glibc.i686, который у меня есть.

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

Ага, это я удалил библиотеки стима, вот он и крашился.

LD_PRELOAD='/usr/$LIB/libstdc++.so.6 /usr/$LIB/libgcc_s.so.1 /usr/$LIB/libxcb.so.1' steam

Запускаю таким макаром, стим снова бежит, а вот игры - нет, опять жалуется на gameoverlayrenderer.so

UPD. Начал крашиться снова. Чистой воды магия, никогда такого не было.

ZERG ★★★★★
() автор топика
Последнее исправление: ZERG (всего исправлений: 1)

На бинарь есть команда, которая показывает что к нему прилинковано. Хотя у стима по идее своя пускалка с DеRьMом, так что может не проканать.

Смотри, что ldd бинарик говорит на бинарик, который не стартует. Есть так же вариант objdump -p бинарик и lsof -P -T -p PID. Но последний вариант будет работать только если процесс создается и работает, а у тебя он, как я понял, падает.

peregrine ★★★★★
()
Последнее исправление: peregrine (всего исправлений: 1)
Ответ на: комментарий от ZERG

Что кажет:

LD_PRELOAD="/home/user/.local/share/Steam/ubuntu12_64/" ldd /home/user/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so

LD_PRELOAD="/home/user/.local/share/Steam/ubuntu12_32/" ldd /home/user/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so

kostik87 ★★★★★
()
Ответ на: комментарий от kostik87
$ LD_PRELOAD="/home/ZERG/.local/share/Steam/ubuntu12_64/" ldd /home/ZERG/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so
ERROR: ld.so: object '/home/ZERG/.local/share/Steam/ubuntu12_64/' from LD_PRELOAD cannot be preloaded (cannot read file data): ignored.
ERROR: ld.so: object '/home/ZERG/.local/share/Steam/ubuntu12_64/' from LD_PRELOAD cannot be preloaded (cannot read file data): ignored.
	linux-vdso.so.1 (0x00007ffd1afcc000)
	libGL.so.1 => /lib64/libGL.so.1 (0x00007f8088df4000)
	librt.so.1 => /lib64/librt.so.1 (0x00007f8088bec000)
	libdl.so.2 => /lib64/libdl.so.2 (0x00007f80889e8000)
	libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f8088660000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f8088441000)
	/lib64/ld-linux-x86-64.so.2 (0x0000563fb5418000)
	libm.so.6 => /lib64/libm.so.6 (0x00007f8088129000)
	libc.so.6 => /lib64/libc.so.6 (0x00007f8087d58000)
	libGLX.so.0 => /lib64/libGLX.so.0 (0x00007f8087b26000)
	libX11.so.6 => /lib64/libX11.so.6 (0x00007f80877e8000)
	libXext.so.6 => /lib64/libXext.so.6 (0x00007f80875d6000)
	libGLdispatch.so.0 => /lib64/libGLdispatch.so.0 (0x00007f8087320000)
	libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f8087107000)
	libxcb.so.1 => /lib64/libxcb.so.1 (0x00007f8086edf000)
	libXau.so.6 => /lib64/libXau.so.6 (0x00007f8086cdb000)
$ LD_PRELOAD="/home/ZERG/.local/share/Steam/ubuntu12_32/" ldd /home/ZERG/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so
ERROR: ld.so: object '/home/ZERG/.local/share/Steam/ubuntu12_32/' from LD_PRELOAD cannot be preloaded (cannot read file data): ignored.
ERROR: ld.so: object '/home/ZERG/.local/share/Steam/ubuntu12_32/' from LD_PRELOAD cannot be preloaded (cannot read file data): ignored.
	linux-gate.so.1 (0xf77e5000)
	libGL.so.1 => /lib/libGL.so.1 (0xf7720000)
	librt.so.1 => /lib/librt.so.1 (0xf7716000)
	libdl.so.2 => /lib/libdl.so.2 (0xf7711000)
	libstdc++.so.6 => /lib/libstdc++.so.6 (0xf758e000)
	libpthread.so.0 => /lib/libpthread.so.0 (0xf756f000)
	/lib/ld-linux.so.2 (0x56589000)
	libm.so.6 => /lib/libm.so.6 (0xf7511000)
	libc.so.6 => /lib/libc.so.6 (0xf732d000)
	libGLX.so.0 => /lib/libGLX.so.0 (0xf730c000)
	libX11.so.6 => /lib/libX11.so.6 (0xf71c8000)
	libXext.so.6 => /lib/libXext.so.6 (0xf71b2000)
	libGLdispatch.so.0 => /lib/libGLdispatch.so.0 (0xf7154000)
	libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xf7137000)
	libxcb.so.1 => /lib/libxcb.so.1 (0xf710c000)
	libXau.so.6 => /lib/libXau.so.6 (0xf7108000)
ZERG ★★★★★
() автор топика
Ответ на: комментарий от ZERG

gameoverlayrenderer.so штука не обязательная, его ошибки можно смело игнорировать, они есть даже на системах где стим работает. Еще раз повторяю: надо загрузить coredump упавшего процесса в gdb и там посмотреть, в каком именно компоненте произошел вылет командой bt full.

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

Начал крашиться снова. Чистой воды магия, никогда такого не было.

Возможно в федоре есть какие-нибудь скрипты, которые правят steam runtime при запуске, но они протухли.

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

Беда не в том, что он крашится, это, как я понял, решаемо. Беда в том, что целая куча линуксовых игр просто не стартует и жалуется на gameoverlayrenderer. И это всё, что в выхлопе есть.

Забавно, что я могу без проблем запустить Black Mesa, Mark of the Ninja (с той же ошибкой), а вот Civ5 и KOTOR - нет.

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

Почему ты думаешь, что игры не стратуют из-за gameoverlayrenderer? У меня тоже все игры на него жалуются, но при этом работают.

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

Я не говорю, что они из-за этого не стартуют (хотя кто знает, что у разрабов в голове). Я говорю, что это единственное сообщение об ошибке, которое выдаёт стим. Ничего больше, просто при попытке стартануть окно с игрой закрывается. И я не вижу никакой системы в этом.

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

В логе нет ошибок потому, что игры не пишут ничего в stdout/stderr, так уж их сделали. Не надо искать систему, надо подключить отладчик к игре, и посмотреть, почему именно она завершается.

Т.к. у тебя fedora, возможно systemd уже сохранил парочку корок для тебя. Запусти coredumpctl list и крути список вниз до конца, там должно быть несколько последних дампов отмеченных звездочками - их можно посмотреть. Если среди них есть steam или игры, вызови coredumpctl gdb <номер процесса из списка>. Когда gdb загрузит корку, набери 'bt'

Khnazile ★★★★★
()
Ответ на: комментарий от manntes-live

Currently, Steam for Linux is only supported on Ubuntu 12.04 LTS and newer

Откровенная ложь, на 12.04 уже давно толком не работает, с горем пополам на 14.04 и на 16.04.

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

На 16.04 горя не вижу. В любом случае, кроме СтимОС из линуксов официально поддерживается только Убунта.

manntes-live ★★★
()
Ответ на: комментарий от ZERG

Неправильно написал, должно быть LD_LIBRARY_PATH вместо LD_PRELOAD.

kostik87 ★★★★★
()

Потому что Steam нужно запускать под Windows. Жаль, что наивные линуксоиды повелись на игры Valve с Microsoft...

anonymous
()

Пока линуксоиды трахаются с

ERROR: ld.so: object ...

Microsoft подтянул все подсистемы своей поделки и запилил очень вкусные новые. Скоро и

ERROR: ld.so: object ...

можно будет получить запуская Steam для Linux под WSL. Чем не финальный аккорд EEE?!

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

Ну у меня только один баг, что-то не то с физикой, не могу пройти до конца. Но есть моменты, где сложно понять разницу между багом и фичей)

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

Ну да, она самая. Только там есть баг небольшой, который мешает прохождению.

ZERG ★★★★★
() автор топика

намедни обновил FC 23 до 25 c Wayland по умолчанию, попробовал Стим / Total War:WARHAMMER - внезапно, просто работает.
Аж захотелось поделиться, хоть и офтопик.

ЗЫ
А кстати, есть такая интерпретация квантовой механики, что в системе отсчёта кота Шредингера распад атома, смерть/несмерть кота и открытие ящика экспериментатором происходят последовательно, а в системе отсчёта экспериментатора - все эти события одновременны с актом наблюдения? И что коллапс волновой функции - это механизм времени, то как туманное будущее превращается в определённое прошлое?
Можно реально поставить эксперимент с котом - отправить его куда-нибудь на Марс, тогда «открытие ящика» будет происходить через несколько минут после распада атома, в тот момент, когда с Марса дойдёт сигнал - но в таком эксперименте ничего парадоксального вроде нет.
То есть по теории относительности событие в А становится прошлым для наблюдателя в B через минимальное время, за которое сигнал со скоростью света _может_ дойти из А в B; Почему не предположить, что оно становится прошлым не просто через минимальное необходимое время, а лишь когда какой-нибудь сигнал действительно доходит?

Anonymous ★★★★★
()
Последнее исправление: Anonymous (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.