2016-02-16

добавление обновлённого английского текста с заголовка 6 Using native runtime

New page

[[Category:Gaming (Русский)]]

[[Category:Русский]]

[[en:Steam]]

[[ja:Steam]]

[[zh-CN:Steam]]

{{Related articles start}}

{{Related|Steam/Wine}}

{{Related|Steam/Game-specific troubleshooting}}

{{Related articles end}}

{{Unmaintained (Русский)}}

{{Translateme (Русский)|Статья скопирована из английской версии и нуждается в переводе}}

Из [[Wikipedia:Steam (software)|Wikipedia]]:

:''

[http://store.steampowered.com/about/ 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 и многих других фирм, оформивших контракт на дистрибьюцию.''

== Установка ==

{{Note (Русский)|

* Arch Linux '''не''' имеет [https://support.steampowered.com/kb_article.php?ref=1504-QHXN-8366 официальной поддержки].

* Поскольку клиент Steam является 32-битным приложением, вам необходимо включить [[multilib (Русский)|multilib]] репозиторий, если у вас 64-битная система. Также может понадобиться установить {{Grp|multilib-devel}}, чтобы предоставить некоторые важные multilib библиотеки.

}}

Steam можно установить с помощью пакета {{Pkg|steam}}, доступного в [[official repositories (Русский)|официальных репозиториях]]. Если у вас 64-битная система, сначала включите репозиторий [[multilib (Русский)|multilib]].

Steam не сопровождается для этого дистрибутива. Поэтому пользователям придётся самим исправить некоторые недочёты в работе:

*Steam интенсивно использует шрифт Arial. Для замены шрифта Arial воспользуйтесьпакетом {{Pkg|ttf-liberation}} или [[#Текст повреждён или не отображается|шрифтами, предоставленными Steam'ом]]. Чтобы корректно отображались азиатские языки, установите {{Pkg|wqy-zenhei}}.

*Если у вас 64-битная система, вы должны установить [[Xorg (Русский)#Установка| 32-битную версию графического драйвера]] (пакет из столбца ''Multilib'' в таблице), чтобы запускать 32-битные игры.

*Если у вас 64-битная система, вам нужно установить {{pkg|lib32-alsa-plugins}}, чтобы работал звук в 32-битных играх.

*Некоторые игры имеют зависимости, которые не установлены в вашей системе. Если игра вылетает при запуске, (часто даже без сообщения об ошибке), тогда убедитесь, что вы установили все библиотеки, перечисленные в [[Steam/Game-specific troubleshooting]].

== Запуск Steam ==

=== Режим Big Picture (из Display Manager) ===

Чтобы запустить Steam в режиме Big Picture из менеджера дисплеев (таких как LightDM), создайте файл {{ic|/usr/share/xsessions/steam-big-picture.desktop}} со следующим содержимым:

{{hc|/usr/share/xsessions/steam-big-picture.desktop|<nowiki>

[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</nowiki>}}

Также это можно сделать из Steam > Настройки > Интерфейс, отметьте галочкой 'Запускать Steam в режиме Big Picture' и запускайте Steam обычным образом. С некоторыми оконными менеджерами такой способ работает лучше, чем вариант с командной строкой.

=== Не показывать окно при запуске ===

Если при старте появляется главное окно Steam, вы можете добавить параметр {{ic|-silent}} к команде запуска, чтобы окно не отображалось:

/usr/bin/steam -silent %U

либо же вы можете отредактировать следующий .desktop файл, добавив этот параметр вручную:

{{hc|~/.config/autostart/steam.desktop|<nowiki>

[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;

...</nowiki>}}

== Решение проблем ==

{{Note (Русский)|В дополнение к описанию здесь, любой баг/исправление/ошибка должны быть (если ещё не) сообщены в баг-трекер компании Valve на их [https://github.com/ValveSoftware/steam-for-linux странице GitHub].}}

=== Кнопка закрытия только сворачивает окно ===

: Valve GitHub [https://github.com/ValveSoftware/steam-for-linux/issues/1025 issue 1025]

Чтобы окно Steam закрывалось (и убиралось из панели задач) при нажатии '''крестика''', но сам Steam продолжал работать в трее, установите переменную окружения {{ic|STEAM_FRAME_FORCE_CLOSE}} в значение {{ic|1}}. Это можно сделать, запустив Steam следующей командой:

$ STEAM_FRAME_FORCE_CLOSE=1 steam

Если вы запускаете Steam через .desktop файл, вы должны изменить строку с {{ic|Exec}} следующим образом:

Exec=sh -c 'STEAM_FRAME_FORCE_CLOSE=1 steam' %U

=== Flash не работает на 64-битных системах ===

: [https://support.steampowered.com/kb_article.php?ref=1493-GHZB-7612 Статья] на сайте поддержки Steam

Сначала убедитесь, что пакет {{Pkg|lib32-flashplugin}} установлен. Теперь должно заработать. Если это не так, создайте папку локальной версии Flash плагина для Steam:

$ mkdir ~/.steam/bin32/plugins/

и создайте символьную ссылку на глобальный файл lib32 flash plugin в этой папке:

$ ln -s /usr/lib32/mozilla/plugins/libflashplayer.so ~/.steam/bin32/plugins/

=== Текст повреждён или не отображается ===

[https://support.steampowered.com/kb_article.php?ref=1974-YFKL-4947 Инструкция] для Windows от поддержки Steam также работает и на Linux.

Вы можете установить их пакетом {{AUR|steam-fonts}} из [[AUR (Русский)]], или вручную, скачав и [[fonts#Manual installation|установив]] [https://support.steampowered.com/downloads/1974-YFKL-4947/SteamFonts.zip SteamFonts.zip].

=== SetLocale('en_US.UTF-8') не срабатывает при запуске игры ===

Раскомментируйте {{ic|en_US.UTF-8 UTF-8}} в файле {{ic|/etc/locale.gen}}, затем выполните {{ic|locale-gen}} от имени суперпользователя.

=== Игра вылетает немедленно после запуска ===

Если игра сразу же вылетает, попробуйте отключить: ''"Enable the Steam Overlay while in-game"'' в ''Properties'' игры.

=== OpenGL не использует прямой рендеринг ===

: [https://support.steampowered.com/kb_article.php?ref=9938-EYZB-7457 Статья] на сайте поддержки Steam

Возможно, вы не установили 32-битный графический драйвер. Узнайте из статьи [[Xorg#Driver installation|Xorg]] какой пакет вам нужно установить.

Вы можете проверить/протестировать, установлен ли он правильно, установив {{Pkg|lib32-mesa-demos}} и запустив следующую команду:

$ glxinfo32 | grep OpenGL.

=== Ошибка libGL при запуске некоторых игр ===

Если у вас возникает ошибка вида {{ic|Failed to load libGL: undefined symbol: xcb_send_fd}}, это может происходить из-за устаревших библиотек среды выполнения Steam. Удаление {{ic|~/.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. [https://bbs.archlinux.org/viewtopic.php?pid=1416098#p1416098 Обсуждение на форуме].

{{bc|

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. [https://bbs.archlinux.org/viewtopic.php?pid=1428375#p1428375].

{{bc|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]] не решили проблему, то [[#Using native runtime|использование родной среды выполнения]] может дать положительный результат.

=== Ошибка "You are missing the following 32-bit libraries, and Steam may not run: libGL.so.1" ===

У вас может возникнуть такая ошибка при первом запуска Steam. Убедитесь, что вы установили lib32-версии всех ваших графических драйверов. Например, если вы установили {{Pkg|catalyst-utils-pxp}}{{Broken package link (Русский)|package not found}}, {{Pkg|xf86-video-dri}}{{Broken package link (Русский)|package not found}}, {{Pkg|intel-dri}}{{Broken package link (Русский)|replaced by {{Pkg|mesa}}}}, {{Pkg|mesa-libgl}} для AMD и Intel двойных карт, то вам следует установить {{Pkg|lib32-catalyst-utils-pxp}}{{Broken package link (Русский)|package not found}}, {{Pkg|lib32-intel-dri}}{{Broken package link (Русский)|replaced by {{Pkg|lib32-mesa}}}}, {{Pkg|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.

=== Некоторые игры не запускаются ===

Некоторые игры не запускаются и выводят что-то вроде:

{{bc|ERROR: ld.so: object '~/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.}}

Это значит, что прилагающаяся libstdc++.so конфликтует с чем-то [https://bbs.archlinux.org/viewtopic.php?id=181171 описанным здесь]. Решением является установка переменной окружения STEAM_RUNTIME в значение 0 и выполнение следующей команды: {{bc|rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6}}

== Запуск игр с дополнительными параметрами, такими как Bumblebee/Primus ==

Steam может запускать игры, используя ваши собственные команды. Чтобы это сделать, перейдите в вашу Библиотеку игр, щёлкните правой кнопкой мыши по нужной игре, выбирете Свойства, Установить параметры запуска. Steam заменит тег {{ic|%command%}} на команду, на ту, которую он выполнит по факту. Например, чтобы запустить Team Fortress 2 с primusrun и разрешением 1920x1080, вы должны ввести:

primusrun %command% -w 1920 -h 1080

Если вы используете ядро [[Linux-ck]], вы можете уменьшить задержки и увеличить производительность, запустив игру в SCHED_ISO (низкие задержки, избежание перегрузки CPU) с помощью {{Pkg|schedtool}}

# schedtool -I -e %command% ''other arguments''

=== Отключение отдельных композиторов при запуске игр ===

В дополнение к этому, используйте {{ic|%command%}} для того, чтобы убивать отдельные композиторы, (такие как Xcompmgr или [[Compton (Русский)|Compton]]), из-за которых игра может глючить и тормозить на некоторых системах, и запускать их снова после выхода из игры, добавив в опции запуска игры следующее:

killall compton && %command%; nohup compton &

Замените {{ic|compton}} в приведённой выше команде на ваш композитор. Вы также можете добавить -options к {{ic|%command%}} или {{ic|compton}}.

Steam будет родительским процессом для любой команды, написанной после {{ic|%command%}} и ваш Steam статус будет отображаться как "в игре". Поэтому, в этом примере мы используем композитор через {{ic|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

{{Note|The libraries will have to be 32-bit, which means you may have to download some from the AUR if on x86_64, such as NetworkManager.}}

Once you've done this, run steam again with {{ic|1=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 ==

{{Note|Using skins that are not up-to-date with the version of the Steam client may cause visual errors.}}

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 [http://forums.steampowered.com/forums/showthread.php?t=1161035 Steam's forums].

=== Steam skin manager ===

The process of applying a skin to Steam can be greatly simplified using {{AUR|steam-skin-manager}}{{Broken package link (Русский)|{{aur-mirror (Русский)|steam-skin-manager}}}}. 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 ==

{{Note|A handful of games do not support this, for example this can not work with XCOM: Enemy Unknown.}}

=== 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 [http://www.mediafire.com/download/lnt2cjlbcdccm11/Steam-Notifications.zip 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 [http://www.mediafire.com/download/ao3dhpdg9omj94r/topright.patch this patch][http://pastebin.com/FWHZNdUU (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'''.

{{Note|For pastebin to work you need to copy the raw data from line 1 through line 12 (line 12 is whitespace, but the patch will fail without it, this is why I provided a mediafire version too) you basically need to start copying behind the "-" sign at the bottom of the raw paste data and go up from there.}}

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.

== Смотрите также ==

* https://wiki.gentoo.org/wiki/Steam

Show more