Steam

Valve has released a native (currently x86-only) Linux client for their Steam platform available to all steam users.

Notice
The released steam installer archives only contain an installer that subsequenly downloads and installs the steam client from their servers into the user's homedir. This prevents a OS package manager from properly managing steam client updates.

Steam does not expose an api for a proper package manager to manage installation or updates of software distributed through it. Users are required to use the steam client directly for installing and updating the softwares.

Games

 * Official Valve Linux Games List
 * Steamdb Linux Section

Prerequisites
Things you need in order to run steam or even the steam-installer.

Dependencies
If you don't plan on using the ebuild then you can create a set to conveniently manage and update the steam dependencies without changing your world file. Otherwise skip this section. After you have created the file /etc/portage/sets/steam as shown below, run:

Kernel
You need tmpfs activated in your kernel and mounted.

From debian package
Download the .deb archive found here, extract and put the following files into the same directory: Make steam executable and run it. There are also a few icons in the .deb archive.
 * bootstraplinux_ubuntu12_32.tar.xz (from the .deb archive. data/usr/lib/steam)
 * steam.desktop (from the .deb archive. share/applications)
 * steam (get the script here or here) [last update: 2013-03-24]

Manual install
See Steam/Manual_installation.

steam-overlay
You can use the steam-launcher ebuild from the gamerlay or the github steam-overlay.

32-bit chroot on amd64
If you want to run steam in a 32-bit chroot without relying on emul-linux-x86-* or multilib packages, then run the following commands:

You'll run chroot with linux32, if you didn't have it, emerge first.

Now follow any of the above installation methods and then create a wrapper script to chroot in, su to steam user, then run steam.

Client Troubleshooting
A few tricks to get things working.

Video drivers

 * nvidia-drivers: You will need to unmask latest.
 * If S3TC support is missing, install.
 * Starting some games (TF, CS:S) on legacy ATI drivers will give this error: "Required OpenGL extension "GL_EXT_texture_sRGB_decode" is not supported. Please update your OpenGL driver." Workaround is here.

