Steam/Troubleshooting (Русский)
Смотрите основную статью: Steam
Contents
- 1 Проблемы с драйверами nvidia версии 361.28
- 2 Проблемы среды выполнения Steam
- 3 Проблема при использовании нескольких мониторов
- 4 Родная среда выполнения: steam.sh line 756 ошибка сегментации
- 5 Кнопка закрытия только сворачивает окно
- 6 Flash не работает на 64-битных системах
- 7 Текст повреждён или не отображается
- 8 SetLocale('en_US.UTF-8') не срабатывает при запуске игры
- 9 Игра вылетает немедленно после запуска
- 10 OpenGL не использует прямой рендеринг
- 11 Ошибка libGL при запуске некоторых игр
- 12 OpenGL не использует прямой рендеринг / Steam вешает Xorg
- 13 Проблемы с 64-битными играми, таких как XCOM
- 14 Нет звука в некоторых играх
- 15 Missing libGL
- 16 Игры не запускаются на старом оборудовании Intel
- 17 Некоторые игры не запускаются
Проблемы с драйверами nvidia версии 361.28
При запуске некоторых игр возникает ошибка, появившаяся в драйверах nvidia версии 361.28
"Missing basic OpenGL v1.0 -> v2.0 required OpenGL functionality."
До исправления NVIDIA данной ошибки вы можете использовать следующий параметр для запуска для проблемной игры:
__GLVND_DISALLOW_PATCHING=1 %command%
либо же вы можете откатить версию драйверов nvidia до 361.16
Проблемы среды выполнения Steam
Steam устанавливает собственные, часто устаревшие версии библиотек, также называемые "Steam Runtime" (среда выполнения Steam). Данные библиотеки, вероятно, будут часто конфликтовать с теми, которые включены в Arch Linux.
Возможные симптомы
Некоторые из возможных симптомов данных проблем проявляются в зависании или сбоях при запуске клиента Steam, а также в виде следующих ошибок:
libGL error: unable to load driver: some_driver_dri.so libGL error: driver pointer missing libGL error: failed to load driver: some_driver libGL error: unable to load driver: swrast_dri.so libGL error: failed to load driver: swrast
Failed to load libGL: undefined symbol: xcb_send_fd
ERROR: ld.so: object '~/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
OpenGL GLX context is not using direct rendering, which may cause performance problems. (смотри ниже)
Could not find required OpenGL entry point 'glGetError'! Either your video card is unsupported or your OpenGL driver needs to be updated.
Временные решения
Вы можете решить данную проблему заставив Steam принудительно использовать актуальные версии библиотек (установленные с помощью pacman) следующими двумя способами.
Использование динамического компоновщика
Динамический компоновщик (ld.so(8)) может загружать определённые библиотеки с помощью переменной окружения LD_PRELOAD
.
LD_PRELOAD='/usr/$LIB/libstdc++.so.6 /usr/$LIB/libgcc_s.so.1 /usr/$LIB/libxcb.so.1' steam
При использовании .desktop файла вы можете использовать команду в строке Exec=
env LD_PRELOAD='/usr/$LIB/libstdc++.so.6 /usr/$LIB/libgcc_s.so.1 /usr/$LIB/libxcb.so.1' /usr/bin/steam %U
Удаление библиотек среды выполнения Steam
Запустите следующую команду для удаления конфликтных библиотек среды выполнения Steam, вызывающих проблемы в Arch Linux:
find ~/.steam/root/ \( -name "libgcc_s.so*" -o -name "libstdc++.so*" -o -name "libxcb.so*" \) -print -delete
Если указанная выше команда не сработала, то запустите её ещё раз, а затем запустите следующую команду.
find ~/.local/share/Steam/ \( -name "libgcc_s.so*" -o -name "libstdc++.so*" -o -name "libxcb.so*" \) -print -delete
Если вы хотите восстановить файлы, которые были удалены указанной выше командой, то вы можете воспользоваться встроенной функцией сброса Steam.
bc|steam --reset
Проблема при использовании нескольких мониторов
Использование нескольких мониторов может вызвать следующую ошибку:
ERROR: ld.so: object '~/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
которая приводит к сбою при запуске игры.
При возникновении данной ошибки вы можете отключить дополнительные экраны и затем запустить игру. В случае успешного запуска игры вы можете включить экраны снова.
Также вы можете попробовать выполнить данную команду:
export LD_LIBRARY_PATH=/usr/lib32/nvidia:/usr/lib/nvidia:$LD_LIBRARY_PATH
и затем запустить steam.
Родная среда выполнения: steam.sh line 756 ошибка сегментации
- Valve GitHub issue 3863
Согласно вышеупомянутому отчёту в Steam происходит сбой с ошибкой /home/<username>/.local/share/Steam/steam.sh: line 756: <различный числовой код> Segmentation fault (core dumped)
при запуске с параметром STEAM_RUNTIME=0
.
Единственное предложенное решение - это копирование собственных 32-битных библиотек Steam libusb и libgudev в /usr/lib32:
# cp $HOME/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libgudev* /usr/lib32 # cp $HOME/.local/share/Steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu/libusb* /usr/lib32
Следует отметить, что данный способ необходимо применять в тех системах, где установлены lib32-libgudev и lib32-libusb
Кнопка закрытия только сворачивает окно
- Valve GitHub issue 1025
Чтобы окно Steam закрывалось (и убиралось из панели задач) при нажатии крестика, но сам Steam продолжал работать в трее, установите переменную окружения STEAM_FRAME_FORCE_CLOSE
в значение 1
. (См. Переменные окружения#Графические приложения). Это можно сделать, запустив Steam следующей командой:
$ STEAM_FRAME_FORCE_CLOSE=1 steam
Если вы запускаете Steam через .desktop файл, вы должны изменить строку с Exec
следующим образом:
Exec=sh -c 'STEAM_FRAME_FORCE_CLOSE=1 steam' %U.
Для использования данной переменной окружения при запуске Steam вы можете добавить export STEAM_FRAME_FORCE_CLOSE=1
в скрипт /usr/bin/steam
Flash не работает на 64-битных системах
- Статья на сайте поддержки Steam
Сначала убедитесь, что пакет lib32-flashplugin[ссылка недействительна: сохранено в aur-mirror] установлен. Теперь должно заработать. Если это не так, создайте папку локальной версии Flash плагина для Steam:
$ mkdir ~/.steam/bin32/plugins/
и создайте символьную ссылку на глобальный файл lib32 flash plugin в этой папке:
$ ln -s /usr/lib32/mozilla/plugins/libflashplayer.so ~/.steam/bin32/plugins/
Текст повреждён или не отображается
Инструкция для Windows от поддержки Steam также работает и на Linux.
Вы можете установить их пакетом steam-fontsAUR из AUR (Русский), или вручную, скачав и установив SteamFonts.zip.
SetLocale('en_US.UTF-8') не срабатывает при запуске игры
Раскомментируйте en_US.UTF-8 UTF-8
в файле /etc/locale.gen
, затем выполните locale-gen
от имени суперпользователя.
Игра вылетает немедленно после запуска
Если игра сразу же вылетает, попробуйте отключить: "Enable the Steam Overlay while in-game" в Properties игры.
OpenGL не использует прямой рендеринг
- Статья на сайте поддержки Steam
Возможно, вы не установили 32-битный графический драйвер. Узнайте из статьи Xorg какой пакет вам нужно установить.
Вы можете проверить/протестировать, установлен ли он правильно, установив lib32-mesa-demos и запустив следующую команду:
$ glxinfo32 | grep OpenGL.
Ошибка libGL при запуске некоторых игр
Если у вас возникает ошибка вида Failed to load libGL: undefined symbol: xcb_send_fd
, это может происходить из-за устаревших библиотек среды выполнения Steam. Удаление ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libxcb.so.1
заставит Steam загружать версии библиотек, установленных pacman'ом.
OpenGL не использует прямой рендеринг / Steam вешает Xorg
Steam распространяется со своими собственными версиями некоторых библиотек, и они иногда настолько устаревают, что не могут работать с системными библиотеками Arch Linux. Удаление библиотек, распространяющихся со Steam приведёт к тому, что Steam будет вынужден использовать новые версии из Arch Linux. Обсуждение на форуме.
rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6 rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu/libgcc_s.so.1 rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libgcc_s.so.1 rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libstdc++.so.6
Проблемы с 64-битными играми, таких как XCOM
Steam распространяется со своими собственными версиями некоторых библиотек, и они иногда настолько устаревают, что не могут работать с системными библиотеками Arch Linux. Удаление библиотек, распространяющихся со Steam приведёт к тому, что Steam будет вынужден использовать новые версии из Arch Linux. [1].
rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libgcc_s.so.1 rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libstdc++.so.6
Нет звука в некоторых играх
Если в некоторых играх нет звука, и инструкции из статьи Steam/Game-specific troubleshooting не решили проблему, то использование родной среды выполнения[broken link: invalid section] может дать положительный результат.
Missing libGL
You may encounter this error when you launch Steam at first time.
You are missing the following 32-bit libraries, and Steam may not run: libGL.so.1
Make sure you have installed the lib32
version of all your video drivers as described in Xorg#Driver installation.
If you get this error after reinstalling your Nvidia proprietary drivers, or switching from a version to another, reinstall lib32-nvidia-utils and lib32-nvidia-libgl[ссылка недействительна: replaced by lib32-nvidia-utils].
Игры не запускаются на старом оборудовании Intel
На старом оборудовании Intel, если игра при запуске немедленно вылетает, это может происходить из-за того, что оборудование не поддерживает последний OpenGL. Это проявляется как ошибка gameoverlayrenderer.so в /tmp/dumps/mobile_stdout.txt, но читая /tmp/gameoverlayrenderer.log вы видите ошибку GLXBadFBConfig.
Однако, это можно исправить, заставив игру использовать более позднюю версию OpenGL, чем она требует. Нажмите правой кнопкой мыши по игре, выберите Свойства. Затем нажмите "Установить параметры запуска" во вкладке "Основное" и вставьте следующее:
MESA_GL_VERSION_OVERRIDE=3.1 MESA_GLSL_VERSION_OVERRIDE=140 %command%
Это заставит игру использовать последнюю версию OpenGL.
Некоторые игры не запускаются
Некоторые игры не запускаются и выводят что-то вроде:
ERROR: ld.so: object '~/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
Это значит, что прилагающаяся libstdc++.so конфликтует с чем-то описанным здесь. Решением является установка переменной окружения STEAM_RUNTIME в значение 0 и выполнение следующей команды:
rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6