Автор Тема: Проблема с запуском XCOM:Enemy Unknown.  (Прочитано 9401 раз)

Оффлайн Kemper

  • Завсегдатай
  • *
  • Сообщений: 572
  • Simply Linux
    • Email
Здравствуйте.

Имеется проблема с запуском XCOM:Enemy Unknown. Игра куплена в Steam. Из Steam не запускается. Полез в каталог с игрой, чтобы запустить бинарник в ручную. Вот, что выдает:
./game.x86_64: error while loading shared libraries: libsteam_api.so: cannot open shared object file: No such file or directory

Решил проверить, какие библиотеки он ещё не видит:
linux-vdso.so.1 (0x00007fff55dfe000)
libz.so.1 => /lib64/libz.so.1 (0x00007faabfea0000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007faabfc83000)
librt.so.1 => /lib64/librt.so.1 (0x00007faabfa7a000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007faabf876000)
libvorbis.so.0 => /usr/lib64/libvorbis.so.0 (0x00007faabf64b000)
libvorbisfile.so.3 => /usr/lib64/libvorbisfile.so.3 (0x00007faabf442000)
libopenal.so.1 => /usr/lib64/libopenal.so.1 (0x00007faabf1f3000)
libpng12.so.0 => /usr/lib64/libpng12.so.0 (0x00007faabefca000)
libsteam_api.so => not found
libicui18n.so.51 => not found
libicuuc.so.51 => not found
libicudata.so.51 => not found
libCoreFoundation.so.476 => not found
libSDL2-2.0.so.0 => /usr/lib64/libSDL2-2.0.so.0 (0x00007faabecc2000)
libSDL2_image-2.0.so.0 => /usr/lib64/libSDL2_image-2.0.so.0 (0x00007faabea9b000)
libfreetype.so.6 => /usr/lib64/libfreetype-infinality/libfreetype.so.6 (0x00007faabe7e5000)
libfontconfig.so.1 => /usr/lib64/libfontconfig.so.1 (0x00007faabe5a7000)
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007faabe2a3000)
libm.so.6 => /lib64/libm.so.6 (0x00007faabdfa5000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007faabdd8f000)
libc.so.6 => /lib64/libc.so.6 (0x00007faabd9de000)
/lib64/ld-linux-x86-64.so.2 (0x00007faac00d8000)
libogg.so.0 => /usr/lib64/libogg.so.0 (0x00007faabd7d7000)
libpng15.so.15 => /usr/lib64/libpng15.so.15 (0x00007faabd5ab000)
libjpeg.so.62 => /usr/lib64/libjpeg.so.62 (0x00007faabd35d000)
libtiff.so.5 => /usr/lib64/libtiff.so.5 (0x00007faabd0eb000)
libwebp.so.5 => /usr/lib64/libwebp.so.5 (0x00007faabce90000)
libexpat.so.1 => /lib64/libexpat.so.1 (0x00007faabcc66000)
liblzma.so.5 => /lib64/liblzma.so.5 (0x00007faabca41000)

Все не найденные библиотеки лежат в соседнем каталоге и тут начинается самое интересное. Бинарник запускается с помощью скрипта xcom.sh. В нем производят внесение этих библиотек в LD_LIBRARY_PATH и вроде все пути прописаны правильно и библиотеки прогружаются. На это также указывает crashlog, однако запуска не происходит.
Изучив интернет я наткнулся на то, что такая проблема вылазит при использовании свободных драйверов, но я использую проприетарный драйвер NVidia. Как решить данную проблему даже и не знаю. Прошу у вас помощи.
Также прикладываю dump crashlog.

glxinfo |grep OpenGL
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GTX 750 Ti/PCIe/SSE2
OpenGL core profile version string: 4.3.0 NVIDIA 340.46
OpenGL core profile shading language version string: 4.30 NVIDIA via Cg compiler
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 4.4.0 NVIDIA 340.46
OpenGL shading language version string: 4.40 NVIDIA via Cg compiler
OpenGL context flags: (none)
OpenGL profile mask: (none)
OpenGL extensions:

Текст xcom.sh

#!/bin/bash

# figure out the absolute path to the script being run a bit
# non-obvious, the ${0%/*} pulls the path out of $0, cd's into the
# specified directory, then uses $PWD to figure out where that
# directory lives - and all this in a subshell, so we don't affect
# $PWD
GAMEROOT=$(cd "${0%/*}" && echo $PWD)/../..

