Steam (Русский)/Troubleshooting (Русский)
Введение
- Убедитесь, что вы выполнили все шаги из раздела Steam (Русский)#Установка.
- Если клиент Steam / игра не запускается и/или появляется сообщение об ошибке библиотеки, смотрите разделы #Steam runtime и #Отладка библиотек.
- Если проблема связана с сетью, убедитесь, что вы пробросили необходимые порты для Steam.
- Если проблема связана с конкретной игрой, поищите соответствующий раздел в статье Steam/Game-specific troubleshooting.
Связанные интернет-ресурсы
- Multimedia and Games / Arch Linux Forums
- ValveSoftware/steam-for-linux — Отслеживание проблем клиента Steam для Linux
- Сообщество Steam
- Часто задаваемые вопросы в Steam Support
Steam runtime
Steam для Linux поставляется с собственным набором библиотек, называемым Steam runtime. По умолчанию Steam запускает все приложения Steam в своей среде, которая находится по адресу ~/.steam/root/ubuntu12_32/steam-runtime/
.
Если вы будете использовать библиотеки из Steam runtime вместе с системными библиотеками, вы столкнётесь с проблемой несовместимости бинарных файлов, смотрите steam-for-linux issue #4768. Это может привести к проблемам с запуском клиента Steam и игр (что проявляется как крах, зависание или тихое завершение), проблемы со звуком и различные другие проблемы.
Пакет steam предлагает два способа запуска Steam:
steam-runtime
(псевдонимsteam
), который переопределяет библиотеки времени выполнения, известные как вызывающие проблемы, с помощью переменной окруженияLD_PRELOAD
(смотрите ld.so(8))./usr/lib/steam/steam
, стандартный скрипт запуска Steam
Поскольку библиотеки в Steam runtime более старые, в них могут отсутствовать новые возможности, например, в OpenAL-версии Steam runtime отсутствует поддержка HRTF и surround71.
Steam native runtime
Пакет steam-native-runtime зависит от более чем 130 пакетов и представляет собой нативную замену Steam runtime, однако для некоторых игр могут потребоваться дополнительные пакеты.
Пакет предоставляет скрипт steam-native
, который запускает Steam с переменной окружения STEAM_RUNTIME=0
, заставляя его игнорировать свой runtime и использовать только системные библиотеки.
Вы также можете использовать Steam native runtime без установки steam-native-runtime, установив вручную только те пакеты, которые вам нужны. Смотрите раздел #Поиск библиотек, которых не хватает в runtime.
Отладка библиотек
Чтобы увидеть разделяемые библиотеки, требуемые программой или разделяемой библиотекой, выполните команду ldd
, смотрите ldd(1). Переменные окружения LD_LIBRARY_PATH
и LD_PRELOAD
могут изменять то, какие разделяемые библиотеки загружаются, смотрите ld.so(8). Поэтому для корректной отладки программы или разделяемой библиотеки важно, чтобы эти переменные окружения в вашей среде отладки соответствовали окружению, которое вы хотите отлаживать.
Если вы обнаружили недостающую библиотеку, вы можете использовать pacman или pkgfile, чтобы найти пакеты, в которых есть нужная библиотека.
Поиск библиотек, которых не хватает игре
Если игра не запускается, возможная причина — отсутствие необходимых библиотек. Вы можете узнать, какие библиотеки она запрашивает, запустив ldd исполняемый_файл_игры
. исполняемый_файл_игры
, скорее всего, находится где-то в ~/.steam/root/steamapps/common/
. Обратите внимание, что большинство из этих «недостающих» библиотек на самом деле входят в состав Steam и их не нужно устанавливать глобально.
Поиск библиотек, которых не хватает в runtime
Если отдельные игры или сам Steam не запускаются при использовании steam-native
— возможно, не хватает библиотек. Чтобы найти необходимые библиотеки, выполните:
$ cd ~/.steam/root/ubuntu12_32 $ file * | grep ELF | cut -d: -f1 | LD_LIBRARY_PATH=. xargs ldd | grep 'not found' | sort | uniq
В качестве альтернативы запустите Steam через steam-runtime
и используйте следующую команду, чтобы посмотреть, какие несистемные библиотеки использует Steam (не все из них являются частью Steam runtime):
$ for i in $(pgrep steam); do sed '/\.local/!d;s/.* //g' /proc/$i/maps; done | sort | uniq
Отладка Steam
Программа запуска Steam перенаправляет свои stdout и stderr в /tmp/dumps/USER_stdout.txt
. Это означает, что вам не нужно запускать Steam из командной строки, чтобы увидеть этот вывод.
Можно отлаживать Steam, чтобы получить больше информации, которая может быть полезна для выяснения причин, почему что-то не работает.
В переменную окружения DEBUGGER
можно установить одно из значений gdb
, cgdb
, valgrind
, callgrind
, strace
, а затем запустить steam
.
Например, с gdb:
$ DEBUGGER=gdb steam
откроется gdb
, затем введите run
, который запустит steam
, и когда произойдет сбой, вы можете ввести backtrace
, чтобы увидеть стек вызовов.
Проблемы runtime
'GLBCXX_3.X.XX' не найден при использовании Bumblebee
Эта ошибка, скорее всего, вызвана тем, что Steam использует свой собственный устаревший пакет libstdc++.so.6
. Смотрите раздел #Поиск библиотек, которых не хватает в runtime о том, как обойти плохую библиотеку. Смотрите также steam-for-linux issue 3773.
Steam>Warning: failed to init SDL thread priority manager: SDL not found
Решение: установить пакет lib32-sdl2.
Игра сразу падает
Скорее всего, это связано с проблемами #Steam runtime; смотрите раздел #Отладка библиотек.
Возможно, поможет отключение внутриигрового оверлея Steam в свойствах игры.
И наконец, если эти способы не помогают, проверьте вывод Steam на наличие ошибок в игре. Вы можете столкнуться со следующим:
munmap_chunk(): invalid pointer
free(): invalid pointer
.
В этих случаях попробуйте заменить файл libsteam_api.so
в проблемной игре на файл из рабочей игры. Эта ошибка обычно возникает в играх, которые давно не обновлялись, если Steam runtime не используется. Эта ошибка встречалась в играх AYIM, Bastion и Monaco.
Игра и Steam падают после запуска игры
Если выводится следующая ошибка:
failed to dlopen engine.so error=/home/GAMEPATH/bin/libgcc_s.so.1: version `GCC_7.0.0' not found (required by /usr/lib32/libopenal.so.1)
перемещение несовместимой библиотеки может быть обходным решением.
mv .local/share/Steam/steamapps/common/GAME/bin/libgcc_s.so.1 .local/share/Steam/steamapps/common/GAME/bin/libgcc_s.so.1.b
Version `CURL_OPENSSL_3` not found
Это происходит потому, что curl сам по себе не совместим с предыдущими версиями. Вам необходимо установить библиотеки совместимости:
Может появиться одно из следующих сообщений:
# Nuclear Throne ./nuclearthrone: /usr/lib32/libcurl.so.4: version `CURL_OPENSSL_3' not found (required by ./nuclearthrone) # Devil Daggers ./devildaggers: /usr/lib/libcurl.so.4: version `CURL_OPENSSL_3' not found (required by ./devildaggers)
Установите libcurl-compat или lib32-libcurl-compat и вручную создайте символическую ссылку на библиотеку совместимости:
# Nuclear Throne $ ln -s /usr/lib32/libcurl-compat.so.4.4.0 "LIBRARY/steamapps/common/Nuclear Throne/lib/libcurl.so.4" # Devil Daggers $ ln -s /usr/lib/libcurl-compat.so.4.4.0 LIBRARY/steamapps/common/devildaggers/lib64/libcurl.so.4
Библиотека игр Steam не отображается в native runtime (чёрный экран)
После обновления Steam Friends UI клиентский webview не работает корректно в native runtime.
./steamwebhelper: error while loading shared libraries: libpcre.so.3: cannot open shared object file: No such file or directory
Это можно решить, предварительно загрузив библиотеки glib; они не требуют libpcre и selinux для работы.
$ LD_PRELOAD="/usr/lib/libgio-2.0.so.0 /usr/lib/libglib-2.0.so.0" steam-native
В качестве альтернативы вы можете создать символическую ссылку на родную библиотеку Arch libpcre.
# ln -s /usr/lib/libpcre.so /usr/lib64/libpcre.so.3
После обновления от 3/3/2022 есть сообщения о том, что эти обходные пути не помогают.
Обходное решение — запустить Steam с опцией -no-cef-sandbox
. Более подробную информацию можно найти в steam-for-linux issue #8451 и steam-for-linux issue #8420.
Steam: An X Error occurred
При использовании видеокарты NVidia и проприетарных драйверов Steam может не запуститься и (при запуске из терминала) выдать ошибку вида:
Steam: An X Error occurred X Error of failed request: GLXBadContext Major opcode of failed request: 151 Serial number of failed request: 51 xerror_handler: X failed, continuing
Установите пакет lib32-nvidia-utils (или lib32-nvidia-390xx-utilsAUR, если используется старая видеокарта).
Если пакет lib32-nvidia-utils уже установлен, убедитесь, что версия этого пакета соответствует версии пакета nvidia с помощью команды
# pacman -Qs nvidia
Если версии не совпадают — возможно, придётся изменить зеркала, которые вы используете для установки драйверов.
Если вы используете AMD, включили 10-битную глубину цвета и столкнулись с этой проблемой — скорее всего, придётся отключить 10-битную глубину цвета.
Другая проблема, вызывающая это сообщение об ошибке, может быть решена удалением файла config.vdf:
$ rm ~/.local/share/Steam/config/config.vdf
Steam: Не удалось настроить инструмент совместимости
Если вы пытаетесь запустить нативную игру с помощью Proton, но сразу после запуска игры получаете ошибку Steam compatibility tool, возможно, вам придётся переустановить среду выполнения.
- Перейдите в библиотеку Steam.
- В выпадающем списке над списком игр отметьте опцию Инструменты, чтобы сделать их видимыми.
- Найдите Proton, щёлкните правой кнопкой мыши на каждом установленном инструменте, выберите Свойства, откройте вкладку Локальные файлы и выберите Проверить целостность файлов инструмента на каждой установленной версии Proton.
- Найдите Steam Linux Runtime и повторите ту же процедуру. Если таковых нет, установите последнюю версию Steam Linux Runtime - Soldier.
Игра запускается, но сразу же закрывается при использовании нестандартного ядра
Убедитесь, что вы включили User namespaces в разделе General setup -> Namespaces support.
Проблемы со звуком
Если приведённые ниже разделы не помогают решить проблему, возможно, поможет использование #Steam native runtime.
Настройка PulseAudio
Игры, которые явно зависят от ALSA, могут нарушить работу PulseAudio. Следуйте указаниям, описанным в разделе PulseAudio (Русский)#ALSA, чтобы заставить эти игры использовать PulseAudio.
Нет звука или ошибка сегментирования 756
Если ещё не выполнена #Настройка PulseAudio — выполните её и посмотрите, решит ли это проблему. Если у вас нет звука в видео, которое воспроизводится в клиенте Steam, возможно, не работают библиотеки ALSA, поставляемые со Steam.
Попытка воспроизвести видео в клиенте Steam приводит к ошибке, подобной следующей:
ALSA lib pcm_dmix.c:1018:(snd_pcm_dmix_open) unable to open slave
Обходным решением является переименование или удаление папки alsa-lib
и файлов libasound.so.*
. Их можно найти здесь:
~/.steam/steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/
Альтернативным обходным решением является добавление библиотеки libasound.so.*
в переменную окружения LD_PRELOAD
:
$ LD_PRELOAD='/usr/$LIB/libasound.so.2 '${LD_PRELOAD} steam
Если звука всё равно нет, может помочь добавление библиотек PulseAudio в LD_PRELOAD
:
$ LD_PRELOAD='/usr/$LIB/libpulse.so.0 /usr/$LIB/libpulse-simple.so.0 '${LD_PRELOAD} steam
Имейте в виду, что их имена могут измениться со временем. Если это так, то загляните в
~/.steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu
и найдите новые библиотеки и их версии.
Сообщения об ошибках на GitHub: #3376 и #3504
Звуковой движок FMOD
Пакет промежуточного звукового ПО FMOD немного глючит, и в результате игры, использующие его, могут иметь проблемы со звуком.
Обычно это происходит, когда неиспользуемое звуковое устройство используется по умолчанию для ALSA. Смотрите Advanced Linux Sound Architecture#Set the default sound card.
- Затронутые игры: Hotline Miami, Hotline Miami 2, Transistor.
PulseAudio и OpenAL: не получается переместить аудиопоток на другое устройство
Если вы используете PulseAudio и не можете переместить аудиопоток на другое устройство, это может быть связано с тем, что последние версии OpenAL по умолчанию запрещают перемещение аудиопотоков. Попробуйте добавить следующее в файл ~/.alsoftrc
:
[pulse] allow-moves=true
Проблемы клиента Steam
Невозможно просмотреть файловую систему для добавления папки библиотеки или папка библиотеки отображается как пустая
Если при попытке добавить папку библиотеки в окне выбора файлов пусто, или если ранее установленная папка теперь отображается с 0 установленных игр, это может быть результатом неправильной временной метки в корневом каталоге или в папке библиотеки. Временные метки можно проверить с помощью stat:
$ stat путь
Если временная метка находится в будущем, выполните команду
$ touch путь
чтобы сбросить её на текущую дату, а затем перезапустите Steam.
Невозможно добавить папку библиотеки из-за отсутствия прав на исполнение
Если вы добавляете ещё одну папку библиотеки Steam, находящуюся на другом диске, может появиться сообщение об ошибке:
Файловая система, используемая для новой папки библиотеки Steam, должна быть смонтирована с правами на исполнение
Убедитесь, что вы монтируете файловую систему с правильными флагами в /etc/fstab
, по необходимости добавив exec
в список параметров монтирования. Этот параметр должен быть после любого параметра user
или users
, поскольку они могут подразумевать noexec
.
Эта ошибка также может возникнуть, если папка библиотеки не содержит каталога steamapps
. В предыдущих версиях вместо этого использовался SteamApps
, поэтому убедитесь, что имя полностью записано в нижнем регистре.
Эта ошибка также может возникать из-за проблем со Steam runtime и может быть исправлена как описано в разделе #Поиск библиотек, которых не хватает в runtime или из-за отсутствия свободного места на устройстве. Для отладки может быть полезно запустить Steam в консоли и посмотреть вывод.
Необычно низкая скорость загрузки
Если скорость загрузки в Steam (игр, программ...) через клиент необычно низкая, но при этом просмотр магазина Steam и потоковое видео работают нормально, может помочь установка программы кэширования DNS, например dnsmasq [1].
Ещё одним способом, который может помочь, может быть отключение IPv6. Смотрите [2] для более подробной информации.
Ошибка "Needs to be online"
Если лаунчер Steam отказывается запускаться с ошибкой «Fatal Error: Steam needs to be online to update», хотя интернет на самом деле работает, то, возможно, возникли проблемы с разрешением доменных имён.
Попробуйте установить lib32-systemd, lib32-libcurl-compat, nss-mdns, lib32-nss, lib32-glu или lib32-dbus.
Это также может быть просто некорректная работа разрешения DNS, которая не всегда очевидна, поскольку современные браузеры используют свои собственные DNS-серверы. Смотрите статью Разрешение доменных имён.
Steam может иметь проблемы, если для разрешения используется systemd-resolved. Убедитесь, что установлен пакет lib32-systemd.
Если разрешение DNS работает, но лаунчер Steam по-прежнему показывает то же сообщение об ошибке, можно попробовать включить кэширование DNS, например, с помощью «Name Service Caching Daemon» (nscd.service
).
Однако неясно, почему запуск nscd
решает проблему. Подробнее на странице обсуждения.
Steam забывает пароль
- Связанное сообщение об ошибке: steam-for-linux#5030.
Steam для Linux имеет ошибку, из-за которой он забывает пароль некоторых пользователей.
В качестве обходного пути, после входа в Steam, выполните команду
# chattr +i ~/.steam/registry.vdf
Это установит бит неизменяемости файла, так что Steam не сможет изменить, удалить или переименовать его, а значит больше не сможет забыть ваш аккаунт.
Отключение сохранения дампов памяти
Каждый раз, когда Steam падает, он записывает дамп памяти в /tmp/dumps/
. Если Steam застревает в цикле падений, файлы дампов могут начать занимать много места. Если /tmp
монтируется как tmpfs, может начаться излишнее потребление памяти и подкачки.
Чтобы предотвратить это, сделайте символическую ссылку /tmp/dumps
, ведущую на /dev/null
:
# ln -s /dev/null /tmp/dumps
Или, в качестве альтернативы, создайте и измените разрешения на /tmp/dumps
. Тогда Steam не сможет записывать файлы дампов в этот каталог.
# mkdir /tmp/dumps # chmod 600 /tmp/dumps
Это также имеет дополнительное преимущество: Steam не будет загружать эти дампы на серверы Valve.
Проблема с лицензией Steam при воспроизведении видео
Steam использует Google Widevine DRM для некоторых видео. Если он не установлен, вы получите следующую ошибку:
This video requires a license to play which cannot be retrieved. This may be a temporary network condition. Please restart the video to try again.
Для решения этой проблемы следуйте рекомендациям на странице поддержки Потоковое видео в Steam.
Нет контекстного меню для приглашения друзей
После обновления Steam Friends UI в меню правой кнопки мыши могут отсутствовать пункты «Присоединиться к игре», «Пригласить в игру» и «Посмотреть информацию об игре».
Чтобы исправить это, возможно, потребуется установить lsof.
Медленный и неотзывчивый интерфейс
Если интерфейс Steam работает медленно, возможно, вам поможет отключение опции Рендеринг веб-страниц с помощью видеокарты на вкладке Интерфейс в настройках Steam.
Список друзей также может вызывать эту проблему. На странице https://github.com/ValveSoftware/steam-for-linux/issues/7245 упоминаются два способа обойти проблемы:
- Перемещение списка друзей на другой монитор [3].
- Отключение анимированных аватаров. Откройте настройки списка друзей (нажмите на шестерёнку в правом верхнем углу списка) и на вкладке Список друзей отключите пункт Включить анимированные аватары и анимированные рамки аватаров для списка друзей и чата [4].
Не удаётся корректно запустить Steam
Попробуйте выполнить:
$ steam-runtime --reset
Это может устранить различные проблемы, возникающие при сломанной установке.
Отсутствует меню в панели задач
Если при нажатии на значок Steam в панели задач не появляется меню, возможно, необходимо установить пакеты libappindicator-gtk2 и lib32-libappindicator-gtk2 и перезапустить Steam.
Ошибка "Ваш браузер не поддерживает минимальный набор функций, необходимых для просмотра этой трансляции"
- Связанное сообщение об ошибке: steam-for-linux issue 6780.
Если при попытке просмотра потока/трансляции вы получаете ошибку «Ваш браузер не поддерживает минимальный набор функций, необходимых для просмотра этой трансляции», попробуйте выполнить следующие два шага:
- Перейдите в Сообщество -> Трансляции. Если на странице появится сообщение «Обновление Steam», подождите несколько минут, чтобы увидеть, завершится ли процесс, и отмените его через некоторое время, если он не завершится. Теперь проверьте, можете ли вы смотреть трансляции, например, нажав на одну из тех, что отображаются в разделе Сообщество -> Трансляции.
- Запустите трансляцию в режиме Big Picture (Вид -> Режим Big Picture). Если трансляция нормально запускается в режиме Big Picture, проверьте, работает ли она после переключения обратно в основной интерфейс.
Использование системных рамок и заголовка окна
В настоящее время Steam пытается сам управлять своими окнами, но делает это некорректно, смотрите steam-for-linux#1040. В качестве обходного пути вы можете использовать проект steamwm. Запустите steam следующим образом: ./steamwm.cpp steam
. Также проект предоставляет скин, который убирает неестественные кнопки управления и рамки, но оставляет стандартные декорации скина.
Проблемы со Steam Remote Play
Смотрите Steam (Русский)#Steam Remote Play.
Remote Play не работает с хоста Arch Linux на гостя Arch Linux
Возможно, отсутствует lib32-libcanberra. Как только вы установите его, всё должно заработать.
После этого Steam больше не будет падать при попытке запустить игру через Remote Play.
Аппаратное декодирование недоступно
Аппаратное декодирование Remote Play использует vaapi
, но steam требует libva2_32bit
, в то время как Arch по умолчанию использует 64bit.
Базовый набор — libva и lib32-libva. Пользователям графики Intel также потребуются libva-intel-driver и lib32-libva-intel-driver.
Для получения дополнительной информации о vaapi смотрите статью Аппаратное ускорение видео.
Также может потребоваться удалить версию libva, которую предоставляет Steam runtime, чтобы заставить использовать системные библиотеки. Текущую используемую библиотеку можно найти с помощью команды:
$ pgrep steam | xargs -I {} cat /proc/{}/maps | grep libva
Если используемая библиотека находится в ~/.local/Share/steam
, значит Steam всё ещё использует свою версию libva. Удалите файлы библиотеки libva в ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libva*
, чтобы Steam стал использовать системные библиотеки.
Режим Big Picture сворачивает себя после потери фокуса
Это может произойти, если вы играете в игру через Remote Play или если у вас многомониторная установка и вы выводите мышь за пределы окна Big Picture. Чтобы предотвратить это, установите переменную окружения SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS=0
и перезапустите Steam.
Смотрите также steam-for-linux issue 4769.
Другие проблемы
Библиотека Steam в разделе NTFS
Если ваша библиотека Steam находится в разделе NTFS, то вполне вероятно, что игры, находящиеся там, не могут запуститься.
Проблема в том, что Wine использует двоеточие в своём каталоге $WINEPREFIX/dosdevices
, а NTFS, похоже, не поддерживает это.
Решение проблемы: переместите каталоги steamapps/common/Proton x.y
и steamapps/compatdata
на диск без NTFS, затем создайте символическую ссылку в их исходных местах.
$ mv SteamLibrary/steamapps/common/Proton\ x.y /home/user/dir/ $ mv SteamLibrary/steamapps/compatdata /home/user/dir/ $ ln -s /home/user/dir/Proton\ x.y/ SteamLibrary/steamapps/common/Proton\ x.y $ ln -s /home/user/dir/compatdata/ SteamLibrary/steamapps/compatdata
Wrong ELF class
Если в консольном выводе Steam вы увидите следующее сообщение
ERROR: ld.so: object '~/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
можно это игнорировать. На самом деле это не является ошибкой: Steam включает как 64-, так и 32-битные версии некоторых библиотек, и только одна версия будет успешно загружена. Эта «ошибка» отображается даже тогда, когда Steam (и внутриигровой оверлей) работает идеально.
Настройка нескольких мониторов
Наличие нескольких мониторов может помешать запуску игр. Попробуйте отключить все дополнительные мониторы, а затем запустите игру. Вы сможете включить их после успешного запуска игры.
Также вы можете попробовать запустить Steam с установленной переменной окружения:
$ export LD_LIBRARY_PATH=/usr/lib32/nvidia:/usr/lib/nvidia:$LD_LIBRARY_PATH
Текст повреждён или отсутствует
Попробуйте установить lib32-fontconfig, ttf-liberation и wqy-zenhei (для азиатских символов), затем перезапустите Steam и посмотрите, решилась ли проблема.
$ fc-match -v Arial
SetLocale('en_US.UTF-8') не срабатывает при запуске игры или ввод не-ASCII символов не работает в клиенте Steam
Сгенерируйте локаль en_US.UTF-8 UTF-8
. Смотрите Локали#Генерирование локалей.
Missing libc
Это может быть связано с повреждением исполняемого файла Steam. Проверьте вывод:
$ ldd ~/.local/share/Steam/ubuntu12_32/steam
Если ldd
утверждает, что это не динамический исполняемый файл, то Steam, скорее всего, повредил двоичный файл во время обновления. Следующие действия должны устранить проблему:
$ cd ~/.local/share/Steam/ $ ./steam.sh --reset
Если это не помогло, попробуйте удалить каталог ~/.local/share/Steam/
и запустите Steam снова, попросив его переустановить себя.
Это также может возникнуть из-за ошибки в Steam, которая возникает, когда каталог $HOME
заканчивается на слеш (Valve GitHub issue 3730). Это можно исправить, отредактировав /etc/passwd
и изменив /home/пользователь/
на /home/пользователь
. После этого перелогиньтесь и запустите Steam, и он должен будет успешно починить себя.
Игры не запускаются на старом оборудовании Intel
На старом оборудовании Intel, не поддерживающем OpenGL 3, таком как чипы Intel GMA или процессоры Westmere, игры могут сразу же аварийно завершаться при запуске. Это проявляется как ошибка gameoverlayrenderer.so
в /tmp/dumps/mobile_stdout.txt
, но в файле /tmp/gameoverlayrenderer.log
видна ошибка GLXBadFBConfig.
Это можно исправить, заставив игру использовать более позднюю версию OpenGL, чем она хочет. Добавьте MESA_GL_VERSION_OVERRIDE=3.1 MESA_GLSL_VERSION_OVERRIDE=140
в её параметры запуска.
Mesa: Игра не запускается, жалуясь на версию OpenGL, поддерживаемую картой
Некоторые игры неправильно используют OpenGL выше 3.0. В Mesa приложение должно запросить определённый core profile. Если оно не делает такого запроса, доступны только OpenGL 3.0 и ниже.
Это можно исправить, заставив игру использовать ту версию OpenGL, которая ей действительно нужна. Добавьте MESA_GL_VERSION_OVERRIDE=4.1 MESA_GLSL_VERSION_OVERRIDE=410
в её параметры запуска.
Игры 2K не запускаются на разделах XFS
Если вы запускаете игры, изданные 2K, такие как Civilization 5, на разделах XFS, то игра может не запускаться или работать неправильно из-за того, как игра загружает файлы при запуске. [5]
Контроллер Steam не определяется корректно
Смотрите Gamepad#Steam Controller.
Контроллер Steam приводит к падению игры
Смотрите Gamepad#Steam Controller makes a game crash or not recognized.
Steam зависает на "Installing breakpad exception handler..."
Если у вас графический процессор Nvidia и Steam выдаёт следующее сообщение:
Running Steam on arch rolling 64-bit STEAM_RUNTIME is enabled automatically Installing breakpad exception handler for appid(steam)/version(0_client)
и после этого больше ничего не происходит, убедитесь, что у вас установлены правильные драйверы, а также их 32-битные версии (64-битный и 32-битный варианты должны иметь одинаковые версии): смотрите NVIDIA (Русский)#Установка.
Завершение автономных композиторов при запуске игр
С помощью подстановки %command%
в параметрах запуска можно завершить автономные композиторы (такие как Xcompmgr или picom), использование которого может вызывать лаги и разрывы в некоторых играх на некоторых системах, и запустить их снова после завершения игры.
killall композитор && %command%; nohup композитор &
Конечно, вы также можете добавлять свои опции к %command%
или композитор
.
Steam будет следить за всеми процессами, запущенными после %command%
, из-за чего он будет считать, что вы находитесь в игре. Поэтому в этом примере мы запускаем композитор через nohup
, чтобы не был привязан к Steam (он будет продолжать работать, если вы закроете Steam), а после него ставим амперсанд, чтобы эта команда запуска не дожидалась завершения работы процесса и завершила свою работу, тем самым оповестив Steam о закрытии игры.
Если ваш композитор поддерживает запуск в режиме демона, то можно использовать это. Например, picom(1) имеет опцию --daemon
/ -b
для запуска в фоне:
killall picom && %command%; picom -b
Symbol lookup error при использовании DRI3
Steam выдаёт эту ошибку и завершает работу.
symbol lookup error: /usr/lib/libxcb-dri3.so.0: undefined symbol: xcb_send_request_with_fds
Чтобы обойти эту проблему, запустите Steam с переменной окружения LIBGL_DRI3_DISABLE=1
, отключив DRI3 для Steam.
Запуск игр на ноутбуках Nvidia optimus
Чтобы иметь возможность играть в игры, требующие использования видеокарты Nvidia (например, Hitman 2016) на ноутбуке с поддержкой optimus, нужно запускать игру с префиксом primusrun в параметрах запуска. В противном случае игра не будет работать.
Щёлкните правой кнопкой мыши игру в библиотеке Steam и выберите Свойства > Общие > Параметры запуска. Измените параметры на
primusrun %command%
Раньше запуск всего Steam через primusrun работал. Однако Steam изменил поведение, и теперь запуск Steam с primusrun не влияет на запуск игр. В результате вам нужно установить параметры запуска для каждой игры отдельно (и вам НЕ нужно запускать сам Steam через primusrun).
Для primusrun по умолчанию включена вертикальная синхронизация, что может привести к ощутимому инпут-лагу, немного снизить производительность и привязать частоту кадров игры к частоте обновления монитора. Для отключения вертикальной синхронизации в primusrun значение опции vblank_mode по умолчанию должно быть переопределено переменной окружения.
vblank_mode=0 primusrun %command%
То же самое с optirun, который использует primus в качестве моста.
vblank_mode=0 optirun -b primus %command%
Если это не сработало, попробуйте:
LD_PRELOAD="libpthread.so.0 libGL.so.1" __GL_THREADED_OPTIMIZATIONS=1 optirun %command%
Смотрите Bumblebee#Primusrun mouse delay (disable VSYNC) для более подробной информации.
HiDPI
Поддержка HiDPI должна работать из коробки, хотя на некоторых системах может понадобиться установить переменную окружения GDK_SCALE=
, чтобы задать нужный коэффициент масштабирования.
Поддержка протоколов в KDE Plasma
Если вы получаете ошибку после запуска игры через веб-браузер (или открытия ссылки через xdg-open)
Error — KIOExec File not found: steam://run/440
Перейдите в Параметры системы -> Приложения -> Привязки файлов, добавьте новую, выберите группу inode
и назовите её vnd.kde.service.steam
, затем в разделе Приоритет приложений добавьте Steam. Примените изменения, и после этого всё должно работать.
Игра падает при использовании Steam Linux Runtime - Soldier
Начиная с Proton 5.13, Steam по умолчанию использует Steam Linux Runtime - Soldier. Некоторые игры падают при его использовании.
Чтобы обойти это, вы можете:
- Вручную собрать Proton без Steam Runtime.
- Заменить скрипт точки входа в Soldier:
~/.steam/steam/steamapps/common/SteamLinuxRuntime_soldier/_v2-entry-point
#!/bin/bash shift 2 exec "${@}"
Игры, запущенные с Proton 5.13+, не имеют подключения к интернету
Если вы используете systemd-resolved для разрешения доменных имён, убедитесь, что вы создали символическую ссылку resolv.conf
, как описано в разделе systemd-resolved (Русский)#DNS.
Файл должен содержать что-то подобное:
/etc/resolv.conf
# This is /run/systemd/resolve/stub-resolv.conf managed by man:systemd-resolved(8). # Do not edit.
"could not determine 32/64 bit of java"
Забытая установка пакета linux-steam-integrationAUR вызвала это, по крайней мере, в одной игре. Раньше были конфликты между версиями некоторых библиотек из системы и из Steam runtime, и этот пакет помог разрешить некоторые из них. Неясно, помогает ли он до сих пор, но его удаление устранило описанное выше сообщение об ошибке в Project Zomboid. Решение было найдено, когда было замечено, что выполнение команды projectzomboid.sh
из командной строки работает, но изменение параметров запуска на sh -xc 'echo %command%; declare -p'
показало, что Steam пытается выполнить точно такую же команду, но в preload и path вставлено множество библиотек с префиксом lsi-
.
Дёргания в Vulkan
Если вы заметили постоянное сильное дёргание каждые 1-2 секунды, возможно, в настройках вертикальной синхронизации есть конфликты. Ручная настройка vsync в параметрах, возможно, исправит ситуацию.
Зайдите в свойства игры и настройте параметры запуска:
DXVK_FRAME_RATE=60 %command%
Принудительное использование Wine Direct3D в Proton
В некоторых случаях игра может не работать с DXVK, который используется по умолчанию. Можно попробовать принудительно запустить приложение с Direct3D, установив параметры запуска:
PROTON_USE_WINED3D=1 %command%