OpenGL GLX context is not using direct rendering
If steam is complaining about a lack of 3D capability and you do have a 3D drivers, libraries (eselect opengl list) all setup (glxinfo | grep "direct rendering" # direct rendering: Yes), steam is accessing the wrong libGL. This was caused by a recent update of to version 1.3.0. Temporary workaround:

Fonts
Some people seem to have problems with missing fonts. A user reported it being solved by emerging.

Sometimes Xorg does not recognize the new fonts installed. To fix this temp. run:

You may also need if fonts don't appear to be rendering correctly.

The game Stealth Bastard Deluxe will segfault if is not installed, specifically the game will request the fonts "9x15"/"9x15b", so check with  if those are available, otherwise add them to the fontpath and possibly add an alias in e.g. /usr/share/fonts/misc/fonts.alias:

Mouse cursor
If your WM/DE does not set a mouse pointer theme, then Steam will overwrite the default X11 cursor theme, often resulting in a reversed pointer from left to right.

To fix this, just install and enable a compatible cursor theme via your WM/DE (e.g. ).

You can also enable the installed theme manually with the following method:

If the mouse cursor gets stuck pointing in the wrong direction after exiting steam you can work around that via:

Flashplayer on amd64
Get the 32bit flashplayer from adobe and extract libflashplayer.so to your current working dir. Now run:

Typically the path located in ~/.local/share/Steam. Alternatively emerge with abi_x86_32 option enabled and run:

Memory corruption on startup
You might get an error like this:

Try to emerge and it should work.

Hardened Gentoo
It looks like the steam binary has rwx bits in it. You will need to mark the binary with the following to get it working on a hardened system.

Binaries of most games also should be paxmarked, for ex.:

Failure to perform these paxmarkings will result in the game failing to run with little information given. You can check if the game needs to be paxmarked by running the game's startup script or binary file (found under ~/.local/share/Steam/steamapps or ~/.local/share/Steam/steamapps/common) under a debugger. This can be accomplished with some of Valve's provided startup scripts by passing in gdb in a GAME_DEBUGGER environment variable, for ex.:

If the binary needs to be paxmarked, gdb should output something similar to "warning: Cannot call inferior functions, Linux kernel PaX protection forbids return to non-executable pages!" and/or "Cannot access memory at address 0x80486c6."

After latest update (around Jul 2013) steam also need paxmarked sh when the openGL libraries require RWX markings or it fail to run games from steam client (see https://github.com/ValveSoftware/steam-for-linux/issues/254 for details):

However, this causes bash to not run. Also as it is a security issue you are strongly encouraged to try without paxmarking it. If it works for you when using proprietary nvidia drivers please report it back.

Steam runtime
By default, Valve bundles their own libraries with the steam package and uses them instead of installed system libraries. This behavior can be changed by setting the environment variable STEAM_RUNTIME=0.

Reset Steam client
If you want to wipe out your current steam installation which includes your installed games and reinstall steam without losing their data, you can use the --reset command line option:

Taskbar Buttons persist when Steam is minimzed to SysTray
Depending on your DE, you might have a taskbar button showing for Steam all the time, even when the main window is closed or minimized to the systray. To stop this behavior, add this to /etc/environment.

You will need to logout and back in to enact the changes.

Games Troubleshooting
If you have problems on 64 bit, it's because emul-linux-x86-* are typically very out of date.

You can try using a 32-bit chroot.

Dota 2
If you notice lots of black textures, it's because the mesa driver is out of date, until version 9.1.6 or higher is released as part of emul-linux-x86-opengl, you will have to resort to using a 32 bit chroot.

If you are seeing the issues from above [lots of black textures] but areusing multi-lib and, therefore, aren't using an old 32-bit mesa, you may try building mesa with USE -bindist like talked about here: https://github.com/ValveSoftware/Dota-2/issues/1434.

If you notice red screen, it's the libtxc_dxtn (again). (Look for it along this page.)

For the red textures in gentoo 64 bits emerge the package sys-libs/glibc with the line >=media-libs/libtxc_dxtn-1.0.1-r1 abi_x86_32 in /etc/portage/package.use

Left 4 Dead 2
If you experience black textures, you are missing S3TC texture (de)compression, add the following to package.use

and then emerge libtxc_dxtn

Rust (legacy)
After setting launch options in the configuration menu and clicking ok, if Rust fails to launch, then add the following Steam launch options to force Rust to use the correct binaries

Starbound
Starbound's launcher may fail with the following error: This application failed to start because it could not find or load the Qt platform plugin "xcb".

Available platform plugins are: xcb.

Reinstalling the application may fix this problem. You may be able to work around this problem by entering this into Starbound's launch options:

Team Fortress 2
If you only get a black screen for 1-2 seconds, try adding "-nojoy" to Game->Properties->"Set Launch Options".

X3 Terran Conflict and Albion Prelude
If you are unable to start the launcher, make sure that media-libs/libtxc_dxtn is installed. See the official Linux Support Thread.

This system DOES NOT support the OpenGL extension GL_EXT_texture_compression_s3tc
Install helper library for S3TC texture (de)compression.

Restart graphic system and examine if GL extension is available.

If there is no GL_EXT_texture_compression_s3tc try to update driver. If you are using radeon open driver, set correct value to VIDEO_CARDS variable in make.conf. For example value VIDEO_CARDS="r600" is valid for HD6310. More info about radeon cards.

If GL extension is here, but error still raises, suppress it by next command.

01:32, 30 May 2014 (UTC) had to emerge x11-libs/gtkglarea for s3tc errors to go away under nouveau.

Further help
Before you ask anywhere else, refer to the Gentoo forum thread. Post your solutions and update this wiki page if someone confirms. Please don't remove content without Discussion unless it's wrong content.

External resources

 * Valve Linux blog
 * Steam for Linux community
 * Bugtracker
 * Steam entry in ArchLinux wiki
 * Common Steam Problems & Fixes (team fusion)