# Push our libraries to LD_LIBRARY_PATH
export LD_LIBRARY_PATH="${GAMEROOT}/binaries/linux/x86_64/":"${LD_LIBRARY_PATH}"

if [ -z "$GAMEEXE" ]; then
  GAMEEXE=game.x86_64
fi

ulimit -n 2048

cd "$GAMEROOT"

GAMEBINARY="${GAMEROOT}/binaries/linux"/${GAMEEXE}

# This sets what SDL uses for the X11 window class, which Gnome shell uses for
# the application name (on X11).
export SDL_VIDEO_X11_WMCLASS="XCOM: Enemy Unknown"

# check if the game binary exists
if [ -e "$GAMEBINARY" ]; then

# Launch the game and grab the status
STATUS=42
while [ $STATUS -eq 42 ]; do
${DEBUGGER} "${GAMEBINARY}" $@
STATUS=$?
done
exit $STATUS

else

# Binary is missing, something went wrong
echo "XCOM ERROR - $GAMEBINARY missing"

fi
« Последнее редактирование: 23.10.2014 23:11:58 от Kemper »
Alt Linux - Поддержим Российского производителя!

Оффлайн Kemper

  • Завсегдатай
  • *
  • Сообщений: 572
  • Simply Linux
    • Email
Alt Linux - Поддержим Российского производителя!

Оффлайн БарсSc

  • alt linux team
  • ***
  • Сообщений: 1 089
  • Intel_i7/nVidia_Optimus, AMD Ryzen 3 2200
Re: Проблема с запуском XCOM:Enemy Unknown.
« Ответ #2 : 24.10.2014 16:24:06 »
Игра запускается и работает на ALT Kdesktop 7 x64 на процессоре i5 2410 и nvidia gt540m (оптимус), так же данная игра работает и на amd видеокартах, так что опишите свое железо и систему для начала.

Оффлайн Kemper

  • Завсегдатай
  • *
  • Сообщений: 572
  • Simply Linux
    • Email
Re: Проблема с запуском XCOM:Enemy Unknown.
« Ответ #3 : 24.10.2014 17:15:08 »
Игра запускается и работает на ALT Kdesktop 7 x64 на процессоре i5 2410 и nvidia gt540m (оптимус), так же данная игра работает и на amd видеокартах, так что опишите свое железо и систему для начала.

Simply Linux (p7) X86_64
Процессор Core i7-4770S
Видеокарта GeForce GTX 750 Ti
24 Гб ОЗУ.
« Последнее редактирование: 24.10.2014 17:41:37 от Kemper »
Alt Linux - Поддержим Российского производителя!

Оффлайн БарсSc

  • alt linux team
  • ***
  • Сообщений: 1 089
  • Intel_i7/nVidia_Optimus, AMD Ryzen 3 2200
Re: Проблема с запуском XCOM:Enemy Unknown.
« Ответ #4 : 24.10.2014 18:57:19 »
Идеално должна работать, запускайте steam через консоль и оттуда игру, по консольному выхлопу поймете чего не так.

Оффлайн Kemper

  • Завсегдатай
  • *
  • Сообщений: 572
  • Simply Linux
    • Email
Re: Проблема с запуском XCOM:Enemy Unknown.
« Ответ #5 : 24.10.2014 21:23:54 »
Идеално должна работать, запускайте steam через консоль и оттуда игру, по консольному выхлопу поймете чего не так.
Спасибо за идею. Я чего-то забыл про такую возможность.

А теперь к проблеме.
Вот, что мне выдало при запуске:
Game update: AppID 200510 "XCOM: Enemy Unknown", ProcID 3177, IP 0.0.0.0:0
ERROR: ld.so: object '/home/artem/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded: ignored.

(steam:3072): LIBDBUSMENU-GLIB-WARNING **: Trying to remove a child that doesn't believe we're it's parent.

(steam:3072): LIBDBUSMENU-GLIB-WARNING **: Trying to remove a child that doesn't believe we're it's parent.

(steam:3072): LIBDBUSMENU-GLIB-WARNING **: Trying to remove a child that doesn't believe we're it's parent.

(steam:3072): LIBDBUSMENU-GLIB-WARNING **: Trying to remove a child that doesn't believe we're it's parent.

