Steam (Русский)
Related articles
Из Wikipedia:
Steam — сервис цифрового распространения компьютерных игр и программ, принадлежащий компании Valve, известному разработчику компьютерных игр. Steam выполняет функции службы активации, загрузки через интернет, автоматических обновлений и новостей для игр как самой Valve, так и сторонних разработчиков по соглашению с Valve, таких как Epic Games, THQ, 2K Games, Activision, Capcom, Codemasters, Eidos Interactive, 1С, GSC Game World, id Software, SEGA, Atari, Rockstar Games, Telltale Games, Ubisoft, Bethesda Softworks и многих других фирм, оформивших контракт на дистрибьюцию.
Contents
- 1 Установка
- 2 Запуск Steam
-
3 Решение проблем
- 3.1 Кнопка закрытия только сворачивает окно
- 3.2 Flash не работает на 64-битных системах
- 3.3 Текст повреждён или не отображается
- 3.4 SetLocale('en_US.UTF-8') не срабатывает при запуске игры
- 3.5 Игра вылетает немедленно после запуска
- 3.6 OpenGL не использует прямой рендеринг
- 3.7 Ошибка libGL при запуске некоторых игр
- 3.8 OpenGL GLX context не использует прямой рендеринг, из-за чего происходят проблемы с производительностью или Steam вешает Xorg
- 3.9 Проблемы с 64-битными играми, таких как XCOM
- 3.10 Нет звука в некоторых играх
- 3.11 Ошибка "You are missing the following 32-bit libraries, and Steam may not run: libGL.so.1"
- 3.12 Игры не запускаются на старом оборудовании Intel
- 3.13 Некоторые игры не запускаются
- 4 Запуск игр с дополнительными параметрами, такими как Bumblebee/Primus
- 5 Using native runtime
- 6 Skins for Steam
- 7 Changing the Steam friends notification placement
- 8 Смотрите также
Установка
Steam можно установить с помощью пакета steam, доступного в официальных репозиториях. Если у вас 64-битная система, сначала включите репозиторий multilib.
Steam не сопровождается для этого дистрибутива. Поэтому пользователям придётся самим исправить некоторые недочёты в работе:
- Steam интенсивно использует шрифт Arial. Для замены шрифта Arial воспользуйтесьпакетом ttf-liberation или шрифтами, предоставленными Steam'ом. Чтобы корректно отображались азиатские языки, установите wqy-zenhei.
- Если у вас 64-битная система, вы должны установить 32-битную версию графического драйвера (пакет из столбца Multilib в таблице), чтобы запускать 32-битные игры.
- Если у вас 64-битная система, вам нужно установить lib32-alsa-plugins, чтобы работал звук в 32-битных играх.
- Некоторые игры имеют зависимости, которые не установлены в вашей системе. Если игра вылетает при запуске, (часто даже без сообщения об ошибке), тогда убедитесь, что вы установили все библиотеки, перечисленные в Steam/Game-specific troubleshooting.
Запуск Steam
Режим Big Picture (из Display Manager)
Чтобы запустить Steam в режиме Big Picture из менеджера дисплеев (таких как LightDM), создайте файл /usr/share/xsessions/steam-big-picture.desktop
со следующим содержимым:
/usr/share/xsessions/steam-big-picture.desktop
[Desktop Entry] Name=Steam Big Picture Mode Comment=Start Steam in Big Picture Mode Exec='/usr/bin/steam -bigpicture' TryExec='/usr/bin/steam -bigpicture' Icon= Type=Application
Также это можно сделать из Steam > Настройки > Интерфейс, отметьте галочкой 'Запускать Steam в режиме Big Picture' и запускайте Steam обычным образом. С некоторыми оконными менеджерами такой способ работает лучше, чем вариант с командной строкой.
Не показывать окно при запуске
Если при старте появляется главное окно Steam, вы можете добавить параметр -silent
к команде запуска, чтобы окно не отображалось:
/usr/bin/steam -silent %U
либо же вы можете отредактировать следующий .desktop файл, добавив этот параметр вручную:
~/.config/autostart/steam.desktop
[Desktop Entry] Name=Steam Comment=Application for managing and playing games on Steam Exec=/usr/bin/steam -silent %U Icon=steam Terminal=false Type=Application Categories=Network;FileTransfer;Game; MimeType=x-scheme-handler/steam; Actions=Store;Community;Library;Servers;Screenshots;News;Settings;BigPicture;Friends; ...
Решение проблем
Кнопка закрытия только сворачивает окно
- 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
Flash не работает на 64-битных системах
- Статья на сайте поддержки Steam
Сначала убедитесь, что пакет lib32-flashplugin установлен. Теперь должно заработать. Если это не так, создайте папку локальной версии 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 GLX context не использует прямой рендеринг, из-за чего происходят проблемы с производительностью или 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 не решили проблему, то использование родной среды выполнения может дать положительный результат.
Ошибка "You are missing the following 32-bit libraries, and Steam may not run: libGL.so.1"
У вас может возникнуть такая ошибка при первом запуска Steam. Убедитесь, что вы установили lib32-версии всех ваших графических драйверов. Например, если вы установили catalyst-utils-pxp[broken link: package not found], xf86-video-dri[broken link: package not found], intel-dri[broken link: replaced by mesa], mesa-libgl для AMD и Intel двойных карт, то вам следует установить lib32-catalyst-utils-pxp[broken link: package not found], lib32-intel-dri[broken link: replaced by lib32-mesa], lib32-mesa-libgl.
Игры не запускаются на старом оборудовании 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
Запуск игр с дополнительными параметрами, такими как Bumblebee/Primus
Steam может запускать игры, используя ваши собственные команды. Чтобы это сделать, перейдите в вашу Библиотеку игр, щёлкните правой кнопкой мыши по нужной игре, выбирете Свойства, Установить параметры запуска. Steam заменит тег %command%
на команду, на ту, которую он выполнит по факту. Например, чтобы запустить Team Fortress 2 с primusrun и разрешением 1920x1080, вы должны ввести:
primusrun %command% -w 1920 -h 1080
Если вы используете ядро Linux-ck, вы можете уменьшить задержки и увеличить производительность, запустив игру в SCHED_ISO (низкие задержки, избежание перегрузки CPU) с помощью schedtool
# schedtool -I -e %command% other arguments
Отключение отдельных композиторов при запуске игр
В дополнение к этому, используйте %command%
для того, чтобы убивать отдельные композиторы, (такие как Xcompmgr или Compton), из-за которых игра может глючить и тормозить на некоторых системах, и запускать их снова после выхода из игры, добавив в опции запуска игры следующее:
killall compton && %command%; nohup compton &
Замените compton
в приведённой выше команде на ваш композитор. Вы также можете добавить -options к %command%
или compton
.
Steam будет родительским процессом для любой команды, написанной после %command%
и ваш Steam статус будет отображаться как "в игре". Поэтому, в этом примере мы используем композитор через nohup
, таким образом он не будет привязан к процессу Steam (и будет продолжать работать после закрытия Steam), а завершение команды амперсандом сбросит ваш статус Steam.
Using native runtime
Steam, by default, ships with a copy of every library it uses, packaged within itself, so that games can launch without issue. This can be a resource hog, and the slightly out-of-date libraries they package may be missing important features (Notably, the OpenAL version they ship lacks HRTF and surround71 support). To use your own system libraries, you can run Steam with:
$ STEAM_RUNTIME=0 steam
However, if you're missing any libraries Steam makes use of, this will fail to launch properly. An easy way to find the missing libraries is to run the following commands:
$ cd ~/.local/share/Steam/ubuntu12_32 $ LD_LIBRARY_PATH=".:${LD_LIBRARY_PATH}" ldd $(file *|sed '/ELF/!d;s/:.*//g')|grep 'not found'|sort|uniq
Once you've done this, run steam again with STEAM_RUNTIME=0 steam
and verify it's not loading anything outside of the handful of steam support libraries:
$ cat /proc/$(pidof steam)/maps|sed '/\.local/!d;s/.* //g'|sort|uniq
One easy way to gather and install all of those libraries is a package in the AUR that's really way harder to find than it should be, called steam-native.
Skins for Steam
The Steam interface can be fully customized by copying its various interface files in its skins directory and modifying them.
An extensive list of skins can be found on Steam's forums.
Steam skin manager
The process of applying a skin to Steam can be greatly simplified using steam-skin-managerAUR from the AUR. The package also comes with a hacked version of the Steam launcher which allows the window manager to draw its borders on the Steam window.
As a result, skins for Steam will come in two flavors, one with and one without window buttons. The skin manager will prompt you whether you use the hacked version or not, and will automatically apply the theme corresponding to your GTK+ theme if it is found. You can of course still apply another skin if you want.
The package ships with two themes for the default Ubuntu themes, Ambiance and Radiance.
Changing the Steam friends notification placement
Use a skin
You can create a skin that does nothing but change the notification corner. To save yourself from creating these manually I have uploaded them to mediafire. You can download them here and then extract them into your home folder (make sure it is not extracted into a subdirectory, i.e. the .local folder in the zip needs to go into your home directory) after that you will have to open Steam, go to it's Settings, and enter the Interface tab. Then in the drop-down list where it says < default skin > you can select the desired skin and finally move that notification out of your way!
If you would like to manually create the files, here is how you can do it. First you need to create the directories:
mkdir -p $HOME/Top-Right/resource cp -R $HOME/.steam/steam/resource/styles $HOME/Top-Right/resource/ mv $HOME/Top-Right $HOME/.local/share/Steam/skins/ cd .local/share/Steam/skins/ cp -R Top-Right Top-Left && cp -R Top-Right Bottom-Right
Then with a text editor of your choosing open the file you wish to modify, the gameoverlay.style will change the corner for the in-game overlay whereas the steam.style will change it for your desktop. In this example I will use nano and the in-game overlay file.
nano Top-Right/resource/styles/gameoverlay.style
Now find the entry: Notifications.PanelPosition in whichever file you opened and change it to the appropriate value, for example for Top-Right:
Notifications.PanelPosition "TopRight"
This line will look the same in both files. Repeat the process for all the 3 variants (Top-Right, Top-Left and Bottom-Left) and adjust the corners for the desktop and in-game overlay to your satisfaction for each skin, then save the files.
To finish you will have to select the skin in Steam as explained above. You can use these files across distributions and even between Windows and Linux (OS X has it's own entry for the desktop notification placement)
On The fly patch
This method is more compatible with future updates of Steams since the files in the skins above are updated as part of steam and as such if the original files change, the skin will not follow the graphics update to steam and will have to be re-created every time something like that happens. Doing things this way will also give you the ability to use per-game notification locations as you can run a patch changing the location of the notifications by specifying it in the launch options for games.
Steam updates the files we need to edit everytime it updates (which is everytime it is launched) so the most effective way to do this is patching the file after Steam has already been launched.
First you will need this patch(pastebin ver). you can edit the entry and change it between "BottomRight"(default), "TopRight" "TopLeft" and "BottomLeft" but I will assume you used "TopRight" as in the original file. Save that file as $HOME/.steam/topright.patch.
Next create an alias in your $HOME/.bashrc
alias steam_topright='pushd $HOME/.steam/ && patch -p1 -f -r - --no-backup-if-mismatch < topright.patch && popd'
Log out and back in to refresh the aliases. Launch Steam and wait for it to fully load, then run the alias
$ steam_topright
And most games you launch after this will have their notification in the upper right corner.
You can also duplicate the patch and make more aliases for the other corners if you don't want all games to use the same corner so you can switch back.
To automate the process you will need a script file as steam launch options cannot read your aliases. The location and name of the file could for example be $HOME/.scripts/steam_topright.sh, and assuming that's the path you used, it needs to be executable:
$ chmod +755 $HOME/.scripts/steam_topright.sh
The contents of the file should be the following:
#!/bin/sh pushd $HOME/.steam/ && patch -p1 -f -r - --no-backup-if-mismatch < topright.patch && popd
And the launch options should be something like the following.
$HOME/.scripts/steam_topright.sh && %command%
There is another file in the same folder as gameoverlay.style folder called steam.style which has an entry with the exact same function as the file we patched and will change the notification corner for the desktop only (not in-game), but for editing this file to actually work it has to be set before steam is launched and the folder set to read-only so steam cannot re-write the file. Therefore the only two ways to modify that file is to make the directory read only so steam cannot change it when it is launched (can break updates) or making a skin like in method 1.