Difference between revisions of "Steam"

From Funtoo
Jump to navigation Jump to search
(→‎Install: - updated to steam-overlay, gamerlay removed steam-launcher support in favor of steam-overlay supporting it.)
Line 1: Line 1:
{{PageNeedsUpdates}}
Steam is a content delivery system and ecosystem for gaming, developed by Valve Software. It offers hundreds of games, from popular ones such as DOTA 2 to many other less popular and even obscure community games. Steam runs on Microsoft Windows, MacOS, and also Linux.


Steam is a content delivery system available for GNU/Linux gaming.
=== History on Funtoo ===


=== Install ===
Through Funtoo Linux 1.2, it was possible to play Steam directly under Funtoo. However, with the move to Funtoo Linux 1.3, 32-bit support was dropped from Funtoo, and Steam is currently dependent on a host of 32-bit libraries. Thus, Steam no longer worked under Funtoo directly. Howevever, it is still possible to run Steam under Funtoo via use of containerization technology.
In order to install Steam, we must first install {{package|app-portage/layman}}.


Once layman is installed and synced, we must add the {{c|steam-overlay}} repository:
=== Steam in Docker ===


{{console|body=
This page will currently document the setup of Steam running on NVIDIA hardware, with documentation for non-NVIDIA hardware to follow shortly.
###i## layman -a steam-overlay
###i## layman -S
}}
 
Ok, now we can install steam by running:
 
{{console|body=
###i## emerge steam-launcher
}}
 
== install part 2 ==
Make sure your user is in the 'games' group by typing:
<console>###i## groups youruser</console>
 
If not add your user to the 'games' group by typing:
<console>###i## usermod -a -G games youruser</console>
 
Your groups will not update until you log out and log back in again. You can check this by just entering in a terminal
<console>###i## groups</console>
and if you just added yourself to the group games it will not appear there. However, if you would type "groups ouruser" like before, then you could see that you already added yourself to that group. Steam will not start properly until you have logged in as a member of the games group.
 
Steam has its own internal package management system.  Portage will not track its files, or games installed.  the ebuild simply pulls in the steam installer, to run the steam installer:
 
<console>$##i## /usr/games/bin/steam</console>
 
The installer will prompt you with several questions, once done running the installer command will load the latest version of steam.


This will also create a desktop entry under ~/Desktop/steam.desktop
To run Steam on NVIDIA graphics, with full PulseAudio sound, docker with NVIDIA support will be used.


== Troubleshooting ==
=== Host Setup ===
=== Text is corrupt or missing ===
Steam makes heavy usage of the Arial font. A decent Arial font to use is ttf-liberation.
<console>
# ##i##emerge liberation-fonts
# ##i##eselect fontconfig enable 60-liberation.conf
</console>


=== Steam segfaults after 2nd start! ===
To get your host ready to run Steam, emerge the following packages:
I do not know much about this behaviour, but I found a workaround.
If you saved your password, you need to backup all your games and reset Steam.
{{console|body=
$ ##i##mkdir -p ~/backup
$ ##i##mv ~/.local/share/Steam/steamapps ~/backup
$ ##i##steam --reset
$ ##i##mv ~/backup ~/.local/share/Steam/steamapps
}}
Start Steam again, enter username and password, but do not check "Remember my password", it is the thing that causes all the troubles. You will need to enter password every time you start Steam.


===Missing textures (Screen in Dota 2 and other Source games is all red/black!) ===
Many steam games heavily rely on S3TC compressed textures, which require the libxtc_dxtn library
to be compiled with 32bit support:
{{console|body=
{{console|body=
# ##i##echo 'media-libs/libtxc_dxtn abi_x86_32' >> /etc/portage/package.use
# ##i##emerge -av --jobs docker nvidia-container-runtime nvidia-docker
# ##i##emerge media-libs/libtxc_dxtn
}}
}}


=== OpenGL GLX context is not using direct rendering ===
You will also want to ensure that you have NVIDIA proprietary graphics running in a graphical environment on your host. Please ensure that you have {{c|x11-drivers/nvidia-kernel-modules-435.21-r1}} or later installed on your host, and that you don't have any special permissions settings in {{f|/etc/modprobe.d}}.
This can happen when the latest version of mesa drivers conflict with steam's bundled libstdc++ libraries[1], especially when open source video card drivers are installed.