(steam:3072): LIBDBUSMENU-GLIB-WARNING **: Trying to remove a child that doesn't believe we're it's parent.

(steam:3072): LIBDBUSMENU-GLIB-WARNING **: Trying to remove a child that doesn't believe we're it's parent.

(steam:3072): LIBDBUSMENU-GLIB-WARNING **: Trying to remove a child that doesn't believe we're it's parent.

(steam:3072): LIBDBUSMENU-GLIB-WARNING **: Trying to remove a child that doesn't believe we're it's parent.

(steam:3072): LIBDBUSMENU-GLIB-WARNING **: Trying to remove a child that doesn't believe we're it's parent.

(steam:3072): LIBDBUSMENU-GLIB-WARNING **: Trying to remove a child that doesn't believe we're it's parent.

(steam:3072): LIBDBUSMENU-GLIB-WARNING **: Trying to remove a child that doesn't believe we're it's parent.

(steam:3072): LIBDBUSMENU-GLIB-WARNING **: Trying to remove a child that doesn't believe we're it's parent.

(steam:3072): LIBDBUSMENU-GLIB-WARNING **: Trying to remove a child that doesn't believe we're it's parent.

(steam:3072): LIBDBUSMENU-GLIB-WARNING **: Trying to remove a child that doesn't believe we're it's parent.

(steam:3072): LIBDBUSMENU-GLIB-WARNING **: Trying to remove a child that doesn't believe we're it's parent.
ERROR: ld.so: object '/home/artem/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded: ignored.
pid 3179 != 3178, skipping destruction (fork without exec?)
ERROR: ld.so: object '/home/artem/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded: ignored.
/home/artem/.local/share/Steam/SteamApps/common/XCom-Enemy-Unknown/xcom.sh: line 75: syntax error near unexpected token `;'
/home/artem/.local/share/Steam/SteamApps/common/XCom-Enemy-Unknown/xcom.sh: line 75: ` ;&'
Game removed: AppID 200510 "XCOM: Enemy Unknown", ProcID 3177

Больше всего заинтересовали вот эти строчки:
/home/artem/.local/share/Steam/SteamApps/common/XCom-Enemy-Unknown/xcom.sh: line 75: syntax error near unexpected token `;'
/home/artem/.local/share/Steam/SteamApps/common/XCom-Enemy-Unknown/xcom.sh: line 75: ` ;&'

Полез исправил. Банальнейшая ошибка. Даже смешно. Результат - все работает. Спасибо за наводку.

Надо наверное зарепортить багу, да и понять почему он библиотеку загрузить не может.
« Последнее редактирование: 24.10.2014 21:27:10 от Kemper »
Alt Linux - Поддержим Российского производителя!

Оффлайн БарсSc

  • alt linux team
  • ***
  • Сообщений: 1 089
  • Intel_i7/nVidia_Optimus, AMD Ryzen 3 2200
Re: Проблема с запуском XCOM:Enemy Unknown.
« Ответ #6 : 25.10.2014 12:44:17 »
В steam есть функция проверки целостности файлов игры (правой кнопкой по проверяемой игре), может сбой при скачивании игры произошел

Оффлайн Kemper

  • Завсегдатай
  • *
  • Сообщений: 572
  • Simply Linux
    • Email
Re: Проблема с запуском XCOM:Enemy Unknown.
« Ответ #7 : 25.10.2014 16:24:17 »
В steam есть функция проверки целостности файлов игры (правой кнопкой по проверяемой игре), может сбой при скачивании игры произошел

Уже сделал. И не один раз. Он всегда притаскивает скрипт с ошибкой.
Alt Linux - Поддержим Российского производителя!

Оффлайн akarp

  • Завсегдатай
  • *
  • Сообщений: 226
    • Email
Re: Проблема с запуском XCOM:Enemy Unknown.
« Ответ #8 : 25.10.2014 22:45:07 »
Он всегда притаскивает скрипт с ошибкой.
Это началось с августа - в июле все было нормально, а в начале августе вышло какое-то обновление, и приплыл скрипт с ошибкой (не помню, какой, что-то элементарное). Так что ошибка в дистрибутиве.

Оффлайн Nenderus

  • alt linux team
  • ***
  • Сообщений: 218
  • ALT 8.1 Workstation K
    • Неофициальный сайт легендарной группы "Ария"
    • Email
Re: Проблема с запуском XCOM:Enemy Unknown.
« Ответ #9 : 08.04.2015 20:29:51 »
Там не ошибка, просто разработчики написали скрипт на bash 4 версии, а в альте (p7) только 3-я версия. Для исправления надо в xcom.sh этот участок кода

for ARG in "$@"
do
case "$ARG" in
--launch-enemy-unknown)
GAMESCRIPT=$XEUSCRIPT
;;
--launch-enemy-within)
GAMESCRIPT=$XEWSCRIPT
;;
--help)
;&
-h)
echo "Usage: Without Enemy Within installed, always launches Enemy Unknown. Otherwise:"
echo ' With --launch-enemy-unknown, launch XCOM: Enemy Unknown.'
echo ' With --launch-enemy-within, launch XCOM: Enemy Within.'
echo ' Without either of the above two options, shows a graphical chooser.'
echo ' All arguments are passed to the game launch script.'
exit 0
;;
esac
done

заменить на этот

for ARG in "$@"
do
case "$ARG" in
--launch-enemy-unknown)
GAMESCRIPT=$XEUSCRIPT
;;
--launch-enemy-within)
GAMESCRIPT=$XEWSCRIPT
;;
--help|-h)
echo "Usage: Without Enemy Within installed, always launches Enemy Unknown. Otherwise:"
echo ' With --launch-enemy-unknown, launch XCOM: Enemy Unknown.'
echo ' With --launch-enemy-within, launch XCOM: Enemy Within.'
echo ' Without either of the above two options, shows a graphical chooser.'
echo ' All arguments are passed to the game launch script.'
exit 0
;;
esac
done

Я про это разработчикам отписывал ещё в сентябре прошлого года, но похоже так и не исправили, что бы работало для bash 3-й версии...

Оффлайн Just_Magmel

  • Начинающий
  • *
  • Сообщений: 3
Re: Проблема с запуском XCOM:Enemy Unknown.
« Ответ #10 : 28.09.2015 11:21:05 »
Подскажите рогатому, кудазалезть, и какой фаил поковырять? или может просто скиньте исправленный файл)

Оффлайн БарсSc

  • alt linux team
  • ***
  • Сообщений: 1 089
  • Intel_i7/nVidia_Optimus, AMD Ryzen 3 2200
Re: Проблема с запуском XCOM:Enemy Unknown.
« Ответ #11 : 28.09.2015 19:08:09 »
Больше всего заинтересовали вот эти строчки:
/home/artem/.local/share/Steam/SteamApps/common/XCom-Enemy-Unknown/xcom.sh: line 75: syntax error near unexpected token `;'
/home/artem/.local/share/Steam/SteamApps/common/XCom-Enemy-Unknown/xcom.sh: line 75: ` ;&'
Там не ошибка, просто разработчики написали скрипт на bash 4 версии, а в альте (p7) только 3-я версия. Для исправления надо в xcom.sh этот участок кода

for ARG in "$@"
do
case "$ARG" in
--launch-enemy-unknown)
GAMESCRIPT=$XEUSCRIPT
;;
--launch-enemy-within)
GAMESCRIPT=$XEWSCRIPT
;;
--help)
;&
-h)
echo "Usage: Without Enemy Within installed, always launches Enemy Unknown. Otherwise:"
echo ' With --launch-enemy-unknown, launch XCOM: Enemy Unknown.'
echo ' With --launch-enemy-within, launch XCOM: Enemy Within.'
echo ' Without either of the above two options, shows a graphical chooser.'
echo ' All arguments are passed to the game launch script.'
exit 0
;;
esac
done

заменить на этот

for ARG in "$@"
do
case "$ARG" in
--launch-enemy-unknown)
GAMESCRIPT=$XEUSCRIPT
;;
--launch-enemy-within)
GAMESCRIPT=$XEWSCRIPT
;;
--help|-h)
echo "Usage: Without Enemy Within installed, always launches Enemy Unknown. Otherwise:"
echo ' With --launch-enemy-unknown, launch XCOM: Enemy Unknown.'
echo ' With --launch-enemy-within, launch XCOM: Enemy Within.'
echo ' Without either of the above two options, shows a graphical chooser.'
echo ' All arguments are passed to the game launch script.'
exit 0
;;
esac
done

Я про это разработчикам отписывал ещё в сентябре прошлого года, но похоже так и не исправили, что бы работало для bash 3-й версии...