So that steam does not use its bundled libstdc++ libraries, they may be removed[2]:
Next, you will want to add {{c|docker}} and {{c|nvidia-container}} to your default runlevel:
<console>
# ##i##rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/installed/libstdc++6-4.6-pic_4.6.3-1ubuntu5+srt4_amd64 && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/installed/libstdc++6-4.6-pic_4.6.3-1ubuntu5+srt4_amd64.md5 && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/installed/libstdc++6_4.8.1-2ubuntu1~12.04+steamrt2+srt1_amd64 && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/installed/libstdc++6_4.8.1-2ubuntu1~12.04+steamrt2+srt1_amd64.md5 && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/gcc/x86_64-linux-gnu/4.6/libstdc++_pic.a && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/gcc/x86_64-linux-gnu/4.6/libstdc++_pic.map && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libstdc++.so.6 && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.18 && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/share/doc/libstdc++6 && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/share/doc/libstdc++6-4.6-pic && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/installed/libstdc++6-4.6-pic_4.6.3-1ubuntu5+srt4_i386 && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/installed/libstdc++6-4.6-pic_4.6.3-1ubuntu5+srt4_i386.md5 && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/installed/libstdc++6_4.8.1-2ubuntu1~12.04+steamrt2+srt1_i386 && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/installed/libstdc++6_4.8.1-2ubuntu1~12.04+steamrt2+srt1_i386.md5 && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/gcc/i686-linux-gnu/4.6/libstdc++_pic.a && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/gcc/i686-linux-gnu/4.6/libstdc++_pic.map && 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/usr/lib/i386-linux-gnu/libstdc++.so.6.0.18 && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/share/doc/libstdc++6 && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/share/doc/libstdc++6-4.6-pic && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime.old/i386/usr/share/doc/libstdc++6
</console>
and
<console>
# ##i##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/i386/lib/i386-linux-gnu/libgcc_s.so.1
</console>


=== Removal ===
To remove steam, and content in case of corruption:
{{console|body=
{{console|body=
$##i## rm -rf .local/share/Steam
# ##i##rc-update add docker default
$##i## rm -rf .Steam
##g##*##!g## service docker added to runlevel default
# ##i##rc-update add nvidia-container default
##g##*##!g## nvidia-container added to runlevel default.
}}
}}
== References ==
[1]: higuita, Ev1l0rd. [http://askubuntu.com/questions/614422/problem-with-installing-steam-on-ubuntu-15-04/614458#614458 Problem with installing Steam on Ubuntu 15.04 - Ask Ubuntu], [http://askubuntu.com/ Ask Ubuntu], April 26th, 2015. Retrieved December 29th, 2015.
[2]: altiris. [https://bbs.archlinux.org/viewtopic.php?id=193802 [SOLVED<nowiki>]</nowiki> Steam won't open, libGL errors], [https://bbs.archlinux.org/ Arch Linux Forums], February 18, 2015. Retrieved July 14th, 2015.

Revision as of 00:35, October 24, 2019

Steam is a content delivery system and ecosystem for gaming, developed by Valve Software. It offers hundreds of games, from popular ones such as DOTA 2 to many other less popular and even obscure community games. Steam runs on Microsoft Windows, MacOS, and also Linux.

History on Funtoo

Through Funtoo Linux 1.2, it was possible to play Steam directly under Funtoo. However, with the move to Funtoo Linux 1.3, 32-bit support was dropped from Funtoo, and Steam is currently dependent on a host of 32-bit libraries. Thus, Steam no longer worked under Funtoo directly. Howevever, it is still possible to run Steam under Funtoo via use of containerization technology.

Steam in Docker

This page will currently document the setup of Steam running on NVIDIA hardware, with documentation for non-NVIDIA hardware to follow shortly.

To run Steam on NVIDIA graphics, with full PulseAudio sound, docker with NVIDIA support will be used.

Host Setup

To get your host ready to run Steam, emerge the following packages:

root # emerge -av --jobs docker nvidia-container-runtime nvidia-docker

You will also want to ensure that you have NVIDIA proprietary graphics running in a graphical environment on your host. Please ensure that you have x11-drivers/nvidia-kernel-modules-435.21-r1 or later installed on your host, and that you don't have any special permissions settings in /etc/modprobe.d.

Next, you will want to add docker and nvidia-container to your default runlevel:

root # rc-update add docker default
 * service docker added to runlevel default
root # rc-update add nvidia-container default
 * nvidia-container added to runlevel default.